Unity 内置渲染管线中的着色器通过以下方式编写:
要确定哪种着色器最适合您的需求,请参阅着色器教程。
无论何种类型,着色器代码始终由 ShaderLab 语言进行封装以组织着色器结构。以下是创建不含着色器代码的 ShaderLab 封装器的示例:
Shader "MyShader" {
Properties {
_MyTexture ("My Texture", 2D) = "white" { }
// 此处放置其他属性,如颜色或矢量。
}
SubShader {
// 此处放置以下几项的着色器代码:
// - 表面着色器,
// - 顶点和片元着色器,或
// - 固定函数着色器
}
SubShader {
// 此处放置比上面更简单的子着色器版本。
// 此版本用于支持较旧的显卡。
}
}
要了解着色器基础知识和固定函数着色器,请参阅 ShaderLab 语法部分。对于其他支持的着色器类型,请参阅编写表面着色器或编写顶点和片元着色器。还可以将后期处理效果与着色器结合使用来创建全屏滤镜和其他有趣的效果。