From 36fb27a899045de24d71d55b06648abda7547268 Mon Sep 17 00:00:00 2001 From: Patrick Date: Fri, 26 Mar 2021 19:11:29 +0100 Subject: pre cleanup --- shaders/frag_irradiance.glsl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'shaders/frag_irradiance.glsl') diff --git a/shaders/frag_irradiance.glsl b/shaders/frag_irradiance.glsl index 497bdf0..1bcbc99 100644 --- a/shaders/frag_irradiance.glsl +++ b/shaders/frag_irradiance.glsl @@ -17,6 +17,9 @@ uniform int renderState; uniform float powBase; uniform float powFactor; +uniform float translucencySampleVariances[6]; +uniform vec3 translucencySampleWeights[6]; + void main() { vec3 norm = normalize(Normal); @@ -39,10 +42,18 @@ void main() //distanceToBackside = distance(Backside, LocalPos); vec3 result = (ambient + diffuse + specular) * objectColor; - if (renderState == 3) - if (distanceToBackside != 0) - //result += objectColor * pow(powBase, -pow(distanceToBackside, 2)) * transmittanceScale * (1 - diff); + if (renderState == 3) { + if (distanceToBackside != 0) { result += objectColor * pow(powBase, powFactor / pow(distanceToBackside, 0.6)) * transmittanceScale * (1 - diff); + // vec3 translucency = vec3(0); + // for (int i = 0; i < 6; i++) { + // translucency += objectColor * translucencySampleWeights[i] * exp(-pow(distanceToBackside, 2.0) / translucencySampleVariances[i]); + // } + + // result += translucency * transmittanceScale; + } + } + //result += objectColor * pow(powBase, -pow(distanceToBackside, 2)) * transmittanceScale * (1 - diff); // if (renderState == 3) { // //result = Backside; // //result = LocalPos; -- cgit v1.2.3