diff options
Diffstat (limited to 'res/effectlib/sampleArea.glsllib')
-rw-r--r-- | res/effectlib/sampleArea.glsllib | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/res/effectlib/sampleArea.glsllib b/res/effectlib/sampleArea.glsllib index 70c7ae0..01f3a74 100644 --- a/res/effectlib/sampleArea.glsllib +++ b/res/effectlib/sampleArea.glsllib @@ -113,7 +113,7 @@ vec4 sampleAreaGlossy( in mat3 tanFrame, in vec3 pos, in int lightIdx, in vec3 v float sigmaV = clamp( 0.5 * roughV, 0.005, 0.5 ); vec2 UVset[5]; - mat3 lightFrame = mat3( arealights[lightIdx].right.xyz, arealights[lightIdx].up.xyz, arealights[lightIdx].direction.xyz ); + mat3 lightFrame = mat3( arealights[lightIdx].right.xyz, arealights[lightIdx].up.xyz, -arealights[lightIdx].direction.xyz ); float thetaI = acos( dot(viewDir, lightFrame[2]) ); vec2 minMaxThetaH = vec2( (thetaI - 1.5707) * 0.5, @@ -154,7 +154,7 @@ vec4 sampleAreaDiffuse( in mat3 tanFrame, in vec3 pos, in int lightIdx ) { float intensity = 0.0; vec3 finalDir; - intensity = calculateDiffuseAreaOld( -arealights[lightIdx].direction.xyz, arealights[lightIdx].position.xyz, + intensity = calculateDiffuseAreaOld( arealights[lightIdx].direction.xyz, arealights[lightIdx].position.xyz, arealights[lightIdx].up, arealights[lightIdx].right, pos, finalDir ); intensity *= clamp( dot(finalDir, tanFrame[2]), 0.0, 1.0 ); return vec4( intensity ); @@ -164,11 +164,11 @@ vec4 sampleAreaDiffuseTransmissive( in mat3 tanFrame, in vec3 pos, in int lightI { float intensity = 0.0; vec3 finalDir; - intensity = calculateDiffuseAreaOld( -arealights[lightIdx].direction.xyz, arealights[lightIdx].position.xyz, + intensity = calculateDiffuseAreaOld( arealights[lightIdx].direction.xyz, arealights[lightIdx].position.xyz, arealights[lightIdx].up, arealights[lightIdx].right, pos, finalDir ); intensity *= clamp( dot(finalDir, -tanFrame[2]), 0.0, 1.0 ); - float l = 0.2126f * transmissiveColor.r + 0.7152f * transmissiveColor.g + 0.0722f * transmissiveColor.b; + float l = 0.2126 * transmissiveColor.r + 0.7152 * transmissiveColor.g + 0.0722 * transmissiveColor.b; float I = max( 0.0, ((dot(finalDir, -tanFrame[2]) + lightWrap)/ (1.0 + lightWrap)) ); float translucent_thickness = l * l; |