treesummaryrefslogcommitdiff
path: root/shaders/frag_irradiance.glsl
diff options
context:
space:
mode:
authorPatrick2021-03-26 19:11:29 +0100
committerPatrick2021-03-26 19:11:29 +0100
commit36fb27a899045de24d71d55b06648abda7547268 (patch)
treec5adeba0a8d9da11ed36f93a638e9904c83aca5e /shaders/frag_irradiance.glsl
parenta0fdc6d882a1755d0b0607ba3d9bb55e7f8ac006 (diff)
downloadsubsurface_scattering-36fb27a899045de24d71d55b06648abda7547268.tar.gz
subsurface_scattering-36fb27a899045de24d71d55b06648abda7547268.zip
pre cleanup
Diffstat (limited to 'shaders/frag_irradiance.glsl')
-rw-r--r--shaders/frag_irradiance.glsl17
1 files changed, 14 insertions, 3 deletions
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;