+{\r
+ if (renderState == 0) {\r
+ FragColor = texture(shadowmapTexture, TexCoords);\r
+ }\r
+ // stencil buffer\r
+ else if (renderState == 1 || texture(irradianceTexture, TexCoords).rgb == vec3(0, 0, 0)) {\r
+ FragColor = texture(irradianceTexture, TexCoords);\r
+ }\r
+ else if (renderState == 2) {\r
+ FragColor = texture(shadowmapTexture, TexCoords) * texture(irradianceTexture, TexCoords);\r
+ }\r
+ else if (renderState == 3) {\r
+ vec4 result = vec4(0, 0, 0, 1);\r
+ for (int i = 0; i < 13; i++) {\r
+ float oneX = 1.0/screenWidth;\r
+ float oneY = 1.0/screenHeight;\r
+ vec4 sample = texture(irradianceTexture, TexCoords + samplePositions[i] * vec2(oneX, oneY));\r
+ vec4 weight = vec4(sampleWeights[i], 1);\r
+ result += sample * weight;\r
+ }\r
+ FragColor = result;\r
+ }\r