#version 330 core\r
\r
in vec3 FragPos;\r
+in vec3 LocalPos;\r
+in vec3 Backside;\r
+in float BacksideIrradiance;\r
in vec3 Normal;\r
\r
out vec4 FragColor;\r
\r
-uniform sampler2D shadowmapTexture;\r
-\r
uniform vec3 objectColor;\r
uniform vec3 lightColor;\r
uniform vec3 lightPos;\r
uniform vec3 viewPos;\r
+uniform float transmittanceScale;\r
+uniform int renderState;\r
+uniform float powBase;\r
+uniform float powFactor;\r
\r
void main()\r
{\r
float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);\r
vec3 specular = specularStrength * spec * lightColor;\r
\r
+ //float distanceToBackside = length(clamp(FragPos - Backside, vec3(0), vec3(1000)));\r
+ float distanceToBackside = length(FragPos - Backside);\r
+ //distanceToBackside = distance(Backside, LocalPos);\r
vec3 result = (ambient + diffuse + specular) * objectColor;\r
+\r
+ if (renderState == 3)\r
+ if (distanceToBackside != 0)\r
+ //result += objectColor * pow(powBase, -pow(distanceToBackside, 2)) * transmittanceScale * (1 - diff);\r
+ result += objectColor * pow(powBase, powFactor / pow(distanceToBackside, 0.6)) * transmittanceScale * (1 - diff);\r
+ // if (renderState == 3) {\r
+ // //result = Backside;\r
+ // //result = LocalPos;\r
+ // result = vec3(distanceToBackside);\r
+ // }\r
+\r
+ \r
FragColor = vec4(result, 1.0f);\r
+ //FragColor = vec4(vec3(distanceToBackside), 1);\r
}\r