[HDR]开启HDR后粒子多次叠加导致颜色偏黄
[HDR]开启HDR后粒子多次叠加导致颜色偏黄 00 前言 URP管线, 开启HDR, 将无色贴图透明度调低, 比如0.1左右, 然后叠加(20+层), 最终颜色会偏黄. 注意, 此时Scene视图是正常的. 01 原因 在URP中, Unity默认的HDR的Buffer格式为B10G11R11_UFloatPack32, 导致B通道精度低于RG通道, 多次叠加后会损失B通道精度...
[HDR]开启HDR后粒子多次叠加导致颜色偏黄 00 前言 URP管线, 开启HDR, 将无色贴图透明度调低, 比如0.1左右, 然后叠加(20+层), 最终颜色会偏黄. 注意, 此时Scene视图是正常的. 01 原因 在URP中, Unity默认的HDR的Buffer格式为B10G11R11_UFloatPack32, 导致B通道精度低于RG通道, 多次叠加后会损失B通道精度...
半透明纯色物体描边 00 要求 仅渲染纯色物体, 不采用贴图 不能渲染出半透明物体内部的结构 不要影响其他的半透明物体的排序 首先排除使用深度处理, 因为会影响到其他的半透明物体渲染. 其次, 由于是纯色物体, 那么仅考虑上色逻辑即可. 01 处理方法 拆分 无论内部结构多复杂, 仅渲染一次 ...
贴图从UV中心点开始缩放和移动矩阵推导 00 通常的UV缩放和移动 在shaderlab着色器编程中, 一般会用类似如下伪代码的形式来缩放和移动uv, 最终形成缩放和移动图像的目的 float4 _textureName_ST ... float2 uvScaleTransform = TRANSFORM_TEX(uv, _textureName); ... #define TRANS...
Unity中的矩阵 00 坐标变换, 前置信息与约定 首先,将三维点 $p=(x,y,z)$ 表示为齐次坐标向量: [{P} \begin{pmatrix} x \[4pt] y \[4pt] z \[4pt] 1 \end{pmatrix}] 构造在各轴方向上分别平移 $(t_x,t_y,t_z)$ 的 $4\times4 $平移矩阵: [T(t_x,t_y,t_z) \begi...
[LookDev开发] 加入NewtonsoftJson序列化 原理 ScriptableObject对Unity强依赖, 而某些数据的处理并不想与Unity绑定. 所以需要引入Newtonsoft Json的包. 代码 在manifest.json中加入如下代码即可, 然后正常按照Newtonsoft Json的调用方法使用. "com.unity.nuget.newtonsof...
[LookDev开发] 定制Unity搜索 原理 前端代码 参考网页 Unity Search - Unity 手册
[LookDev开发] 定制Unity编辑器界面布局 原理 unity的界面是通过调用一个.mode文件来进行初始化的, 同样也可以通过自定义.mode文件来制作我们自己的初始化界面 前端代码 打印Unity目前载入的所有的界面布局 foreach (string modeName in ModeService.modeNames) { Debug.Log(modeName...
Scene场景中Bloom阈值超过1时不生效 00 现象 当后处理Bloom的Threshold值设定超过1时, Bloom效果不生效 01 处理方法 检查场景中相机的Tag, 确保有一个相机为MainCamera, 且该相机开启了HDR 02 原因 因为Unity的场景相机的Buffer是以Tag为MainCamera的相机为基准设置的. 如果MainCamera不存在或者存在...
PBR基础着色器制作 功能图通道分配 基本原则是将因为线性空间转换会引起损失的部分(RGB通道)用来存储无渐变/渐变不重要的信息, 而无损失的部分用来存储渐变重要的信息. R通道: 金属度(非0即1, 渐变不重要) G通道: AO, 渐变即便是不精准, 也不会有太大的感受, 且与PBR光照运算无关 B通道: 用来存储DetailMask或留空 A通道: 用来存储光滑度
着色器语法解析02 官方文档 通用渲染管线概述 | Universal RP | 12.1.1 (unity3d.com) Unity - Manual: The Shader class (unity3d.com) SubShader块 Unity - Manual: ShaderLab: defining a SubShader (uni...