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>2018-11-06 22:52:06 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-11-07 02:19:14 +0300
commit1fe561e6623697d6d2f3f0e22dd609109ee65261 (patch)
tree43a74172b8230bbeabb002ed6b49ae457672e531 /source/blender/gpu/shaders
parentc3a0af736a4f6db5b3310cca947bfb103fd2cde2 (diff)
Eevee: Wireframe: Increase precision a bit
Take the full derivative and compute its length instead of using fwidth.
Diffstat (limited to 'source/blender/gpu/shaders')
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index 4039b20a082..e5740babebc 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -1445,7 +1445,10 @@ void node_wireframe_screenspace(float size, vec2 barycentric, out float fac)
barys.z = 1.0 - barycentric.x - barycentric.y;
size *= (1.0 / 3.0);
- vec3 deltas = fwidth(barys);
+ vec3 dx = dFdx(barys);
+ vec3 dy = dFdy(barys);
+ vec3 deltas = sqrt(dx * dx + dy * dy);
+
vec3 s = step(-deltas * size, -barys);
fac = max(s.x, max(s.y, s.z));