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