第三章 Unity Shader基础
Unity Shader 概述
材质和Unity Shader
一个最常见的流程是:
(1)创建一个材质
(2)创建一个Unity Shader,并把它赋给上一步中创建的材质
(3)把材质赋给要渲染的对象
(4)在材质面板中调整Unity Shader 的属性,以得到满意的效果
Unity Shader 定义了渲染所需的各种代码、属性、指令,而材质则允许我们调节这些属性,并将其最终赋给相应的模型。
Unity 中的材质
unity中的材质需要结合一个GameObject 的 Mesh 或者 Particle Systems 组件来工作。它决定了我们的游戏对象看起来是什么样子的(需要Unity Shader配合)。
Unity 中的Shader
本质是一个文本文件。
Unity Shader 的基础:ShaderLab
ShaderLab 定义了要显示一个材质所需的所有东西,而不仅仅是着色器代码。
Unity Shader基础结构:
Shader"ShaderName"{
Properties{
//属性
}
SubShader{
//显卡A使用的子着色器
}
SubShader{
//显卡B使用的子着色器
}
Fallback"VertexLit"
}
Unity Shader的结构
给 Shader 起个名字
每个Unity Shader 文件的第一行都需要通过Shader语义来指定该Unity Shader的名字。通过在字符串中添加斜杠("/"),可以控制Unity Shader 在材质面板中出现的位置。
Properties:材质和Unity Shader的桥梁
Properties 语义块中包含了一系列属性,这些属性将会出现在材质面板中。
Properties{
Name("display name", PropertyType) = DefaultValue
}
声明这些属性是为了在材质面板中能够方便地调整各种材质属性。如果我们需要在Shader中访问他们,就需要使用每个属性的名字(Name)。这些属性名字由一个下划线开始。显示的名字(display name)是出现在材质面板上的名字。需要为每个属性指定它的类型(PropertyType)。我们还需要为每个属性指定一个默认值。
对于 Int、Float、Range这
原文地址:https://blog.csdn.net/s178435865/article/details/137800409
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!