diff options
Diffstat (limited to 'shaders/frag_irradiance.glsl')
| -rw-r--r-- | shaders/frag_irradiance.glsl | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/shaders/frag_irradiance.glsl b/shaders/frag_irradiance.glsl index 9e14ebe..497bdf0 100644 --- a/shaders/frag_irradiance.glsl +++ b/shaders/frag_irradiance.glsl @@ -1,16 +1,21 @@ #version 330 core
in vec3 FragPos;
+in vec3 LocalPos;
+in vec3 Backside;
+in float BacksideIrradiance;
in vec3 Normal;
out vec4 FragColor;
-uniform sampler2D shadowmapTexture;
-
uniform vec3 objectColor;
uniform vec3 lightColor;
uniform vec3 lightPos;
uniform vec3 viewPos;
+uniform float transmittanceScale;
+uniform int renderState;
+uniform float powBase;
+uniform float powFactor;
void main()
{
@@ -29,6 +34,22 @@ void main() float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);
vec3 specular = specularStrength * spec * lightColor;
+ //float distanceToBackside = length(clamp(FragPos - Backside, vec3(0), vec3(1000)));
+ float distanceToBackside = length(FragPos - Backside);
+ //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);
+ result += objectColor * pow(powBase, powFactor / pow(distanceToBackside, 0.6)) * transmittanceScale * (1 - diff);
+ // if (renderState == 3) {
+ // //result = Backside;
+ // //result = LocalPos;
+ // result = vec3(distanceToBackside);
+ // }
+
+
FragColor = vec4(result, 1.0f);
+ //FragColor = vec4(vec3(distanceToBackside), 1);
}
|
