着色器资源是 Unity 项目中的资源,它定义了一个 Shader 对象。它是一个扩展名为 .shader 的文本文件。它包含着色器代码。
从主菜单中选择__资产 (Assets)__ > 创建 (Create) > 着色器 (Shader)。
创建着色器。
您可以创建以下类型的着色器:
| 着色器类型 | 描述 |
|---|---|
| 标准表面着色器 (Standard Surface Shader) | 用于编写与光照交互的简化着色器代码的着色器。 |
| 无光照着色器 (Unlit Shader) | 显示无任何光照的纹理的基本着色器。 |
| 图像效果着色器 (Image Effect Shader) | 与 C# 脚本关联的着色器文件,用于创建图像效果。 |
| 计算着色器 (Compute Shader) | 在 GPU 上执行计算的着色器,在常规图形管线之外。 |
| 光线追踪着色器 (Ray Tracing Shader) | 执行与光线追踪相关的计算的着色器。 |
Unity 使用基本代码在 Assets 文件夹中填充一个新的 .shader 文件。
要在__ ShaderLab__Unity 用于定义着色器对象结构的语言。更多信息
See in Glossary 中定义一个 Shader 对象,可使用 Shader 代码块。本页面包含有关使用 Shader 代码块的信息。
有关 Shader 对象的工作原理以及 Shader 对象、子着色器与通道之间关系的信息,请参阅 Shader 对象简介。
此示例代码演示 Shader 对象的基本语法和结构。示例 Shader 对象有一个包含单个通道的 SubShader。它定义材质属性、一个 CustomEditor 和一个 Fallback。
Shader "Examples/ShaderSyntax"
{
CustomEditor = "ExampleCustomEditor"
Properties
{
// Material property declarations go here
}
SubShader
{
// The code that defines the rest of the SubShader goes here
Pass
{
// The code that defines the Pass goes here
}
}
Fallback "ExampleFallbackShader"
}
有关与不同的渲染管线兼容的示例着色器,请参阅示例自定义着色器
在 Unity 5.0 之前,着色器的某些功能由其路径和名称决定。这仍然是 Unity 旧版着色器的工作方式。更改这些着色器的名称可能会影响其功能。
UNITY_SHADER_NO_UPGRADE 允许您禁止 Unity 自动升级或修改着色器文件。