Shader "afanda/02 stand"{
SubShader{
CGPROGRAM
#pragma vertex ver
#pragma fragment frag
float4 ver(float4 v:POSITION):SV_POSITION
{
return mul(UNITY_MATRIX_MVP,v);
}
fixed4 frag():SV_Target{
return fixed(0.5,0.5,1,1);
}
ENDCG
}
}
#pragma vertex vert
#pragma fragment frag
xxx vert(xxx){
}
xxx frag (xxx){
}
CGPROGRAM
float4 _Color;
float _Float;
sampler2D _2D;
samplerCube _Cube;
CG
_Color("Color",Color)=(1,1,1,1)
_Vector("vector",Vector)=(1,2,3,4)
_Float("Float",Float)=4.5
_Int("Int",Int)=21242
_Range("Range",Range(1,11))=6
Shader "afanda/01 myshader"{ Properties{ } SubShader{ } Fallback "vertexList" }
在unity中对shader进行了一层封装,使用的是shaderLab编写unity中的shader
shader分类:
1、surface shader表面着色器
2、Vertex/Fragment shader顶点/片元着色器
3、Fixed Function Shader固定函数着色器(已很少使用)
1、surface shader解析后是2
只能使用编写好的
较适用在光源3、4个以上
2、Vertex/Fragment shader基本
什么是OpenGL、DirectX
图像应用编程接口(graphic API)
cpu与gpu
cpu处理计算gpu处理图像
应用程序运行在cpu上、 调用openGL、dx接口使用gpu(间接使用硬件)
在接口与显卡之间还有显卡驱动
shader作用在应用程序上,但传递给gpu
shader可以认为是一种渲染命令,由openGL和dx进行解析,来控制渲染丰富的图形
平台:openGL(移动)与dx(pc)
GLSL(GL shader language)用于OpenGL
HLSL(HL shader language)用于DirectX()
CG(具有 跨平台性)nvidia公司
http://http.developer.nvidia.com/