Commit: b5cc078e4daa8d702b968b4a94b78adbe548c038
Author: Sriharsha Kotcharlakot
Date:   Thu Aug 20 08:59:05 2020 +0530
Branches: soc-2020-fluid-tools
https://developer.blender.org/rBb5cc078e4daa8d702b968b4a94b78adbe548c038

Changed to 'texelFetch()' for 'closest' interpolation in fluid viewport display

Used 'texelFetch()' instead of 'texture()' to avoid filtering and thus 
precision errors

===================================================================

M       source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl

===================================================================

diff --git 
a/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl 
b/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
index deff00cfb09..eaa553a10de 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
@@ -97,11 +97,13 @@ vec4 sample_tricubic(sampler3D ima, vec3 co)
   return color;
 }
 
+/* Nearest-neighbor interpolation */
 vec4 sample_closest(sampler3D ima, vec3 co)
 {
-  vec3 texture_size = vec3(textureSize(ima, 0).xyz);
-  vec3 texel_center = co - mod(co, 1.0 / texture_size) + 0.5 / texture_size;
-  return texture(ima, texel_center);
+  /* Unnormalize coordinates */
+  ivec3 cell_co = ivec3(co * vec3(textureSize(ima, 0).xyz));
+
+  return texelFetch(ima, cell_co, 0);
 }
 
 vec4 flag_to_color(uint flag)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to