Skip to content

Commit

Permalink
Work in progress
Browse files Browse the repository at this point in the history
  • Loading branch information
jstone-lucasfilm committed Feb 13, 2025
1 parent ce08d4f commit 7d37736
Show file tree
Hide file tree
Showing 12 changed files with 18 additions and 17 deletions.
10 changes: 9 additions & 1 deletion libraries/pbrlib/genglsl/lib/mx_closure_type.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,19 @@
#define CLOSURE_TYPE_INDIRECT 3
#define CLOSURE_TYPE_EMISSION 4

struct ClosureData {
struct ClosureData
{
int closureType;
vec3 L;
vec3 V;
vec3 N;
vec3 P;
float occlusion;
};

// Enforce that the given normal is forward-facing in the context
// of the specified closure.
vec3 mx_forward_facing_normal(vec3 N, ClosureData closureData)
{
return dot(closureData.N, closureData.V) < 0.0 ? -N : N;
}
1 change: 0 additions & 1 deletion libraries/pbrlib/genglsl/lib/mx_environment_prefilter.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ float mx_latlong_alpha_to_lod(float alpha)

vec3 mx_environment_radiance(vec3 N, vec3 V, vec3 X, vec2 alpha, int distribution, FresnelData fd)
{
N = mx_forward_facing_normal(N, V);
vec3 L = fd.refraction ? mx_refraction_solid_sphere(-V, N, fd.ior.x) : -reflect(V, N);

float NdotV = clamp(dot(N, V), M_FLOAT_EPS, 1.0);
Expand Down
6 changes: 0 additions & 6 deletions libraries/pbrlib/genglsl/lib/mx_microfacet.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,6 @@ vec3 mx_fresnel_schlick(float cosTheta, vec3 F0, vec3 F90, float exponent)
return mix(F0, F90, pow(x, exponent));
}

// Enforce that the given normal is forward-facing from the specified view direction.
vec3 mx_forward_facing_normal(vec3 N, vec3 V)
{
return (dot(N, V) < 0.0) ? -N : N;
}

// https://www.graphics.rwth-aachen.de/publication/2/jgt.pdf
float mx_golden_ratio_sequence(int i)
{
Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_burley_diffuse_bsdf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ void mx_burley_diffuse_bsdf(ClosureData closureData, float weight, vec3 color, f
vec3 V = closureData.V;
vec3 L = closureData.L;

N = mx_forward_facing_normal(N, V);
N = mx_forward_facing_normal(N, closureData);
float NdotV = clamp(dot(N, V), M_FLOAT_EPS, 1.0);

if (closureData.closureType == CLOSURE_TYPE_REFLECTION)
Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_chiang_hair_bsdf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ void mx_chiang_hair_bsdf(ClosureData closureData, vec3 tint_R, vec3 tint_TT, vec
vec3 V = closureData.V;
vec3 L = closureData.L;

N = mx_forward_facing_normal(N, V);
N = mx_forward_facing_normal(N, closureData);

bsdf.throughput = vec3(0.0);

Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_conductor_bsdf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ void mx_conductor_bsdf(ClosureData closureData, float weight, vec3 ior_n, vec3 i
vec3 V = closureData.V;
vec3 L = closureData.L;

N = mx_forward_facing_normal(N, V);
N = mx_forward_facing_normal(N, closureData);
float NdotV = clamp(dot(N, V), M_FLOAT_EPS, 1.0);

FresnelData fd = mx_init_fresnel_conductor(ior_n, ior_k, thinfilm_thickness, thinfilm_ior);
Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_dielectric_bsdf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ void mx_dielectric_bsdf(ClosureData closureData, float weight, vec3 tint, float
vec3 V = closureData.V;
vec3 L = closureData.L;

N = mx_forward_facing_normal(N, V);
N = mx_forward_facing_normal(N, closureData);
float NdotV = clamp(dot(N, V), M_FLOAT_EPS, 1.0);

FresnelData fd = mx_init_fresnel_dielectric(ior, thinfilm_thickness, thinfilm_ior);
Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_generalized_schlick_bsdf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ void mx_generalized_schlick_bsdf(ClosureData closureData, float weight, vec3 col
vec3 V = closureData.V;
vec3 L = closureData.L;

N = mx_forward_facing_normal(N, V);
N = mx_forward_facing_normal(N, closureData);
float NdotV = clamp(dot(N, V), M_FLOAT_EPS, 1.0);

vec3 safeColor0 = max(color0, 0.0);
Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_generalized_schlick_edf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ void mx_generalized_schlick_edf(ClosureData closureData, vec3 color0, vec3 color
{
if (closureData.closureType == CLOSURE_TYPE_EMISSION)
{
vec3 N = mx_forward_facing_normal(closureData.N, closureData.V);
vec3 N = mx_forward_facing_normal(closureData.N, closureData);
float NdotV = clamp(dot(N, closureData.V), M_FLOAT_EPS, 1.0);
vec3 f = mx_fresnel_schlick(NdotV, color0, color90, exponent);
result = base * f;
Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_oren_nayar_diffuse_bsdf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ void mx_oren_nayar_diffuse_bsdf(ClosureData closureData, float weight, vec3 colo
vec3 V = closureData.V;
vec3 L = closureData.L;

N = mx_forward_facing_normal(N, V);
N = mx_forward_facing_normal(N, closureData);
float NdotV = clamp(dot(N, V), M_FLOAT_EPS, 1.0);

if (closureData.closureType == CLOSURE_TYPE_REFLECTION)
Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_sheen_bsdf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ void mx_sheen_bsdf(ClosureData closureData, float weight, vec3 color, float roug
vec3 V = closureData.V;
vec3 L = closureData.L;

N = mx_forward_facing_normal(N, V);
N = mx_forward_facing_normal(N, closureData);
float NdotV = clamp(dot(N, V), M_FLOAT_EPS, 1.0);

float dirAlbedo;
Expand Down
2 changes: 1 addition & 1 deletion libraries/pbrlib/genglsl/mx_subsurface_bsdf.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ void mx_subsurface_bsdf(ClosureData closureData, float weight, vec3 color, vec3
vec3 P = closureData.P;
float occlusion = closureData.occlusion;

N = mx_forward_facing_normal(N, V);
N = mx_forward_facing_normal(N, closureData);

if (closureData.closureType == CLOSURE_TYPE_REFLECTION)
{
Expand Down

0 comments on commit 7d37736

Please sign in to comment.