本文主要是介绍Unity Shader 漫反射光照模型-逐像素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
逐像素光照
Shader "MyShader/DiffusePixelLevel"
{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 worldNormal : TEXCOORD0;};v2f vert(a2v v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.worldNormal = mul(v.normal, (float3x3)unity_WorldToObject);return o;}fixed4 frag(v2f i) :SV_Target{fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz;fixed3 worldNormal = normalize(i.worldNormal);fixed3 worldLight = normalize(_WorldSpaceLightPos0.xyz);fixed3 diffuse = _LightColor0.rgb * _Diffuse.rgb * saturate(dot(worldNormal, worldLight));fixed3 color = ambient + diffuse;return fixed4(color,1.0);}ENDCG}}Fallback "Diffuse"
}
效果,中间那个
参考我买的 unity shader 入门精要
这篇关于Unity Shader 漫反射光照模型-逐像素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!