Fix T61857 Eevee DOF not working if the camera is in orthographic mode
authorClément Foucault <foucault.clem@gmail.com>
Fri, 15 Mar 2019 21:14:42 +0000 (22:14 +0100)
committerClément Foucault <foucault.clem@gmail.com>
Fri, 15 Mar 2019 21:33:02 +0000 (22:33 +0100)
It was just a bad mapping of the ogl depth to scene linear depth.

source/blender/draw/engines/eevee/shaders/effect_dof_frag.glsl

index 067b078..6aa771b 100644 (file)
@@ -29,7 +29,7 @@ uniform vec2 nearFar; /* Near & far view depths values */
 
 #define linear_depth(z) ((ProjectionMatrix[3][3] == 0.0) \
                ? (nearFar.x  * nearFar.y) / (z * (nearFar.x - nearFar.y) + nearFar.y) \
-               : (z * 2.0 - 1.0) * nearFar.y)
+               : z * (nearFar.y - nearFar.x) + nearFar.x) /* Only true for camera view! */
 
 #define weighted_sum(a, b, c, d, e) (a * e.x + b * e.y + c * e.z + d * e.w) / max(1e-6, dot(e, vec4(1.0)));