Eevee/GPencil: Fix depth reading after render

This commit is contained in:
2019-05-27 16:14:03 +02:00
parent 380f07d0ee
commit a74041c96c
2 changed files with 4 additions and 4 deletions

View File

@@ -365,8 +365,8 @@ static void eevee_render_result_z(RenderLayer *rl,
bool is_persp = DRW_view_is_persp_get(NULL);
float viewmat[4][4];
DRW_view_viewmat_get(NULL, viewmat, false);
float winmat[4][4];
DRW_view_winmat_get(NULL, winmat, false);
/* Convert ogl depth [0..1] to view Z [near..far] */
for (int i = 0; i < rp->rectx * rp->recty; ++i) {
@@ -376,7 +376,7 @@ static void eevee_render_result_z(RenderLayer *rl,
else {
if (is_persp) {
rp->rect[i] = rp->rect[i] * 2.0f - 1.0f;
rp->rect[i] = -viewmat[3][2] / (rp->rect[i] + viewmat[2][2]);
rp->rect[i] = winmat[3][2] / (rp->rect[i] + winmat[2][2]);
}
else {
rp->rect[i] = -common_data->view_vecs[0][2] +

View File

@@ -212,7 +212,7 @@ static void GPENCIL_render_result_z(struct RenderLayer *rl,
GPENCIL_render_update_vecs(vedata);
float winmat[4][4];
DRW_view_persmat_get(stl->storage->view, winmat, false);
DRW_view_winmat_get(stl->storage->view, winmat, false);
/* Convert ogl depth [0..1] to view Z [near..far] */
for (int i = 0; i < BLI_rcti_size_x(rect) * BLI_rcti_size_y(rect); i++) {