diff options
| author | yum <yum.food.vr@gmail.com> | 2025-02-11 16:54:10 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-02-11 16:54:10 -0800 |
| commit | 20c32dcb055058b770062b7e9dd07f79d33a8caa (patch) | |
| tree | a712206014334ab41a012c2cc27086c5f0591c45 /2ner.cginc | |
| parent | 2dcf39113fab3aac8fe280f3b0ead9cf87fa958d (diff) | |
Add code
Implement basic diffuse and specular BRDF based heavily on silent's
filamented shader.
Diffstat (limited to '2ner.cginc')
| -rw-r--r-- | 2ner.cginc | 44 |
1 files changed, 44 insertions, 0 deletions
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
|
