目录
小插曲:看到具体数学冷汗直冒,细一看,嗷不是那本书呀。《具体数学》:别听《Unity Shader入门精要》里面说什么程序员的三大浪漫,真程序员就该手撕《具体数学》!
面板
结果示例
//1、在Shader下拉列表中的CustomShader选项中显示名为Shader_1的Unity Shader
Shader "Custom/Shader_1"
{
//2、Properties语义块:包含一系列属性(property),主要作用为把想要的属性显示到材质面板中,材质面板示例可以在上方“面板”图片中查看
Properties
{
//示例:Name("display name",propertyType) = DefaultValue
}
//可以包含多个SubShader但至少要有一个。Unity加载Shader时会扫描所有的SubShader并选择第一个能运行的SubShader运行,如果都不可以运行则使用Fallback指定的UnityShader
SubShader
{
//标签[Tags]:可选项
[Tags]
//状态[RenderSetup]:可选项
[RenderSetup]
//每一个pass定义了一次完整的渲染流程,如果Pass数目过多会造成渲染性能下降。状态和标签可以在pass中声明
Pass{}
}
FallBack "Diffuse"
}
Properties支持的类型(更新自官方文档)
Pass
{
[Name]
Name "Mypass"//定义pass名称,可以在其他地方使用UsePass “shader名称/大写pass名称”,unity会自动把pass名称全部转换为大写
[Tags]
[RenderSetup]
//Code
}