summaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorMäättä Antti <antti.maatta@qt.io>2018-05-18 16:30:58 +0300
committerLaszlo Agocs <laszlo.agocs@qt.io>2018-05-18 13:46:12 +0000
commit52e15f5a192e196e3d8ab65de0766bee3b03d0a3 (patch)
treee56ba17d74a235ef521155e9c4532b439b0f7386 /res
parent9dd28cb4e38a685922809e5f690350a7841c632a (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.glsllib6
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 );