您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
27 行
1.0 KiB
27 行
1.0 KiB
using System;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.Graphs.Material
|
|
{
|
|
class WrapLambertFunction : BaseLightFunction
|
|
{
|
|
public override string GetName () { return "WrapLambert"; }
|
|
public override void GenerateBody(ShaderGenerator visitor)
|
|
{
|
|
var outputString = new ShaderGenerator ();
|
|
outputString.AddShaderChunk ("half4 Lighting" + GetName () + " (SurfaceOutput s, half3 lightDir, half atten)", false);
|
|
outputString.AddShaderChunk ("{", false);
|
|
outputString.Indent ();
|
|
outputString.AddShaderChunk ("half NdotL = dot (s.Normal, lightDir);", false);
|
|
outputString.AddShaderChunk ("half diff = NdotL * 0.5 + 0.5;", false);
|
|
outputString.AddShaderChunk ("half4 c;", false);
|
|
outputString.AddShaderChunk ("c.rgb = s.Albedo * _LightColor0.rgb * (diff * atten * 2);", false);
|
|
outputString.AddShaderChunk ("c.a = s.Alpha;", false);
|
|
outputString.AddShaderChunk ("return c;", false);
|
|
outputString.Deindent ();
|
|
outputString.AddShaderChunk ("}", false);
|
|
|
|
visitor.AddShaderChunk (outputString.GetShaderString (0), true);
|
|
}
|
|
}
|
|
}
|