博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RGB 立方体
阅读量:4057 次
发布时间:2019-05-25

本文共 978 字,大约阅读时间需要 3 分钟。

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

创建方法: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拖放至立方体上,大家就可以看到一个渐变的立方体了。

你可能感兴趣的文章
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Clone Graph(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
java自定义容器排序的两种方法
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
AngularJS2中最基本的文件说明
查看>>
从头开始学习jsp(2)——jsp的基本语法
查看>>
使用与或运算完成两个整数的相加
查看>>
备忘:java中的递归
查看>>
DIV/CSS:一个贴在左上角的标签
查看>>
Solr及Spring-Data-Solr入门学习
查看>>
Vue组件
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
<转>文档视图指针互获
查看>>
从mysql中 导出/导入表及数据
查看>>