《Unity着色器圣经》1.0.1 | 多边形物体的属性
目录索引 译文 许多年前,当我刚开始学习 Unity 中的着色器时,有几个原因导致我难以理解书本上的内容。我仍然记得有一天,我希望理解语义 POSITION[n] 的操作,但关于它的介绍只有短短一句: ...
《Unity着色器圣经》8.0.3 | 阴影贴图
目录索引 译文 回到在本章开头创建的着色器 USB_shadow_map,在这一小节中,我们将定义一个用于在模型上接收阴影的纹理。为了实现该操作,让我们在颜色 pass 的 Tag 语义块中加入光照模型&...
《Unity着色器圣经》3.1.1 | MPD指数滑条与整数范围
目录索引 译文 这两种绘制器在处理数字范围和精度时非常有用,比如我们可以用指数滑条(PowerSlider)非线性地控制曲线。 指数滑条的声明语法如下所示: [PowerSlider(3.0)] _PropertyName ('Di...
《Unity着色器圣经》3.2.2 | ShaderLab深度写入
目录索引 译文 深度写入这个命令控制了物体表面像素写入 Z 缓冲(深度缓冲)的这一过程。它允许我们忽略或写入物体与相机间的深度。深度写入有两个可以设置的值,分别是开启(On)和关闭(Off)...
《Unity着色器圣经》4.0.4 | HLSL函数的结构
目录索引 译文 与C#中的函数一样,在HLSL中,函数声明可以返回空(void)或者是一个值。我们必须使用依赖于函数类型的“声明”;它们确定一个值是对应于输入(in)、输出(out)、全局变量(unifo...
《Unity着色器圣经》8.0.6 | 通用渲染管线下的阴影映射
目录索引 译文 我们在实现阴影的过程中使用的技术可以根据我们想要实现的类型而有所不同。我们使用的流程是 Unity 中实现阴影的最佳流程,但具体的实现可能因开发者所选的渲染管线而异,例如,...
《Unity着色器圣经》4.0.5. | Debugging a shader.
目录索引 译文 当我们用C#编写脚本时,在Unity中,我们可以使用debug.Log函数调试程序。该函数允许我们在控制台上打印代码的操作,但是,该函数在Cg或HLSL中不可用。那么我们如何调试着色器呢?...
《Unity着色器圣经》7.0.1 | 光照模型
目录索引 译文 “光照模型”指的是模型表面与光源之间相互作用的结果。根据该定义,光照模型包括了光源属性(如颜色、强度等)和指定的材料属性。 在着色器中,我们可以逐像素或逐顶点地计算光...
《Unity着色器圣经》7.0.8 | 标准表面着色器的输入与输出
目录索引 译文 与顶点/片元着色器一样,标准表面着色器在默认情况下包含了两个结构类型的函数,它们分别是: Input. SurfaceOutputStandard. 这个结构体与我们在前几节所接触的 appdata(顶点输...
《Unity着色器圣经》1.1.3 | 前向渲染
目录索引 译文 前向渲染是默认的渲染路径,支持诸如法线贴图、逐像素光照、阴影等多种材质功能。前向渲染包含了两种可以在着色器内编程的pass,分别是 base pass 和 additional ...





