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-10-30 18:20:48 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-10-30 18:44:23 +0300
commit26223f8d9a09a0554e94610039abf5c85284e2e3 (patch)
treec25677cc3d4ae2997189e58e01a75f9588254dd9 /source/blender
parenta1cdf9cc3f7d9658ea41d901296e76000bc9d4fd (diff)
Object Mode: Grid: Reduce line thickness a tiny bit and apply UI scaling
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/draw/modes/object_mode.c2
-rw-r--r--source/blender/draw/modes/shaders/object_grid_frag.glsl12
2 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 1b20e32a770..b494fbc740e 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -1044,6 +1044,7 @@ static void OBJECT_cache_init(void *vedata)
psl->grid = DRW_pass_create("Infinite Grid Pass", state);
struct GPUBatch *geom = DRW_cache_grid_get();
+ float grid_line_size = max_ff(0.0f, U.pixelsize - 1.0f) * 0.5f;
static float mat[4][4];
unit_m4(mat);
@@ -1055,6 +1056,7 @@ static void OBJECT_cache_init(void *vedata)
DRW_shgroup_uniform_vec3(grp, "cameraPos", e_data.camera_pos, 1);
DRW_shgroup_uniform_vec4(grp, "screenvecs[0]", e_data.screenvecs[0], 3);
DRW_shgroup_uniform_vec4(grp, "gridSettings", e_data.grid_settings, 1);
+ DRW_shgroup_uniform_float_copy(grp, "lineKernel", grid_line_size);
DRW_shgroup_uniform_float(grp, "gridOneOverLogSubdiv", &e_data.grid_settings[4], 1);
DRW_shgroup_uniform_block(grp, "globalsBlock", globals_ubo);
DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1);
diff --git a/source/blender/draw/modes/shaders/object_grid_frag.glsl b/source/blender/draw/modes/shaders/object_grid_frag.glsl
index 4a3ac6abd84..928db048a46 100644
--- a/source/blender/draw/modes/shaders/object_grid_frag.glsl
+++ b/source/blender/draw/modes/shaders/object_grid_frag.glsl
@@ -12,6 +12,7 @@ uniform vec3 eye;
uniform vec4 gridSettings;
uniform vec2 viewportSize;
uniform vec4 screenvecs[3];
+uniform float lineKernel = 0.0;
uniform float gridOneOverLogSubdiv;
uniform sampler2D depthBuffer;
@@ -31,7 +32,8 @@ uniform int gridFlag;
#define PLANE_YZ (1 << 6)
#define GRID_BACK (1 << 9) /* grid is behind objects */
-#define GRID_LINE_SMOOTH 1.15
+#define GRID_LINE_SMOOTH_START -0.1
+#define GRID_LINE_SMOOTH_END 1.05
float get_grid(vec2 co, vec2 fwidthCos, float grid_size)
{
@@ -42,10 +44,10 @@ float get_grid(vec2 co, vec2 fwidthCos, float grid_size)
* (make lines have the same width under perspective) */
grid_domain /= fwidthCos;
- /* collapse waves and normalize */
- grid_domain.x = min(grid_domain.x, grid_domain.y) / half_size;
+ /* collapse waves */
+ float line_dist = min(grid_domain.x, grid_domain.y);
- return 1.0 - smoothstep(0.0, GRID_LINE_SMOOTH / grid_size, grid_domain.x * 0.5);
+ return 1.0 - smoothstep(GRID_LINE_SMOOTH_START, GRID_LINE_SMOOTH_END, line_dist - lineKernel);
}
vec3 get_axes(vec3 co, vec3 fwidthCos, float line_size)
@@ -55,7 +57,7 @@ vec3 get_axes(vec3 co, vec3 fwidthCos, float line_size)
* (make line have the same width under perspective) */
axes_domain /= fwidthCos;
- return 1.0 - smoothstep(0.0, GRID_LINE_SMOOTH, axes_domain - line_size);
+ return 1.0 - smoothstep(GRID_LINE_SMOOTH_START, GRID_LINE_SMOOTH_END, axes_domain - (line_size + lineKernel));
}
vec3 get_floor_pos(vec2 uv, out vec3 wPos)