本文主要是介绍Unity Shader 漫反射光照模型-逐顶点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
逐顶点光照
Shader "MyShader/DiffuseVertexLevel"
{Properties{_Diffuse("Diffuse",Color) = (1,1,1,1)}SubShader{Pass{Tags{"LightMode" = "ForwardBase"}CGPROGRAM#pragma vertex vert#pragma fragment frag#include "Lighting.cginc"fixed4 _Diffuse;struct a2v{float4 vertex : POSITION;float3 normal : NORMAL;};struct v2f{float4 pos : SV_POSITION;fixed3 color : COLOR;};v2f vert(a2v v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz;fixed3 worldNormal = normalize(mul(v.normal,(float3x3)unity_WorldToObject));fixed3 worldLight = normalize(_WorldSpaceLightPos0.xyz);fixed3 diffuse = _LightColor0.rgb * _Diffuse.rgb * saturate(dot(worldNormal, worldLight));o.color = ambient + diffuse;return o;}fixed4 frag(v2f i) :SV_Target{return fixed4(i.color,1.0);}ENDCG}}Fallback "Diffuse"
}
效果,最左边的那个
参考我买的 unity shader入门精要。
这篇关于Unity Shader 漫反射光照模型-逐顶点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!