summaryrefslogtreecommitdiffstats
path: root/pbr.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2026-01-14 23:26:14 -0800
committeryum <yum.food.vr@gmail.com>2026-01-14 23:26:14 -0800
commitd01a5d14765cb106327f805c642bc150f5414b3f (patch)
tree5fbc3a96dd8c61e76e3ae8f78f59514356492402 /pbr.cginc
parentd1eb208ecbeba1ab7bf894d9f14d2652739bc63e (diff)
Impostors: implement metallic gloss, normals
Diffstat (limited to 'pbr.cginc')
-rw-r--r--pbr.cginc10
1 files changed, 7 insertions, 3 deletions
diff --git a/pbr.cginc b/pbr.cginc
index 8a611d4..a1df361 100644
--- a/pbr.cginc
+++ b/pbr.cginc
@@ -161,13 +161,15 @@ Pbr getPbr(v2f i) {
#endif // _PARALLAX_HEIGHTMAP
#if defined(_IMPOSTORS)
- pbr.albedo = impostor_frag(i.worldPos);
- pbr.albedo *= _Color;
+ ImpostorResult imp = impostor_frag(i.worldPos);
+ pbr.albedo = imp.albedo * _Color;
+ pbr.normal = imp.normal;
+ pbr.smoothness = imp.smoothness;
+ pbr.metallic = imp.metallic * _Metallic;
#else
pbr.albedo = _MainTex.Sample(aniso16_trilinear_repeat_s, uv_parallax * _MainTex_ST.xy + _MainTex_ST.zw);
pbr.albedo *= _Color;
apply_marble(i.worldPos, pbr.albedo.xyz);
-#endif
float3 normal_tangent = UnpackNormal(_BumpMap.Sample(aniso16_trilinear_repeat_s, uv_parallax * _BumpMap_ST.xy));
normal_tangent.xy *= _BumpScale;
@@ -186,6 +188,8 @@ Pbr getPbr(v2f i) {
float4 metallic_gloss = _MetallicGlossMap.Sample(aniso16_trilinear_repeat_s, uv_parallax * _MetallicGlossMap_ST.xy);
pbr.smoothness = metallic_gloss.a * _Glossiness;
pbr.metallic = metallic_gloss.r * _Metallic;
+#endif // _IMPOSTORS
+
#if defined(_CLEARCOAT)
pbr.cc_roughness = _Clearcoat_Roughness;
pbr.cc_strength = _Clearcoat_Strength;