VertexShaderGen: Use reversed depth range.

This commit is contained in:
Jules Blok
2016-08-06 03:40:45 +02:00
parent e9e81ece65
commit 4582853af4
3 changed files with 8 additions and 5 deletions

View File

@ -387,9 +387,12 @@ void VertexShaderManager::SetConstants()
constants.pixelcentercorrection[0] = pixel_center_correction * pixel_size_x;
constants.pixelcentercorrection[1] = pixel_center_correction * pixel_size_y;
// The depth range is handled in the vertex shader.
// The depth range is handled in the vertex shader. We need to reverse
// the far value to get a reversed depth range mapping. This is necessary
// because we have the most precision at the near plane, while the console
// has the most percision at the far plane.
constants.pixelcentercorrection[2] = xfmem.viewport.zRange / 16777215.0f;
constants.pixelcentercorrection[3] = xfmem.viewport.farZ / 16777215.0f;
constants.pixelcentercorrection[3] = 1.0f - xfmem.viewport.farZ / 16777215.0f;
dirty = true;
// This is so implementation-dependent that we can't have it here.