《Unity着色器圣经》4.0.4 | HLSL函数的结构
目录索引 译文 与C#中的函数一样,在HLSL中,函数声明可以返回空(void)或者是一个值。我们必须使用依赖于函数类型的“声明”;它们确定一个值是对应于输入(in)、输出(out)、全局变量(unifo...
《Unity着色器圣经》3.2.2 | ShaderLab深度写入
目录索引 译文 深度写入这个命令控制了物体表面像素写入 Z 缓冲(深度缓冲)的这一过程。它允许我们忽略或写入物体与相机间的深度。深度写入有两个可以设置的值,分别是开启(On)和关闭(Off)...
《Unity着色器圣经》1.0.7 | 渲染管线架构
目录索引 译文 在当前的Unity版本中,一共有三种类型的渲染管线,分别是内置渲染管线、通用渲染管线(在早期版本中被称为轻量渲染管线)和高清渲染管线。 所以,什么是渲染管线呢?要想回答这个...
《Unity着色器圣经》1.0.2 | 顶点
目录索引 译文 物体的顶点,相当于在二维或三维空间中定义曲面面积的点集。在 Maya 和 Blender 中,顶点表示为网格与物体的交点。 这些点有两个主要特征: 它们是变换组件的子节点。 根据物体总...
《Unity着色器圣经》3.2.0 | SubShader剔除与深度测试
目录索引 译文 要想理解这两个概念,我们需要先了解什么是 Z 缓冲(深度缓冲)和深度测试的工作原理。 在正式开始之前,我们需要先了解的是:像素是有深度值的。这些值被存储在一个叫做深度缓...
《Unity着色器圣经》2.0.3 | 着色器的种类
目录索引 译文 要想开始我们的着色器(shader)学习之路,我们需要先在 Unity 中创建一个项目。如果你使用 Unity Hub 进行项目管理,那么我建议你使用较新的 Unity 版本(例如2019、2020、2021...
《Unity着色器圣经》3.0.2 | ShaderLab着色器
目录索引 译文 我们编写的大多数着色器都以“Shader”的声明开头,紧随其后的是它在 Unity 检查器中的路径与名字,例如:“shader inspector path/shader name”。 在 ShaderLab 声明式语言中...
《Unity着色器圣经》8.0.4 | 阴影实现
目录索引 译文 现在我们已经理解了坐标空间的变换流程,我们可以回到先前创建的 USB_shadow_map 着色器中创建一个名为 NDCToUV 的函数。该函数表示从NDC空间变换到UV空间的过程,并将在顶点...
《Unity着色器圣经》4.1.0. | Clamp function.
目录索引 译文 当我们想要限制运算的结果时,可以使用这个函数。默认情况下,它允许我们通过设置最小值和最大值来定义数值范围内的值。 当我们写一个函数时,我们会遇到一些运算,这些运算会导...
《Unity着色器圣经》3.1.8 | SubShader透明度遮罩
目录索引 译文 有些类型的混合易于掌控,例如用 Alpha 通道加上透明效果的“SrcAlpha OneMinusSrcAlpha 混合”,但还有一些类型的混合无法为着色器生成透明度。在这种情况下,就需要使用到“透...






