Eevee/GPencil: Fix depth reading after render
This commit is contained in:
@@ -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] +
|
||||
|
||||
@@ -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++) {
|
||||
|
||||
Reference in New Issue
Block a user