本文共 1400 字,大约阅读时间需要 4 分钟。
1、创建一个Shader
打开unity选择File > New Project... 选择Create New Project 创建一个空的项目(不导入任何包);在Project视窗中点击Create选择Shader,创建一个新的Shader默认名为NewShader(这里选择Project视窗中的NewShader按F2可以更改名称);然后双击打开NewShader,系统会在MonoDevelop中打开一个名为NewShader.shader的文件,将文件内容全部删除,更改为如下内容:
Shader "Cg basic shader" { // 定义 shader名 SubShader { Pass { CGPROGRAM // 开始Unity Cg编程 #pragma vertex vert // 定义一个vertex shader函数对象 #pragma fragment frag // 定义一个 fragment shader函数对象 float4 vert(float4 vertexPos :POSITION) :SV_POSITION { return mul(UNITY_MATRIX_MVP, float4(1.0,1.0,1.0,1.0) * vertexPos); // 这里定义shader的vertex 属性 ,shader的形状可有float4中的四个参数值来确定 //目前shader是一个体积,若float4(0.1,0.1,1.0,1.0)则是一个面 }
float4 frag(void) :COLOR
{ return float4(1.0, 0.0, 0.0, 1.0); // 这里定义shader的fragment 属性,shader的颜色可有float4中的四个参数值确定 // 当前为红色不透明 (red = 1, green = 0, blue = 0, alpha = 1) } ENDCG // 结束Cg编程 } } }
然后选择File > Save保存文件。
2、创建一个Material并将Shader附在该素材上。
在Project视图中点击Create选择Material创建一个名为New Material的素材,然后将上一步创建的NewShader拖拽至New Material之上这样一个含有Shader的素材就建立完成了,在Project视窗中选择New Material可以在Inspector视窗中看到一个红色的实心圆。要想改变颜色可以通过更改Shader脚本中函数frag中的参数值来变换。想更改形状可通过更改vert函数中的参数值来变换。
3、创建一个游戏对象,然后将Material附着在游戏对象上。
选择GameObject > Create Other > Sphere 创建一个球体,在Hierarchy视窗中可以看到一个名为Sphere的对象,在Project视窗中将New Material拖拽至Sphere对象上,大家就可以在Scene视窗中看到一个红色的球体,如果建立的是Cube正方体,那么见到的就是一个红色的正方体。
然后保存场景,File > Save Scene.
最小Shader创建完成。
参考Cg Programming in Unity 1.1 Minimal Shader
转载地址:http://vsrci.baihongyu.com/