
unity
文章平均质量分 78
Unity 学习记录
Jave.Lin
积跬步至千里
展开
-
Unity Shader - sahder变体剔除
已经能确定的是,这个问题,100% 必现。从上周就出现,到现在,就是比我不再使用 XSDN。打开优快云首页里面的连接,是秒开的,到底怎么回事,看来准备博客搬家。等了差不多 30S~60S,就出现: 操作超时请重试。接口实现中,我们要对 shader 的。,编辑后,无法保存,一直提示:操作超时。然后这个 shader 变体是否需要剔除。注意尾部我们增加了一些。原创 2024-02-26 12:28:54 · 1134 阅读 · 0 评论 -
Unity - gamma space下还原linear space效果
还有头发之后的 (头发没有处理完整,因为使用 ASE 连连看练出来的,使用 surface shader,虽然可以生成一下 vert, frag 的方式在修改,但是我懒得去修改了,这样就是 PBR 的 BRDF 里面的部分曲线是不一样的,所以可以看到头发有一些差异)其实上面的代码判断 是否有分量 > 1.0f 的方式来判断是否 HDR 是不太合理的,因为不同的贴图格式的编码方式不同。还有比较隐蔽的一些颜色相关的常量值 (比如PBR中的 绝缘体的 F0 常量值,等等)原创 2024-01-24 19:22:15 · 2064 阅读 · 2 评论 -
Unity - 各向异性 - 丝绸材质
参考的是: PBR Filament 里面的 anisotropy 效果: https://google.github.io/filament/Filament.html#lighting/imagebasedlights/anisotropy。那么下面是将 unity builtin rendering pipeline (内置管线) 的 standard 金属流中,添加 PBR Anisotropy 的效果。这个是丝绸衣服光泽,这个简单的试验DEMO如下。然后我们再增加一个张细节法线。原创 2023-11-12 16:04:49 · 3574 阅读 · 8 评论 -
unity - Blend Shape - 变形器 - 实践
Tab 进入 Editor Mode,并且在 Data 页签属性的 Shape Keys 添加对应的 blend shape 状态。然后可以尝试看一下 blendshape_1 和 blendshape_2 不同速率的控制混合的情况。调整好每一个 Shape Keys (或是叫:blend shape) 的顶点位置。所以我们写脚本控制 blend shape 混合拉杆即可达到我们各种表情的混合控制。在原来 blendshape_1 基础上在混合 blendshape_2。下面是测试 csharp 脚本。原创 2023-11-08 17:19:09 · 2572 阅读 · 1 评论 -
美术如何创建 skybox 贴图资源?
unity 中的话,先布置好场景,然后给需要拍摄的位置,放一个 ReflectionProbe 组件,选择 Type : Bake,然后点击 bake 即可。- 从maya如何建模cube,展开UV,如果从PS中抠图,反正各种P图,生成Cubemap,注意好每个面的UV相邻边的内容要对上,讲得非常详细。在 unity 对应的 cubemap UV种类,有 竖、横 的十字,也有 竖、横 的一字,如下。底部的我们可以不管,只用会之前的就OK,因为几乎是纯颜色的。原创 2023-10-28 17:28:36 · 1266 阅读 · 0 评论 -
Unity - 导出的FBX模型,无法将 vector4 保存在 uv 中(使用 Unity Mesh 保存即可)
.obj 这种方式暂时没去验证能否将打包出来的 ab 里面的 mesh 修改(因为里头的文件信息是再 library 里面的临时生成的问题,打包不会打包进去)然后我们看一下 测试 shader 的效果,发现是有数据异常的,一部分有设置成功,一部分没有,那么很有可能是 *.obj 的顶点数解析和unity不一样。之前的z是全黑色,w全白色,现在都有对应的强度了,OK,说明 unity mesh 还是OK的。条 uv 信息 xy 分量是原来的,后面的 zw (0.25, 0.5) 都是我后续增加的。原创 2023-10-24 10:53:23 · 2278 阅读 · 0 评论 -
Unity - Normal mapping - Reoriented normal mapping - 重定向法线、混合法线
【代码】Unity - Normal mapping - Reoriented normal mapping - 重定向法线、混合法线。原创 2023-10-12 20:57:44 · 718 阅读 · 0 评论 -
Unity - Shader Compiled Log
这样的话,就可以真机上查看编译情况,每个以 Compiled Log 都是对应 Shader.CreateGPUProgram,因此如果要做: 变体优化,变体预热,都是一个比较好的调试Log。如果要做变体优化,或是 Shader.CreateGPUProgram 的 CPU 卡顿优化。先说一下,最近几天前,纷纷看到 unity install fee 的天才收费方案。顺便编写简单的 shader,创建 material,创建 prefab。设置 AB 信息,build AB。"实用工具/BuildAB"原创 2023-09-15 11:02:22 · 1263 阅读 · 0 评论 -
Unity Shader - if 和 keyword 的指令比较
下面是 shaderlab 和 arm mobile studio 中的 graphics analyzer 的 glsl 代码。下面是 shaderlab 和 glsl。VS: 和上面的一样,就不复制上来的。原创 2023-07-27 11:45:53 · 2899 阅读 · 0 评论 -
Unity Shader - UI/Default shader 优化示例
一般都是使用unity 自带的按钮状态来控制(这些是通过 vertex buffer 来控制的,因为这样可以 vertex buffer 合批)这块比较容易忽略,虽然只是 vs 的计算,而且 UI 的顶点数量不多,一般不是什么问题。但还是那句话,性能如果要做到极致,除了优化 top 热点,其余小的也是肉,能优化就优化。下面优化的是一些小部分的内容,不是 top 热点,优化原理是一样的。格式的 UI 纹理,那么就可以直接使用了。,但是项目中没去使用,那就可以删除。Softness 开启。原创 2023-07-20 22:11:58 · 3130 阅读 · 3 评论 -
Unity - Stencil Test 开关,无法通过脚本或是 shader lab 开关来控制
但是我们从 render doc 中抓帧可以看到仍然是有开启 stencil test 的,这会导致无意义的带宽消耗。只能开,不能关,意思一个 shader lab 一旦编写了 stencil { } 的内容,就必须开启。查看过 shader lab 文档,没有看到 stencil test 关闭的功能,我真的无语。比如,我在项目在的 shader lab,material 是这样写,这样设置的。如果有了解的大佬,麻烦告诉一下,3Q~- 同样被人吐槽没的关闭。原创 2023-07-19 15:21:05 · 1182 阅读 · 1 评论 -
Unity Shader - SV_POSITION 和 TEXCOORD[N] 的varying 在 fragment shader 中输出的区别
因另一个TA同学问了一个问题我抱着怀疑的心态,测试了一下发现 varying 中的 sv_position 和 texcoord 的值再 fragment shader 阶段还真的不一样而且 sv_position 还不是简单的的操作因此我自己做了一个试验:结果还是不一样的。原创 2023-07-14 14:29:23 · 1459 阅读 · 0 评论 -
Unity Shader PBR vs BlinnPhong - ARM Mobile Studio - Graphics Analyzer & Mali Offline Compiler 分析
这个 blinn_phong 的 vs, fs 都是带有 mattalic, glossness,ao 的计算,如果相比 pbr 只是优化了 BRDF 部分的内容。注意这里只能分析 fragment shader 的 id,如果是 vertex shader 就使用 fragment shader id - 1即可。比如,下面 Fragment Shader 14,那么 Vertex Shader 的 ID 为 : 13。可以看到,比较严重的是 A 和 LS,T 没那么严重。原创 2023-07-11 19:58:44 · 1126 阅读 · 0 评论 -
ARM Mobile Studio - Mali Offline Compiler - 官方视频教学 - 笔录
所有Valhall GPU都实现了两个并行处理引擎,每个都包含自己的一组算术流水线。报告中的数据是基于设计中的引擎数量进行归一化的,以给出目标着色器核心的总体成本,而不仅仅是单个引擎的成本。原创 2023-07-07 17:19:20 · 3392 阅读 · 0 评论 -
Unity - 搬砖日志 - UGUI合批优化 - Overlap(UI AABB 有重叠), Z != 0 照样合批的方案
这种如果有 UGUI 黑箱部分的合批逻辑,都会比较好处理(比如,如果你们项目有购买 unity 引擎源码,那是可以一探究竟,甚至可以自行修改的)另外,这些内容纯纯是搬砖,都是基于别人的引擎(unity引擎)下使用UGUI 的一些问题。其他项目组的一位 TA 大佬,分享了一下 UI 的 AABB Overlap 下的合批。然后我们没有unity引擎源码,在这种情况下,这位TA大佬都测试出来了,真的牛逼。相当于一个都合批不了,要是UI复杂,有多,那么性能就渣渣了。结果他自己做了一些尝试,发现可以这么整。原创 2023-07-01 13:30:58 · 1887 阅读 · 1 评论 -
Unity - 从RG中解压法线贴图
之前使用 GPA 还原一些效果的时候,发现 法线贴图的 Y 通道数值不对,感觉被 翻转了。不用判断 DX 或是 GL,反正我们自己限制好使用 GL 的规格,即可。如果是要是需要你也可以整一个参数控制 normal flipping。我们在 BRP 管线中,可以看到类似的 解释方式。因此我们自己的想就可以按自己的方式来处理。这样法线贴图只使用到两个通道,然后。比方说,下面是 GPA 中的法线。具体我们打开 PS 来查看差异。通道还可以放其他的数据。原创 2023-06-06 17:51:37 · 2554 阅读 · 0 评论 -
Unity - 记录解决 部分手机设备上 浮点精度 不足 导致 UV 采样断层严重的 BUG
这个 shader 是 网上的一位TA大佬 (听说是叫: 猫大 的TA大佬 写的,下面的 shader 可以看到是使用 ASE 连连看 生成的代码)这种优化方式也有局限性的,因为我们的 sampler 的 filer mode 是 repeat,所以 uv 值域可以控制再。手机显卡芯片的浮点解析进度上的效果(其实不用手机上,PC 上将 uv * scale 一个巨大的值也会出现的)手机显卡芯片的浮点解析进度上的效果(其实不用手机上,PC 上将 uv * scale 一个巨大的值也会出现的)原创 2023-06-02 22:25:00 · 2357 阅读 · 0 评论 -
Unity - 记一次非正规变体优化带来的兼容性导致部分手机卡死的问题
在 2023.4.6 我们的 角色展示界面 就遇到了 华为手机,red mi note 11 的测试手机上的。后 2023.5.24 再次遇到类似的问题,但是这次重现的地方很多,不单止 角色展示界面 遇到。来处理 (但是变体会多一些,真机上发现一个 shader 会比之前大 2M 左右的。,但是那时候还没做 PBR shader 变体拆分。回想我之前 2023.4.6 的截图:也是。后来多次排查,发现是 PBR 所有的。的文件导致阴影部分导致的卡死的问题。这部分不用拆分,直接使用。原创 2023-05-25 11:26:14 · 1991 阅读 · 0 评论 -
Unity - 解决TMP FontAssetCreator 在生成 SDF 时 Font 显示 ????? 的问题
使用我们使用 FontCreator 重新导出的 ttf 设置到 Source Font File 选项中,重新生成,发现都没有问题了。然后想让我丢 Unity 项目中试一下效果,结果发现除了 ASCII 字符,其他的字符都识别不了。将FontName 里面的所有中文去掉,统统修改为 英文的即可,点击 OK,如下图。弹出来的对话框中,设置好 Output Folder,注意没得设置导出文件名。其实我怀疑就是中文字体名字的问题,结果还真给我猜测对了方向。那么下面就整理问题,和解决方法,便于日后索引 (原创 2023-05-22 10:44:47 · 3484 阅读 · 0 评论 -
Unity - Render Doc - 解决 Waiting For Debugger 导致连接不了 APP 的问题
比如会出现: Waiting For DebuggerApplication xxx (process com.xxx.xxx) is waiting for the debugger to attach.下面以 小米K50手机为例 (目前也就在小米机上遇到,其他机器没设置对应的选项),并后续带上解决方法原创 2023-04-30 16:14:19 · 3958 阅读 · 0 评论 -
Unity - 带耗时 begin ... end 的耗时统计的Log - TSLog
idxtagtimeSpanstartDescendDesclineStartlineEndDateTimeNowcontent"实用工具/测试/测试TSLog并写日志结果"tagdatatagtagtstagdataerror。原创 2023-04-21 15:52:46 · 2105 阅读 · 0 评论 -
Unity - 搬砖日志 - Texture.mipmapBias 无效的解决方法
发现是 unity 纹理一个 mipmapBias 的 import 属性,但结果设置了一样木有效果。而我们项目 Graphics API 刚刚好是 OpenGL ES 所以没有效果。因为美术发现有些贴图太糊,但是经过研究发现,mipmap0就是完全够精度的。因此对纹理的 mipmapBias import 属性设置是没有用的。但是不可能还要提升贴图的尺寸,因为经过多方咨询(咨询TA大佬)最后TA大佬说,试试 shader 修改。只能在材质面板中添加一个。原创 2023-03-10 21:39:08 · 2255 阅读 · 0 评论 -
Unity - Shader Graph 中的 Flipbook 节点算法BUG - Unity_Flipbook_float
flipidx : 10 (其实是编号,不是索引)到时结果采样到的是:20 的位置。应该是采样到是 10 的位置。原创 2023-03-10 21:21:32 · 1501 阅读 · 0 评论 -
Unity - 搬砖日志 - BRP 管线下的自定义阴影尺寸(脱离ProjectSettings/Quality/ShadowResolution设置)
发现 BRP 管线下的 Shadow Resolution 只能在 Project Settings/Quality/Shadow Resolution 去设置。只需要编写工具,批量对项目中的 Scene、Prefab,遍历其下所有 Light 的 GameObject 添加 改组件即可。(好久没搬砖了,偶尔健身一下,顺便将这些无技术含量的内容,记到 blog,不要记在脑子)还好我去公司中台请教了 TA 专家,他说 BRP 中一样是可以设置的。最近给项目做优化的过程中。原创 2023-03-06 21:37:18 · 1670 阅读 · 0 评论 -
Unity - 搬砖日志 - Android 的 Optimized Frame Pacing - 对应 ProjectSettings 配置字段:androidUseSwappy (影响锁帧)
备忘用,因为 project settings 动不动,会提交一堆不相关的配置字段修改。和 实际的 ProjectSettings 字段名字差异太大。Unity PlayerSettings 的 GUI 上。原创 2023-03-03 14:47:46 · 4099 阅读 · 0 评论 -
Unity Shader - Curved World - 类似 地铁跑酷,动物森友会 的世界扭曲效果 - 球形透视
我发现莉莉丝的《神觉者》在战斗中也有使用到这个效果,视觉效果提升还是很大的比如,球形投影前的效果球形投影后的效果。原创 2023-02-01 11:05:13 · 3226 阅读 · 0 评论 -
Unity - 搬砖日志 - 如何设置AssetDatabase.Create(“xxx.asset“, mesh) 的Read/Write=false
最近很忙,想写的 BLOG 都遗漏编写了踩坑的时间比较多,充电的时间少了很多为了减少以后自己填坑时间,随便简单的记录一下 搬砖日志。原创 2023-01-11 20:47:10 · 2004 阅读 · 3 评论 -
Unity - 搬砖日志 - MatierlaPropertyDrawer 中的参数如何匹配 - 自定义 Attribute 的参数提取
搬一下砖,并记录,免得后续重新搬砖。原创 2022-12-17 12:03:45 · 1817 阅读 · 0 评论 -
Unity - Baking System - 烘焙失效的问题
我在国内,国外搜索过很多资料,没找到半点线索,在之前2022.12.06 晚上,睡着了一半,但是突然想到,这个项目的 scene RootGO 是一个 prefab,而美术每次都是烘焙后要 prefab apply 一下,是否就这个原因导致?(误打误撞就中了,-_-)但是我们项目的情况不同,是:A场景美术提交了烘焙效果,B场景美术更新下来后,B的unity editor下都不显示烘焙效果,所以和上面的情况不同。解决方法是,将 RootGO/Prefab/Unpack 之后,再烘焙即可解决烘焙丢失。原创 2022-12-14 10:03:08 · 3601 阅读 · 0 评论 -
Unity - Shader - Projector 高空云层底下透明阴影 - semitransparent shadow
这种方式我最早是在 cat like coding 博主的文章看到的,这种方式我自己亲自测试过缺点:会有阴影抖动严重的现象)如下GIF就算我故意将 精度拉低(将距离边缘,那么 shadow map 的应用精度就会低一些)然后抖动的闪烁一样要不得。原创 2022-11-24 11:55:16 · 3464 阅读 · 5 评论 -
Unity - BRP管线关闭UpdateDepthTexture的绘制
但是 unity 的踩坑经验倒是增加了不少(还有很多坑的经验我都懒得写了,但是这些坑浪费查资料时间,还不如自己记下来,便于日后如果还有 BRP 项目的处理,就能更快的解决,反正下个项目,我们绝对不用 BRP 了,难受,性能也浪费,我反正首选 URP,满足我们的需求,性能上限也高一些)网上还有些人说设置 light 光源的 shadow = None,或是 ProjectSettings中的 Quality 将 shadow disabled 掉,但是对于我现在这个 BRP 项目来说,都没用。原创 2022-11-23 18:20:16 · 1803 阅读 · 0 评论 -
Unity - BakingSystem - 烘焙 - 阴影黑块
如果某个模型是只有一个单薄的片面,那么默认发射的射线碰撞检测到背面,就相当于碰撞到一个完全吸收光线的材质,不会有再次反弹,所以没有 全局光照的间接光照来补光,将会黑黑的。Double Side Global Illumination API 说明,就是是否给这个材质开启双面全局光照的设置。因此需要告诉 unity 烘焙系统,碰撞到这类材质时,无论他正背面都启用走材质表面反弹计算。unity 烘焙的时候,会对物件模型的表面法线的各个角度发射射线做采样。对应 Material 属性。原创 2022-11-23 17:16:27 · 3506 阅读 · 1 评论 -
Unity - GUID冲突的避免操作
除了 资源管理器复制 meta,rename then update 的重复 meta,等操作,还有一些其他方式导致 meta 复制,或是出现了 GUID 相同的才操作都会有这个问题,比如,别人修改了一个A.mat.meta 的名字为:B.mat.meta ,然后发给你,你再导入项目的话,一样会有GUID 冲突。rename 只能处理自己的文件,别人的文件不要rename(复制别人的资源,可以rename,比如,自己在 unity 中 ctrl + d 复制出来的文件,重命名)原创 2022-11-23 12:37:58 · 4994 阅读 · 1 评论 -
Unity - 手动创建 dithering tex 3d
最近工作忙成狗一直没有时间充电后续制作半透明阴影时,可以用到 dithering 来 clip shadow caster + soft shadow 来实现所以提前搞一下 dithering tex 3d 的创建原创 2022-11-02 22:21:29 · 1539 阅读 · 0 评论 -
Unity Shader - SSS皮肤
其中看到 SSS 在采样时,还做了 normal 的插值平滑,让 SSS 背面光 更加柔和。(可谓五花八门,不论原理对不对,只要想过好看,就是对的,这也是图形学的 铁原则)然后美术去玩了:《CFDG》,美术觉得里面的皮肤效果制作得相当好。过程中,发现代码中看到很多各种各样的处理。以下 素材 是 “合理参考” 得到的。如果有侵权,请告诉我,我马上删除掉~但是这种方法应用在实际项目中表现不佳。仅当学习、参考用,也不可能公开。来处理,让材质可控制更高一些。更多的市面上的效果都使用。原创 2022-09-30 21:36:55 · 4810 阅读 · 0 评论 -
教你如何使用GPA导出模型,另送一个 GPA CSV2MESH Tool in unity
吐槽我估计GPA是怕收律师函,因为如果 GPA 将所有资源一键提取,一键导出,那么可能很多开发商反而是告他(除了这个,我自己还搜索过还几个类似有人问这个问题,结果同样被官方忽悠)既然GPA不整模型导出带UV,那么今天我们实现一个。原创 2022-09-28 10:24:32 · 5277 阅读 · 19 评论 -
Unity Lightmap&LightProbe局部动态加载(亲测2020以及以上版本官方修复了)
因为 unity 内置的 bake 系统是只能跟单个场景走的并且,运行时,只有 active == true 的场景对象才有小如果你当前 additve 的方式 load 了多个场景,并且每个场景都有自己的 lightmap那么其他不是 active == true 的场景对象的 lightmap 将会失效(我是没搞懂为何 unity 这功能不制作好一些,这个功能应该很多项目都会有使用到的)---恰好,我们项目之前加载关卡的代码不是使用 加载 scene 的方式而是使用 加载 pr原创 2022-09-21 21:38:31 · 2784 阅读 · 1 评论 -
Unity - 踩坑日志 - 低版本线性颜色空间渲染异常的 “BUG”
今天发现我自己新建的一个试验工程,PBR 线性工作流是没有问题的然后在公司中会有问题诊断了一整天,最后发现这个项目的代码有使用到 builtin shader 源代码下载了 对应 unity 版本的 builtin shader 覆盖后,终于是修复了原创 2022-09-19 21:10:10 · 1261 阅读 · 2 评论 -
Unity - 场景曝光问题 - 隐藏的GraphicsSettings.asset的m_LightsUseLinearIntensity属性 - 线性空间的灯光强度
经过半天时间排查。。。发现是美术同学使用了以前我们一个老项目的配置方式来制作的场景因为这个项目以前很多项目配置是走 脚本来设置的而刚刚好有一些属性再 unity eidtor 是没有公开的然后手动的对应的配置修改后即可解决原创 2022-09-13 20:59:44 · 2722 阅读 · 0 评论 -
Unity & PS Linear Workflow - Unity 和 PS 的线性工作流实践 - 简单配置示例
因为 新的 Unity 项目人物走写实PBR风格所以铁定基于 Linear Workflow 比基于 Gamma Workflow 的渲染效果更好但是 Linear Workflow 下对 美术工作流不太友好,下面就实验并总结一些方案的优缺点供大家选取原创 2022-09-04 00:00:11 · 3185 阅读 · 1 评论