本文共 1384 字,大约阅读时间需要 4 分钟。
Shader "Custom/Chapter 5/Simple Shader" { Properties { //属性 } SubShader{ Pass{ //1.设置渲染状态和标签 //2.开始CG代码片段 CGPROGRAM //3.该代码片段的编译指令 #pragma vertex vert //顶点着色器 #pragma fragment frag //片元着色器 //4.cg代码 float4 vert(float4 v:POSITION): SV_POSITION{ return UnityObjectToClipPos (v);//把顶点坐标从模型空间转换到剪裁空间 } float4 frag() : SV_Target{ //颜色值 return fixed4(1, 1, 0.5f, 1); } ENDCG //5.其他设置 //6.其他需要的pass } } SubShader{ //针对不同显卡有不同的方案 } //上述SubShader都失败后,用于回调的Unity Shader FallBack "Diffuse"}
使用的是ShaderLab编写Unity中的Shader1,表面着色器 Surface Shader2,顶点/片元着色器 Vertex/Fragment Shader3,固定函数着色器 Fixed Function Shader
_Color("Color",Color)=(1,1,1,1)_Vector("Vector",Vector)=(1,2,3,4)_Int("Int",Int)= 34234_Float("Float",Float) = 4.5_Range("Range",Range(1,11))=6_2D("Texture",2D) = "red"{}_Cube("Cube",Cube) = "white"{}_3D("Texure",3D) = "black"{}
从应用程序传递到顶点函数的语义有哪些a2v
POSITION 顶点坐标(模型空间下的) NORMAL 法线( 模型空间下) TANGENT 切线(模型空间) TEXCOORD0 ~n 纹理坐标 COLOR 顶点颜色从顶点函数传递给片元函数的时候可以使用的语义
SV_POSITION 剪裁空间中的顶点坐标(一般是系统直接使用) COLOR0 可以传递一组值 4个 COLOR1 可以传递一组值 4个 TEXCOORD0~7 传递纹理坐标片元函数传递给系统
SV_Target 颜色值,显示到屏幕上的颜色转载地址:http://ighff.baihongyu.com/