[Bf-blender-cvs] [45f94cb02a2] greasepencil-object: Rescale Pixel Factor to to something more manageable

Antonio Vazquez noreply at git.blender.org
Fri Feb 23 10:50:03 CET 2018


Commit: 45f94cb02a298f631836142237c0337788721d12
Author: Antonio Vazquez
Date:   Fri Feb 23 10:37:01 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB45f94cb02a298f631836142237c0337788721d12

Rescale Pixel Factor to to something more manageable

The old scale between 30 and 10000 was not user friendly and it was inverted (bigger value got smaller stroke)

Now the default scale is 1.0 and bigger values get thickerr strokes.

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

M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
M	source/blender/draw/engines/gpencil/gpencil_engine.h
M	source/blender/draw/engines/gpencil/gpencil_vfx.c
M	source/blender/draw/engines/gpencil/shaders/gpencil_light_frag.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_swirl_frag.glsl
M	source/blender/makesdna/DNA_gpencil_types.h
M	source/blender/makesrna/intern/rna_gpencil.c

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

diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index cf72b8e7b35..3763663b0bc 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -1100,6 +1100,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
 				do_version_view_layer_visibility(group->view_layer);
 			}
 		}
+
 	}
 
 	{
@@ -1141,4 +1142,14 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
 			}
 		}
 	}
+
+	{
+		/* rescale old grease pencil pixel factor (needed for Hero open movie files) */
+		for (bGPdata *gpd = main->gpencil.first; gpd; gpd = gpd->id.next) {
+			/* old data was always bigger than 30 */
+			if (gpd->pixfactor > 30.0f) {
+				gpd->pixfactor = 1000.0f / gpd->pixfactor;
+			}
+		}
+	}
 }
diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
index d98259deef4..9cb8758a17e 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -374,7 +374,7 @@ DRWShadingGroup *DRW_gpencil_shgroup_stroke_create(GPENCIL_e_data *e_data, GPENC
 			}
 		}
 		DRW_shgroup_uniform_int(grp, "color_type", &stl->shgroups[id].color_type, 1);
-		DRW_shgroup_uniform_int(grp, "pixfactor", &gpd->pixfactor, 1);
+		DRW_shgroup_uniform_float(grp, "pixfactor", &gpd->pixfactor, 1);
 	}
 	else {
 		stl->storage->obj_scale = 1.0f;
@@ -384,10 +384,10 @@ DRWShadingGroup *DRW_gpencil_shgroup_stroke_create(GPENCIL_e_data *e_data, GPENC
 		DRW_shgroup_uniform_int(grp, "keep_size", &stl->storage->keep_size, 1);
 		DRW_shgroup_uniform_int(grp, "color_type", &stl->storage->color_type, 1);
 		if (gpd) {
-			DRW_shgroup_uniform_int(grp, "pixfactor", &gpd->pixfactor, 1);
+			DRW_shgroup_uniform_float(grp, "pixfactor", &gpd->pixfactor, 1);
 		}
 		else {
-			DRW_shgroup_uniform_int(grp, "pixfactor", &stl->storage->pixfactor, 1);
+			DRW_shgroup_uniform_float(grp, "pixfactor", &stl->storage->pixfactor, 1);
 		}
 	}
 
@@ -466,7 +466,7 @@ DRWShadingGroup *DRW_gpencil_shgroup_point_create(GPENCIL_e_data *e_data, GPENCI
 			}
 		}
 		DRW_shgroup_uniform_int(grp, "color_type", &stl->shgroups[id].color_type, 1);
-		DRW_shgroup_uniform_int(grp, "pixfactor", &gpd->pixfactor, 1);
+		DRW_shgroup_uniform_float(grp, "pixfactor", &gpd->pixfactor, 1);
 	}
 	else {
 		stl->storage->obj_scale = 1.0f;
@@ -476,10 +476,10 @@ DRWShadingGroup *DRW_gpencil_shgroup_point_create(GPENCIL_e_data *e_data, GPENCI
 		DRW_shgroup_uniform_int(grp, "keep_size", &stl->storage->keep_size, 1);
 		DRW_shgroup_uniform_int(grp, "color_type", &stl->storage->color_type, 1);
 		if (gpd) {
-			DRW_shgroup_uniform_int(grp, "pixfactor", &gpd->pixfactor, 1);
+			DRW_shgroup_uniform_float(grp, "pixfactor", &gpd->pixfactor, 1);
 		}
 		else {
-			DRW_shgroup_uniform_int(grp, "pixfactor", &stl->storage->pixfactor, 1);
+			DRW_shgroup_uniform_float(grp, "pixfactor", &stl->storage->pixfactor, 1);
 		}
 	}
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 9e378092135..9c097f1ef38 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -161,7 +161,7 @@ typedef struct GPENCIL_Storage {
 	int xray;
 	int keep_size;
 	float obj_scale;
-	int pixfactor;
+	float pixfactor;
 	int playing;
 	bool is_render;
 	int uselines;
diff --git a/source/blender/draw/engines/gpencil/gpencil_vfx.c b/source/blender/draw/engines/gpencil/gpencil_vfx.c
index e459da8cada..b82bc0459d0 100644
--- a/source/blender/draw/engines/gpencil/gpencil_vfx.c
+++ b/source/blender/draw/engines/gpencil/gpencil_vfx.c
@@ -242,7 +242,7 @@ static void DRW_gpencil_vfx_pixel(
 	DRW_shgroup_uniform_vec3(vfx_shgrp, "loc", stl->vfx[ob_idx].vfx_pixel.loc, 1);
 	DRW_shgroup_uniform_float(vfx_shgrp, "pixsize", stl->storage->pixsize, 1);
 	DRW_shgroup_uniform_float(vfx_shgrp, "pixelsize", &U.pixelsize, 1);
-	DRW_shgroup_uniform_int(vfx_shgrp, "pixfactor", &gpd->pixfactor, 1);
+	DRW_shgroup_uniform_float(vfx_shgrp, "pixfactor", &gpd->pixfactor, 1);
 	
 	cache->vfx_pixel_sh = vfx_shgrp;
 }
@@ -288,7 +288,7 @@ static void DRW_gpencil_vfx_swirl(
 
 	DRW_shgroup_uniform_float(vfx_shgrp, "pixsize", stl->storage->pixsize, 1);
 	DRW_shgroup_uniform_float(vfx_shgrp, "pixelsize", &U.pixelsize, 1);
-	DRW_shgroup_uniform_int(vfx_shgrp, "pixfactor", &gpd->pixfactor, 1);
+	DRW_shgroup_uniform_float(vfx_shgrp, "pixfactor", &gpd->pixfactor, 1);
 
 	cache->vfx_swirl_sh = vfx_shgrp;
 }
@@ -418,7 +418,7 @@ static void DRW_gpencil_vfx_light(
 
 	DRW_shgroup_uniform_float(vfx_shgrp, "pixsize", stl->storage->pixsize, 1);
 	DRW_shgroup_uniform_float(vfx_shgrp, "pixelsize", &U.pixelsize, 1);
-	DRW_shgroup_uniform_int(vfx_shgrp, "pixfactor", &gpd->pixfactor, 1);
+	DRW_shgroup_uniform_float(vfx_shgrp, "pixfactor", &gpd->pixfactor, 1);
 
 	cache->vfx_light_sh = vfx_shgrp;
 }
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_light_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_light_frag.glsl
index d867041af95..0650fbd7d46 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_light_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_light_frag.glsl
@@ -10,11 +10,11 @@ uniform float ambient;
 
 uniform float pixsize;   /* rv3d->pixsize */
 uniform float pixelsize; /* U.pixelsize */
-uniform int pixfactor;
+uniform float pixfactor;
 
 out vec4 FragColor;
 
-float defaultpixsize = pixsize * pixelsize * float(pixfactor);
+float defaultpixsize = pixsize * pixelsize * (1000.0 / pixfactor);;
 
 /* project 3d point to 2d on screen space */
 vec2 toScreenSpace(vec4 vertex)
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl
index 0ccc31fe67c..ffe59130bee 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_pixel_frag.glsl
@@ -11,11 +11,11 @@ uniform int uselines;
 uniform vec3 loc;
 uniform float pixsize;   /* rv3d->pixsize */
 uniform float pixelsize; /* U.pixelsize */
-uniform int pixfactor;
+uniform float pixfactor;
 
 out vec4 FragColor;
 
-float defaultpixsize = pixsize * pixelsize * float(pixfactor);
+float defaultpixsize = pixsize * pixelsize * (1000.0 / pixfactor);
 vec2 nsize = max(size, 3.0);
 
 /* This pixelation shader is a modified version of original Geeks3d.com code */
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl
index d86b0b6fdfa..15e0b36d401 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_point_vert.glsl
@@ -5,7 +5,7 @@ uniform float pixsize;   /* rv3d->pixsize */
 uniform float pixelsize; /* U.pixelsize */
 uniform int keep_size;    
 uniform float objscale;
-uniform int pixfactor;
+uniform float pixfactor;
 
 in vec3 pos;
 in vec4 color;
@@ -18,7 +18,7 @@ out vec2 finaluvdata;
 
 #define TRUE 1
 
-float defaultpixsize = pixsize * pixelsize * float(pixfactor);
+float defaultpixsize = pixsize * pixelsize * (1000.0 / pixfactor);;
 
 void main()
 {
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl
index 7d8d430a18d..f4c3f1502f9 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_stroke_vert.glsl
@@ -5,7 +5,7 @@ uniform float pixsize;   /* rv3d->pixsize */
 uniform float pixelsize; /* U.pixelsize */
 uniform int keep_size;    
 uniform float objscale;
-uniform int pixfactor;
+uniform float pixfactor;
 
 in vec3 pos;
 in vec4 color;
@@ -18,7 +18,7 @@ out vec2 finaluvdata;
 
 #define TRUE 1
 
-float defaultpixsize = pixsize * pixelsize * float(pixfactor);
+float defaultpixsize = pixsize * pixelsize * (1000.0 / pixfactor);;
 
 void main(void)
 {
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_swirl_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_swirl_frag.glsl
index c7eae235d45..b676ee3a214 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_swirl_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_swirl_frag.glsl
@@ -12,11 +12,11 @@ uniform int transparent;
 
 uniform float pixsize;   /* rv3d->pixsize */
 uniform float pixelsize; /* U.pixelsize */
-uniform int pixfactor;
+uniform float pixfactor;
 
 out vec4 FragColor;
 
-float defaultpixsize = pixsize * pixelsize * float(pixfactor);
+float defaultpixsize = pixsize * pixelsize * (1000.0 / pixfactor);;
 
 /* project 3d point to 2d on screen space */
 vec2 toScreenSpace(vec4 vertex)
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 877c45b368f..640aaac3fc5 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -40,7 +40,7 @@ struct GHash;
 
 /* TODO: add size as userprefs parameter */
 #define GP_OBGPENCIL_DEFAULT_SIZE  0.2f 
-#define GP_DEFAULT_PIX_FACTOR 1000 
+#define GP_DEFAULT_PIX_FACTOR 1.0f
 #define GP_DEFAULT_GRID_SIZE 100 
 
 /* ***************************************** */
@@ -433,7 +433,7 @@ typedef struct bGPdata {
 	
 	
 	/* 3D Viewport/Appearance Settings */
-	int pixfactor;              /* factor to define pixel size conversion */
+	float pixfactor;            /* factor to define pixel size conversion */
 	float line_color[4];        /* color for edit line */
 
 	/* Onion skinning */
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c
index 2351a6eb27e..c481f114ccd 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -1494,10 +1494,11 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
 	RNA_def_property_ui_text(prop, "Keep thickness", "Show stroke with same thickness when viewport z

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list