summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2023-08-10 18:35:04 -0700
committeryum <yum.food.vr@gmail.com>2023-08-10 18:35:04 -0700
commit9949b4f695ce53903ea07353b4aa9b577a549749 (patch)
tree4dc1080d87e45a95847215524abdfd7fbf0e59f2
parentf7fbd1965543f47596eae491bbe8947bf44d1518 (diff)
Clean up pbr.cginc
Remove unused code & cruft. Ray marcher now updates i.worldPos before executing PBR shading, which fixes some artifacts.
-rw-r--r--Shaders/pbr.cginc43
-rw-r--r--Shaders/ray_march.cginc1
2 files changed, 5 insertions, 39 deletions
diff --git a/Shaders/pbr.cginc b/Shaders/pbr.cginc
index 0731ca5..c890034 100644
--- a/Shaders/pbr.cginc
+++ b/Shaders/pbr.cginc
@@ -8,17 +8,6 @@
static float BG_Effect_Bias = 0.0;
static float BG_Effect_Weight = 1.0;
-float BG_Effect_Emission_Strength;
-float Enable_Custom_Cubemap;
-UNITY_DECLARE_TEXCUBE(Custom_Cubemap);
-
-sampler2D BG_Emission_Mask;
-sampler2D BG_Emission_Color;
-
-float BG_Emission_Strength;
-float4 BG_Emission_Mask_ST;
-
-
UnityIndirect GetIndirect(v2f i, float3 view_dir, float smoothness) {
UnityIndirect indirect;
indirect.diffuse = 0;
@@ -35,17 +24,10 @@ UnityIndirect GetIndirect(v2f i, float3 view_dir, float smoothness) {
float roughness = 1 - smoothness;
roughness *= 1.7 - .7 * roughness;
float3 env_sample;
- if (Enable_Custom_Cubemap) {
- env_sample = UNITY_SAMPLE_TEXCUBE_LOD(
- Custom_Cubemap,
- reflect_dir,
- roughness * UNITY_SPECCUBE_LOD_STEPS);
- } else {
- env_sample = UNITY_SAMPLE_TEXCUBE_LOD(
- unity_SpecCube0,
- reflect_dir,
- roughness * UNITY_SPECCUBE_LOD_STEPS);
- }
+ env_sample = UNITY_SAMPLE_TEXCUBE_LOD(
+ unity_SpecCube0,
+ reflect_dir,
+ roughness * UNITY_SPECCUBE_LOD_STEPS);
indirect.specular = env_sample;
#endif
@@ -81,26 +63,11 @@ fixed4 light(inout v2f i,
{
initNormal(i);
- float2 iddx = ddx(i.uv.x);
- float2 iddy = ddy(i.uv.y);
-
- bool is_ray_hit = (albedo.r > 0 || albedo.g > 0 || albedo.b > 0);
- if (is_ray_hit) {
- albedo.rgb *= BG_Effect_Weight;
- albedo.rgb += BG_Effect_Bias;
- } else {
- albedo.rgb = float3(0, 0, 0);
- }
-
float3 specular_tint;
float one_minus_reflectivity;
albedo.rgb = DiffuseAndSpecularFromMetallic(
albedo, metallic, specular_tint, one_minus_reflectivity);
- float emission_mask_sample = tex2Dgrad(BG_Emission_Mask, i.uv.xy, iddx, iddy);
- fixed3 emission = emission_mask_sample *
- tex2Dgrad(BG_Emission_Color, i.uv.xy, iddx, iddy) * BG_Emission_Strength;
-
float3 view_dir = normalize(_WorldSpaceCameraPos - i.worldPos);
fixed3 pbr = UNITY_BRDF_PBS(albedo,
specular_tint,
@@ -110,8 +77,6 @@ fixed4 light(inout v2f i,
view_dir,
GetLight(i),
GetIndirect(i, view_dir, smoothness)).rgb;
- pbr.rgb += emission;
- pbr.rgb += albedo.rgb * BG_Effect_Emission_Strength;
return fixed4(saturate(pbr), albedo.a);
}
diff --git a/Shaders/ray_march.cginc b/Shaders/ray_march.cginc
index e149d0b..609e5d4 100644
--- a/Shaders/ray_march.cginc
+++ b/Shaders/ray_march.cginc
@@ -222,6 +222,7 @@ float4 stt_ray_march(float3 ro, float3 rd, inout v2f v2f_i, inout float depth)
float3 normal = stt_calculate_normal(current_position);
v2f_i.normal = normalize(mul(unity_ObjectToWorld, normal));
+ v2f_i.worldPos = mul(unity_ObjectToWorld, float4(current_position, 1.0)).xyz;
float epsilon = .005;
float letter_mask = 0;