文本编辑器和可视化编辑器究竟有多大差距,我们可以具体到之前学习的标准光照模型。
这是兰伯特模型:
/*******************************************
Lambert(兰伯特)光照模型
1. 理想的漫反射;
2. 计算都在顶点着色器,因此像素不会平滑过渡;
*******************************************/
Shader "JQM/Lambert"
{
Properties
{
_Color("Color", color) = (1.0,1.0,1.0,1.0)
}
SubShader{
Pass{
Tags { "LightMode" = "ForwardBase"}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
//使用自定义变量
uniform float4 _Color;
//使用Unity定义的变量
uniform float4 _LightColor0;
struct vertexInput{
float4 vertex:POSITION;
float3 normal:NORMAL;
};
struct vertexOutput{
float4 pos:SV_POSITION;
float4 col:COLOR;
};
//顶点程序
vertexOutput vert(vertexInput v)
{
vertexOutput o;
float3 normalDirection = normalize( mul(float4(v.normal,0.0),_World2Object).xyz);//将模型空间的法线转到世界空间