From 20c32dcb055058b770062b7e9dd07f79d33a8caa Mon Sep 17 00:00:00 2001 From: yum Date: Tue, 11 Feb 2025 16:54:10 -0800 Subject: Add code Implement basic diffuse and specular BRDF based heavily on silent's filamented shader. --- 2ner.cginc | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 2ner.cginc (limited to '2ner.cginc') diff --git a/2ner.cginc b/2ner.cginc new file mode 100644 index 0000000..656e79f --- /dev/null +++ b/2ner.cginc @@ -0,0 +1,44 @@ +#ifndef __2NER_INC +#define __2NER_INC + +#include "UnityCG.cginc" +#include "UnityLightingCommon.cginc" + +#include "globals.cginc" +#include "interpolators.cginc" +#include "poi.cginc" +#include "yum_brdf.cginc" +#include "yum_pbr.cginc" +#include "yum_lighting.cginc" + +v2f vert (appdata v) { + v2f o; + + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + o.worldPos = mul(unity_ObjectToWorld, v.vertex); + + // Calculate TBN matrix + o.normal = UnityObjectToWorldNormal(v.normal); + o.tangent = UnityObjectToWorldDir(v.tangent.xyz); + o.bitangent = cross(o.normal, o.tangent) * v.tangent.w; + + return o; +} + +float4 frag (v2f i) : SV_Target { + YumPbr pbr = GetYumPbr(i); + + UNITY_BRANCH + if (_Mode == 1) { + clip(pbr.albedo.a - _Clip); + } + + YumLighting l = GetYumLighting(i, pbr); + + float4 lit = YumBRDF(i, l, pbr); + + return lit; +} + +#endif // __2NER_INC -- cgit v1.2.3