Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-04-04 19:08:42 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-04-04 19:08:42 +0300
commitb26164ded5e9804f233dc72407080939c960f9a1 (patch)
tree6ec65490f89f1de6c33ab5126561a6416a90ab2f /source/blender/draw/engines/eevee/eevee_lightprobes.c
parentc2f3ba64ce3b7cb0dd0498b708471b6470c589a6 (diff)
Fix T63108 Eevee: Wrong Reflection plane matrix if camera view is not centered
Invert X axis of the Window Matrix (AKA Projection matrix) instead of the View matrix.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_lightprobes.c')
-rw-r--r--source/blender/draw/engines/eevee/eevee_lightprobes.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_lightprobes.c b/source/blender/draw/engines/eevee/eevee_lightprobes.c
index 90a3691f6e5..5d4601df7cf 100644
--- a/source/blender/draw/engines/eevee/eevee_lightprobes.c
+++ b/source/blender/draw/engines/eevee/eevee_lightprobes.c
@@ -666,16 +666,17 @@ static void lightbake_planar_compute_render_matrices(
EEVEE_PlanarReflection *eplanar, DRWMatrixState *r_matstate,
const float viewmat[4][4], const float winmat[4][4])
{
+ /* Temporal sampling jitter should be already applied to the DRW_MAT_WIN. */
+ copy_m4_m4(r_matstate->winmat, winmat);
+ /* Invert X to avoid flipping the triangle facing direction. */
+ r_matstate->winmat[0][0] = -r_matstate->winmat[0][0];
+ r_matstate->winmat[1][0] = -r_matstate->winmat[1][0];
+ r_matstate->winmat[2][0] = -r_matstate->winmat[2][0];
+ r_matstate->winmat[3][0] = -r_matstate->winmat[3][0];
/* Reflect Camera Matrix. */
mul_m4_m4m4(r_matstate->viewmat, viewmat, eplanar->mtx);
- /* Invert X to avoid flipping the triangle facing direction. */
- r_matstate->viewmat[0][0] = -r_matstate->viewmat[0][0];
- r_matstate->viewmat[1][0] = -r_matstate->viewmat[1][0];
- r_matstate->viewmat[2][0] = -r_matstate->viewmat[2][0];
- r_matstate->viewmat[3][0] = -r_matstate->viewmat[3][0];
/* Apply Projection Matrix. */
- /* Temporal sampling jitter should be already applied to the DRW_MAT_WIN. */
- mul_m4_m4m4(r_matstate->persmat, winmat, r_matstate->viewmat);
+ mul_m4_m4m4(r_matstate->persmat, r_matstate->winmat, r_matstate->viewmat);
}
static void eevee_lightprobes_extract_from_cache(EEVEE_LightProbesInfo *pinfo, LightCache *lcache)