Unity Surface Shader 示例分析
Unity Surface Shader 示例分析 对于Unity中的表面着色器(Surface Shader),它的代码整体结构如下所示: Shader "name" { Properties { // 第一部分 } SubShader { // 第二部分 } Fallback "Diffuse" // 第三部分 } 第一部分 Properties 数据块 它的作用是充当数据的接口,将外部的数据(资源)引入进来,以供着色器内部使用。在这里,我们可以定义的数据类型如下所示: (1) _MainTex ( "Base (RGB)", 2D ) = "white" {} 2D类型,主要指我们所使用的纹理贴图。 _MainTex是自定义的变量名称,我们在编写shader的代码时将使用它,它会显示在shader的属性面板上,下同; "Base (RGB)"也是一个名称,它会在绑定该shader的材质属性面板上显示。 (2) _CubeTex ( "3D Map", Cube ) = "white" {} Cube类型,表示三维纹理。三维纹理具有宽度、高度以及深度三个维度的信息。 (3) _Color ( "Main Color", Color ) = (1,1,1,1) Color类型,表示一种颜色,包含( R, G, B, A )4个颜色值成分。 _Color是自定义的变量名称