RGB 立方体




这章是在上章Minimal Shader的基础上建立起来的,本章是创建一个颜色按照位置变化显示色谱的立方体,效果如下图。



RGB 立方体_第1张图片

创建方法:1、按照上节的步骤建立一个最小Shader,将Shader命名为Shader1.2,Material命名为Material1.2

                  2、双击打开shader1.2脚本文件,更改内容如下:

                  Shader "Cg shader for RGB cube" {
                   //通过位置信息变化更改颜色变化
 SubShader {
Pass { 


CGPROGRAM
#pragma vertex vert
#pragma fragment frag

                   //创建一个vertex输出的结构体,结构体记录位置信息和颜色信息
struct vertexOutput {
float4 pos : SV_POSITION;
float4 col : TEXCOORD0;
};

                //实现Vertex和Fragment Shader之间的通信
vertexOutput vert(float4 vertexPos : POSITION)
{
  vertexOutput output;
  output.pos = mul (UNITY_MATRIX_MVP, vertexPos);
  output.col = vertexPos + float4(0.5,0.5,0.5,0.0);   //颜色属性的值=位置属性的值,实现颜色随位置变化渐变效果。
  //unity中vertex position属性的取值范围是-0.5~+0.5,而color属性取值范围是0.0~1.0,若想正常输出需将 坐标x,y,z各增加0.5
  //就如vertexPos + float4(0.5,0.5,0.5,0.0)这种形式
 return output;

}
//将vertex的输出值作为frag的输入参数,返回颜色信息
float4 frag(vertexOutput input) : COLOR
{
    return input.col;


}
ENDCG


  }
}

  保存shader1.2

   3、选择GameObject > Create Other > Cube创建一个游戏对象——立方体,然后将建立好的Material1.2拖放至立方体上,大家就可以看到一个渐变的立方体了。





你可能感兴趣的:(unity成长笔记)