《Unity着色器圣经》3.2.7 | 数据类型
目录索引 译文 在继续学习编写着色器之前,我们需要先了解一下数据类型以及数据类型在 Cg 与 HLSL 之间的微小差异。 当我们在当前版本的Unity中创建着色器时,我们可以找到以下几种精度不同的浮...
《Unity着色器圣经》3.1.9 | SubShader颜色遮罩
目录索引 译文 颜色遮罩命令允许 GPU 只写入选定的颜色通道,兼容内置渲染管线(Built-in)和可编程渲染管线(SRP)。 当我们新建一个着色器时,GPU 默认写入颜色的所有通道(RGBA)。然而在某...
《Unity着色器圣经》3.3.1 | Cg/HLSL变量与连接向量
目录索引 译文 继续回顾我们的 USB_simple_color 着色器,不难发现着色器中有一个 sampler2D 类型的变量和一个四维向量,用于定义 _ MainTex 纹理: sampler2D _MainTex; float4 _MainTex_S...
《Unity着色器圣经》1.1.5 | 我该使用哪种渲染管线?
目录索引 译文 应该为我们的项目选择哪种渲染管线呢?这是一个非常常见的疑问。Unity的早期版本只有内置渲染管线(Built-in RP),因此无论是 2D 还是 3D 项目,我们都不需要思考太多。但如今,...
《Unity着色器圣经》7.0.1 | 光照模型
目录索引 译文 “光照模型”指的是模型表面与光源之间相互作用的结果。根据该定义,光照模型包括了光源属性(如颜色、强度等)和指定的材料属性。 在着色器中,我们可以逐像素或逐顶点地计算光...
《Unity着色器圣经》4.1.7. | Frac function.
目录索引 译文 这个函数返回一个值的小数部分,也就是说,它的十进制值,例如,1.534f的frac返回0.534f; frac (3,27) = 0,27f It’s the same as 3,27f - 3.frac (0,47) = 0,47ffrac (1,0) = 0...
《Unity着色器圣经》3.2.8 | Cg/HLSL编程
目录索引 译文 在我们的着色器中,可以找到至少三个编译指令(pragma)。这些都是处理器指令,包含在 Cg 或 HLSL 中,其作用是帮助我们的着色器识别和编译某些函数,如果没有这些指令这些函数就...
《Unity着色器圣经》8.0.4 | 阴影实现
目录索引 译文 现在我们已经理解了坐标空间的变换流程,我们可以回到先前创建的 USB_shadow_map 着色器中创建一个名为 NDCToUV 的函数。该函数表示从NDC空间变换到UV空间的过程,并将在顶点...
《Unity着色器圣经》5.0.3 | 点乘
目录索引 译文 点乘是我们在计算光照和反射时经常会用到的一种运算,因为它可以确定两个向量之间的角度,并返回一个标量(即一个一维变量)。一般来说点乘得到的结果会进行归一化(normalized)...
《Unity着色器圣经》3.2.4 | ShaderLab模板
目录索引 译文 根据Unity官方文档(ShaderLab 命令:模板 - Unity 手册)所描述的: 模板缓冲区为帧缓冲区中的每个像素存储一个 8 位整数值。为给定像素执行片元着色器之前,GPU 可以将模板缓冲...



