Commit: 24703c97a15dc5c071d768274d3ebdcd4b4a7324
Author: Clément Foucault
Date:   Sat Feb 11 21:15:46 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB24703c97a15dc5c071d768274d3ebdcd4b4a7324

GPU shaders / Clay engine : small renaming / cleanup

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

M       source/blender/draw/intern/draw_mode_pass.c
M       source/blender/gpu/CMakeLists.txt
M       source/blender/gpu/GPU_shader.h
M       source/blender/gpu/intern/gpu_shader.c
M       source/blender/gpu/shaders/gpu_shader_3D_groundpoint_vert.glsl
R100    source/blender/gpu/shaders/gpu_shader_3D_groundline_vert.glsl   
source/blender/gpu/shaders/gpu_shader_3D_passthrough_vert.glsl
R066    source/blender/gpu/shaders/gpu_shader_3D_lamp_vert.glsl 
source/blender/gpu/shaders/gpu_shader_instance_screenspace_variying_color_vert.glsl
M       
source/blender/gpu/shaders/gpu_shader_instance_variying_size_variying_color_vert.glsl
M       source/blender/gpu/shaders/gpu_shader_instance_vert.glsl

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

diff --git a/source/blender/draw/intern/draw_mode_pass.c 
b/source/blender/draw/intern/draw_mode_pass.c
index a5b2d0a09c..0298db1a5c 100644
--- a/source/blender/draw/intern/draw_mode_pass.c
+++ b/source/blender/draw/intern/draw_mode_pass.c
@@ -113,12 +113,13 @@ static DRWShadingGroup 
*shgroup_groundpoints_uniform_color(DRWPass *pass, float
        return grp;
 }
 
-static DRWShadingGroup *shgroup_lamp(DRWPass *pass, struct Batch *geom, float 
*size)
+static DRWShadingGroup *shgroup_instance_screenspace(DRWPass *pass, struct 
Batch *geom, float *size)
 {
-       GPUShader *sh = 
GPU_shader_get_builtin_shader(GPU_SHADER_3D_LAMP_COMMON);
+       GPUShader *sh = 
GPU_shader_get_builtin_shader(GPU_SHADER_3D_SCREENSPACE_VARIYING_COLOR
+);
 
        DRWShadingGroup *grp = DRW_shgroup_instance_create(sh, pass, geom);
-       DRW_shgroup_attrib_float(grp, "lamp_pos", 3);
+       DRW_shgroup_attrib_float(grp, "world_pos", 3);
        DRW_shgroup_attrib_float(grp, "color", 3);
        DRW_shgroup_uniform_float(grp, "size", size, 1);
        DRW_shgroup_uniform_float(grp, "pixel_size", 
DRW_viewport_pixelsize_get(), 1);
@@ -128,7 +129,7 @@ static DRWShadingGroup *shgroup_lamp(DRWPass *pass, struct 
Batch *geom, float *s
        return grp;
 }
 
-static DRWShadingGroup *shgroup_empty(DRWPass *pass, struct Batch *geom)
+static DRWShadingGroup *shgroup_instance(DRWPass *pass, struct Batch *geom)
 {
        GPUShader *sh_inst = 
GPU_shader_get_builtin_shader(GPU_SHADER_INSTANCE_VARIYING_COLOR_VARIYING_SIZE);
 
@@ -144,9 +145,6 @@ static DRWShadingGroup *shgroup_empty(DRWPass *pass, struct 
Batch *geom)
  * The passes are populated by the rendering engine using the DRW_shgroup_* 
functions. */
 void DRW_pass_setup_common(DRWPass **wire_overlay, DRWPass **wire_outline, 
DRWPass **non_meshes, DRWPass **ob_center)
 {
-       /* Theses are defined for the whole application so make sure they rely 
on global settings */
-
-
        UI_GetThemeColor4fv(TH_WIRE, colorWire);
        UI_GetThemeColor4fv(TH_WIRE_EDIT, colorWireEdit);
        UI_GetThemeColor4fv(TH_ACTIVE, colorActive);
@@ -189,28 +187,28 @@ void DRW_pass_setup_common(DRWPass **wire_overlay, 
DRWPass **wire_outline, DRWPa
 
                /* Empties */
                geom = DRW_cache_plain_axes_get();
-               plain_axes = shgroup_empty(*non_meshes, geom);
+               plain_axes = shgroup_instance(*non_meshes, geom);
 
                geom = DRW_cache_cube_get();
-               cube = shgroup_empty(*non_meshes, geom);
+               cube = shgroup_instance(*non_meshes, geom);
 
                geom = DRW_cache_circle_get();
-               circle = shgroup_empty(*non_meshes, geom);
+               circle = shgroup_instance(*non_meshes, geom);
 
                geom = DRW_cache_empty_sphere_get();
-               sphere = shgroup_empty(*non_meshes, geom);
+               sphere = shgroup_instance(*non_meshes, geom);
 
                geom = DRW_cache_empty_cone_get();
-               cone = shgroup_empty(*non_meshes, geom);
+               cone = shgroup_instance(*non_meshes, geom);
 
                geom = DRW_cache_single_arrow_get();
-               single_arrow = shgroup_empty(*non_meshes, geom);
+               single_arrow = shgroup_instance(*non_meshes, geom);
 
                geom = DRW_cache_single_line_get();
-               single_arrow_line = shgroup_empty(*non_meshes, geom);
+               single_arrow_line = shgroup_instance(*non_meshes, geom);
 
                geom = DRW_cache_single_arrow_get();
-               arrows = shgroup_empty(*non_meshes, geom);
+               arrows = shgroup_instance(*non_meshes, geom);
 
                /* Lamps */
                lampCenterSize = (U.obcenter_dia + 1.5f) * U.pixelsize;
@@ -223,11 +221,11 @@ void DRW_pass_setup_common(DRWPass **wire_overlay, 
DRWPass **wire_outline, DRWPa
                lamp_center_group = 
shgroup_dynpoints_uniform_color(*non_meshes, colorGroup, &lampCenterSize);
 
                geom = DRW_cache_lamp_get();
-               lamp_circle = shgroup_lamp(*non_meshes, geom, &lampCircleRad);
-               lamp_circle_shadow = shgroup_lamp(*non_meshes, geom, 
&lampCircleShadowRad);
+               lamp_circle = shgroup_instance_screenspace(*non_meshes, geom, 
&lampCircleRad);
+               lamp_circle_shadow = shgroup_instance_screenspace(*non_meshes, 
geom, &lampCircleShadowRad);
 
                geom = DRW_cache_lamp_sunrays_get();
-               lamp_sunrays = shgroup_lamp(*non_meshes, geom, &lampCircleRad);
+               lamp_sunrays = shgroup_instance_screenspace(*non_meshes, geom, 
&lampCircleRad);
 
                lamp_groundline = 
shgroup_groundlines_uniform_color(*non_meshes, colorLamp);
                lamp_groundpoint = 
shgroup_groundpoints_uniform_color(*non_meshes, colorLamp);
diff --git a/source/blender/gpu/CMakeLists.txt 
b/source/blender/gpu/CMakeLists.txt
index 72a5471220..8709446bc7 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -153,14 +153,14 @@ data_to_c_simple(shaders/gpu_shader_3D_vert.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_3D_flat_color_vert.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_3D_smooth_color_vert.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_3D_smooth_color_frag.glsl SRC)
+data_to_c_simple(shaders/gpu_shader_3D_passthrough_vert.glsl SRC)
 
 data_to_c_simple(shaders/gpu_shader_instance_vert.glsl SRC)
 
data_to_c_simple(shaders/gpu_shader_instance_variying_size_variying_color_vert.glsl
 SRC)
+data_to_c_simple(shaders/gpu_shader_instance_screenspace_variying_color_vert.glsl
 SRC)
 
-data_to_c_simple(shaders/gpu_shader_3D_groundpoint_vert.glsl SRC)
-data_to_c_simple(shaders/gpu_shader_3D_groundline_vert.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_3D_groundline_geom.glsl SRC)
-data_to_c_simple(shaders/gpu_shader_3D_lamp_vert.glsl SRC)
+data_to_c_simple(shaders/gpu_shader_3D_groundpoint_vert.glsl SRC)
 
 data_to_c_simple(shaders/gpu_shader_point_uniform_color_frag.glsl SRC)
 data_to_c_simple(shaders/gpu_shader_point_uniform_color_smooth_frag.glsl SRC)
diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h
index b129c61995..0aa93e7322 100644
--- a/source/blender/gpu/GPU_shader.h
+++ b/source/blender/gpu/GPU_shader.h
@@ -137,7 +137,7 @@ typedef enum GPUBuiltinShader {
        /* lamp drawing */
        GPU_SHADER_3D_GROUNDPOINT,
        GPU_SHADER_3D_GROUNDLINE,
-       GPU_SHADER_3D_LAMP_COMMON,
+       GPU_SHADER_3D_SCREENSPACE_VARIYING_COLOR,
        /* instance */
        GPU_SHADER_INSTANCE_UNIFORM_COLOR,
        GPU_SHADER_INSTANCE_VARIYING_COLOR_VARIYING_SIZE,
diff --git a/source/blender/gpu/intern/gpu_shader.c 
b/source/blender/gpu/intern/gpu_shader.c
index 491a28e168..cc58050dc5 100644
--- a/source/blender/gpu/intern/gpu_shader.c
+++ b/source/blender/gpu/intern/gpu_shader.c
@@ -70,14 +70,14 @@ extern char datatoc_gpu_shader_3D_vert_glsl[];
 extern char datatoc_gpu_shader_3D_flat_color_vert_glsl[];
 extern char datatoc_gpu_shader_3D_smooth_color_vert_glsl[];
 extern char datatoc_gpu_shader_3D_smooth_color_frag_glsl[];
+extern char datatoc_gpu_shader_3D_passthrough_vert_glsl[];
 
 extern char datatoc_gpu_shader_instance_vert_glsl[];
 extern char 
datatoc_gpu_shader_instance_variying_size_variying_color_vert_glsl[];
+extern char datatoc_gpu_shader_instance_screenspace_variying_color_vert_glsl[];
 
 extern char datatoc_gpu_shader_3D_groundpoint_vert_glsl[];
-extern char datatoc_gpu_shader_3D_groundline_vert_glsl[];
 extern char datatoc_gpu_shader_3D_groundline_geom_glsl[];
-extern char datatoc_gpu_shader_3D_lamp_vert_glsl[];
 
 extern char datatoc_gpu_shader_point_uniform_color_frag_glsl[];
 extern char datatoc_gpu_shader_point_uniform_color_smooth_frag_glsl[];
@@ -693,12 +693,12 @@ GPUShader *GPU_shader_get_builtin_shader(GPUBuiltinShader 
shader)
                [GPU_SHADER_3D_DEPTH_ONLY] = { datatoc_gpu_shader_3D_vert_glsl, 
datatoc_gpu_shader_depth_only_frag_glsl },
 
                [GPU_SHADER_3D_GROUNDPOINT] = { 
datatoc_gpu_shader_3D_groundpoint_vert_glsl, 
datatoc_gpu_shader_point_uniform_color_frag_glsl },
-               [GPU_SHADER_3D_GROUNDLINE] = { 
datatoc_gpu_shader_3D_groundline_vert_glsl,
+               [GPU_SHADER_3D_GROUNDLINE] = { 
datatoc_gpu_shader_3D_passthrough_vert_glsl,
                                               
datatoc_gpu_shader_uniform_color_frag_glsl,
                                               
datatoc_gpu_shader_3D_groundline_geom_glsl },
 
-               [GPU_SHADER_3D_LAMP_COMMON] = { 
datatoc_gpu_shader_3D_lamp_vert_glsl,
-                                               
datatoc_gpu_shader_flat_color_frag_glsl},
+               [GPU_SHADER_3D_SCREENSPACE_VARIYING_COLOR] = { 
datatoc_gpu_shader_instance_screenspace_variying_color_vert_glsl,
+                                                              
datatoc_gpu_shader_flat_color_frag_glsl},
 
                [GPU_SHADER_2D_POINT_FIXED_SIZE_UNIFORM_COLOR] =
                        { datatoc_gpu_shader_2D_vert_glsl, 
datatoc_gpu_shader_point_uniform_color_frag_glsl },
diff --git a/source/blender/gpu/shaders/gpu_shader_3D_groundpoint_vert.glsl 
b/source/blender/gpu/shaders/gpu_shader_3D_groundpoint_vert.glsl
index be6b6014a1..55f410eb25 100644
--- a/source/blender/gpu/shaders/gpu_shader_3D_groundpoint_vert.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_3D_groundpoint_vert.glsl
@@ -1,5 +1,5 @@
 
-/* Make to be used with dynamic batching so no Model Matrix needed */
+/* Made to be used with dynamic batching so no Model Matrix needed */
 uniform mat4 ViewProjectionMatrix;
 
 in vec3 pos;
diff --git a/source/blender/gpu/shaders/gpu_shader_3D_groundline_vert.glsl 
b/source/blender/gpu/shaders/gpu_shader_3D_passthrough_vert.glsl
similarity index 100%
rename from source/blender/gpu/shaders/gpu_shader_3D_groundline_vert.glsl
rename to source/blender/gpu/shaders/gpu_shader_3D_passthrough_vert.glsl
diff --git a/source/blender/gpu/shaders/gpu_shader_3D_lamp_vert.glsl 
b/source/blender/gpu/shaders/gpu_shader_instance_screenspace_variying_color_vert.glsl
similarity index 66%
rename from source/blender/gpu/shaders/gpu_shader_3D_lamp_vert.glsl
rename to 
source/blender/gpu/shaders/gpu_shader_instance_screenspace_variying_color_vert.glsl
index c7ccaf8170..ba0ac29fb7 100644
--- a/source/blender/gpu/shaders/gpu_shader_3D_lamp_vert.glsl
+++ 
b/source/blender/gpu/shaders/gpu_shader_instance_screenspace_variying_color_vert.glsl
@@ -4,8 +4,11 @@ uniform vec3 screen_vecs[2];
 uniform float size;
 uniform float pixel_size;
 
+/* ---- Instanciated Attribs ---- */
 in vec2 pos;
-in vec3 lamp_pos;
+
+/* ---- Per instance Attribs ---- */
+in vec3 world_pos;
 in vec3 color;
 
 flat out vec4 finalColor;
@@ -19,8 +22,8 @@ float mul_project_m4_v3_zfac(in vec3 co)
 
 void main()
 {
-       float pix_size = mul_project_m4_v3_zfac(lamp_pos) * pixel_size;
+       float pix_size = mul_project_m4_v3_zfac(world_pos) * pixel_size;
        vec3 screen_pos = screen_vecs[0].xyz * pos.x + screen_vecs[1].xyz * 
pos.y;
-       gl_Position = ViewProjectionMatrix * vec4(lamp_pos + screen_pos * s

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to