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