《Unity着色器圣经》1.0.3 | 法线
目录索引 译文 假设我们面前有一张白纸,现在请一位朋友在白纸的正面画画。如果白纸的两面都完全一样,我们要如何区分白纸的“正面”和“反面”呢?这就是法线(normal)存在的原因。法线对应垂...
《Unity着色器圣经》3.3.1 | Cg/HLSL变量与连接向量
目录索引 译文 继续回顾我们的 USB_simple_color 着色器,不难发现着色器中有一个 sampler2D 类型的变量和一个四维向量,用于定义 _ MainTex 纹理: sampler2D _MainTex; float4 _MainTex_S...
《Unity着色器圣经》3.0.3 | ShaderLab的属性
目录索引 译文 属性与一系列可以在 Unity 检查里修改的变量相对应,一共有八种有用的类型。我们可以在动态地、甚至在运行时通过着色器的属性调整效果。声明属性的语法如下所示: PropertyName (...
《Unity着色器圣经》3.1.5 | 队列标签
目录索引 译文 一般来说队列标签不会以一行代码的形式出现在着色器中,因为它是默认在 GPU 中编译的,与每个材质的对象处理顺序直接相关。 Tags { 'Queue'='Geometry' } 这个标签与相机和GPU密...
《Unity着色器圣经》4.0.4 | HLSL函数的结构
目录索引 译文 与C#中的函数一样,在HLSL中,函数声明可以返回空(void)或者是一个值。我们必须使用依赖于函数类型的“声明”;它们确定一个值是对应于输入(in)、输出(out)、全局变量(unifo...
《Unity着色器圣经》10.0.1 | Compute shader structure.
目录索引 译文 到目前为止,我们的研究重点是对Unlit和Surface着色器的理解,它们具有非常相似的结构;两者都在ShaderLab字段中执行,正如我们所知,这是一种允许程序和Unity之间通信的声明性语...
《Unity着色器圣经》4.1.6. | Length function.
目录索引 译文 正如其标题所提到的,length函数是指表示两点之间距离的大小。这个功能在创建几何形状时很有用,例如,我们可以生成圆形或具有圆角的多边形。 其语法如下: float length (float ...
《Unity着色器圣经》3.1.9 | SubShader颜色遮罩
目录索引 译文 颜色遮罩命令允许 GPU 只写入选定的颜色通道,兼容内置渲染管线(Built-in)和可编程渲染管线(SRP)。 当我们新建一个着色器时,GPU 默认写入颜色的所有通道(RGBA)。然而在某...
《Unity着色器圣经》3.2.9 | Cg/HLSL Include
目录索引 译文 指令“.cginc”(Cg include)包含几个文件,可用于在着色器中引入预定义变量和辅助函数。 如果我们检查 USB_simple_color 着色器,我们可以发现以下几个在 pass 中声...
《Unity着色器圣经》12.0.2 | Using Ray Tracing in our scene.
目录索引 译文 我们将从在我们的项目中创建一个新场景开始。在这个例子中,我们将使用项目中包含的一个默认模板,名为“Basic Outdoors (HDRP)”,其特征是默认情况下具有以下对象: 照相机(...




