diff options
author | Määttä Antti <antti.maatta@qt.io> | 2018-05-18 16:30:58 +0300 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2018-05-18 13:46:12 +0000 |
commit | 52e15f5a192e196e3d8ab65de0766bee3b03d0a3 (patch) | |
tree | e56ba17d74a235ef521155e9c4532b439b0f7386 /res | |
parent | 9dd28cb4e38a685922809e5f690350a7841c632a (diff) |
Fix custom material area light direction
Task-number: QT3DS-1714
Change-Id: I6e54bd90756276ce01f30254f7f8b3721366adec
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'res')
-rw-r--r-- | res/effectlib/sampleArea.glsllib | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/res/effectlib/sampleArea.glsllib b/res/effectlib/sampleArea.glsllib index 70c7ae0..2253359 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,7 +164,7 @@ 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 ); |