Shader "Custom/BasicDiffuse"
{
Properties{
_EmissiveColor("Emissive Color", Color) = (1, 1, 1, 1)
_AmbientColor("AmbientCOlor", Color) = (1, 1, 1, 1)
_MySliderValue("This is a slider", Range(0, 10)) = 2.5
_RampTex("RampTex", 2D) = "white"{}
}
SubShader{
Tags{"RenderType" = "Opaque"}
LOD 200
CGPROGRAM
//#pragma surface surf Lambert
//自定义光照模型
#pragma surface surf BasicDiffuse
float4 _EmissiveColor;
float4 _AmbientColor;
float _MySliderValue;
sampler2D _RampTex;
struct Input
{
float2 uv_RampTex;
};
void surf(Input IN, inout SurfaceOutput o) {
float4 c;
c = pow((_EmissiveColor + _AmbientColor), _MySliderValue);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
inline float4 LightingBasicDiffuse(SurfaceOutput s, fixed3 lightDir,half3 viewDir, fixed atten) {
//兰伯特光照模型
//float difLight = max(
surface shader自定义光照模型
最新推荐文章于 2023-03-10 21:25:41 发布
本文深入探讨如何在Unity中使用Surface Shader自定义光照模型,通过控制表面着色器的数学逻辑来实现独特的光照效果,适合游戏开发和图形编程爱好者学习。
摘要由CSDN通过智能技术生成