Unity Shader
普通 Unity 项目内提供的 Shader 类型
- 标准表面着色器(Standard Surface Shader) 包含了标准光照模型的表面着色器模板
- 非光照着色器 (Unlit Shader) 不包含光照(但包含雾效)的基本的顶点/片元着色器
- 图像效果着色器 (Image Effect Shader) 屏幕后处理效果的模板
- 计算着色器 (Compute Shader) 特殊的shader文件,利用GPU的并行性来进行一些与常规渲染流水线无关的计算
- 光线追踪着色器 (Ray Tracing Shader) 光追着色器
标准表面着色器
如果我们像创建一个与光线交互的着色器,有两个选项
- 使用无光照着色器,并添加允许再材质上进行光线渲染的数学函数
- 或使用标准表面着色器,该着色器具有基本的照明模型
非光照着色器
非光照着色器是指基本颜色模型,通常是我们用来创建效果的基础结构
这种类型的程序,非常适合低端硬件
图像效果着色器
其结构与非光照着色器非常相似,图像特效主要用于内置 RP 中后处理效果,并需要 C# 中的函数 OnRenderImage
计算着色器
这种类型的程序以在显卡上运行为特点,却位于正常的渲染管线之外,其结构与先前提到的着色器非常不同
与普通着色器不同,他的扩展名为 '.comoute', 编程语言为 HLSL
光线追踪着色器
光线追踪着色器是一种扩展名为 .raytrace 的实验性程序类型,他允许 GPU 进行光线追踪处理,我们可以使用这种类型的程序来替换用于光线投射处理算法的 '.compute' 类型的着色器
URP 或 HDRP Unity 项目中会有 Shader Graph