Commit: 97f90d48a02eef89949532b166f57ea178ee5a87
Author: Clément Foucault
Date: Tue Jul 10 14:46:36 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB97f90d48a02eef89949532b166f57ea178ee5a87
Object Mode: Change Lightprobe display.
===================================================================
M source/blender/draw/modes/object_mode.c
M source/blender/draw/modes/shaders/object_lightprobe_grid_vert.glsl
===================================================================
diff --git a/source/blender/draw/modes/object_mode.c
b/source/blender/draw/modes/object_mode.c
index 359b4eb77e4..2ac16906102 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -908,7 +908,7 @@ static void OBJECT_cache_init(void *vedata)
}
{
- DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH
| DRW_STATE_DEPTH_LESS_EQUAL;
+ DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH
| DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_POINT;
DRWPass *pass = psl->lightprobes = DRW_pass_create("Object
Probe Pass", state);
struct Gwn_Batch *sphere = DRW_cache_sphere_get();
struct Gwn_Batch *quad = DRW_cache_quad_get();
@@ -1785,8 +1785,7 @@ static void DRW_shgroup_lightprobe(OBJECT_StorageList
*stl, OBJECT_PassList *psl
DRW_shgroup_uniform_vec3(grp, "increment_y",
prb_data->increment_y, 1);
DRW_shgroup_uniform_vec3(grp, "increment_z",
prb_data->increment_z, 1);
DRW_shgroup_uniform_ivec3(grp, "grid_resolution",
&prb->grid_resolution_x, 1);
- DRW_shgroup_uniform_float(grp, "sphere_size",
&prb->data_draw_size, 1);
- DRW_shgroup_call_instances_add(grp,
DRW_cache_sphere_get(), NULL, &prb_data->cell_count);
+ DRW_shgroup_call_procedural_points_add(grp,
prb_data->cell_count, NULL);
}
else if (prb->type == LIGHTPROBE_TYPE_CUBE) {
prb_data->draw_size = prb->data_draw_size * 0.1f;
@@ -1794,6 +1793,9 @@ static void DRW_shgroup_lightprobe(OBJECT_StorageList
*stl, OBJECT_PassList *psl
copy_v3_v3(prb_data->probe_cube_mat[3], ob->obmat[3]);
DRWShadingGroup *grp =
shgroup_theme_id_to_probe_cube_outline_shgrp(stl, theme_id);
+ /* TODO remove or change the drawing of the cube
probes. Theses line draws nothing on purpose
+ * to keep the call ids correct. */
+ zero_m4(prb_data->probe_cube_mat);
DRW_shgroup_call_dynamic_add(grp, call_id,
&prb_data->draw_size, prb_data->probe_cube_mat);
}
else {
diff --git a/source/blender/draw/modes/shaders/object_lightprobe_grid_vert.glsl
b/source/blender/draw/modes/shaders/object_lightprobe_grid_vert.glsl
index d9616076dbf..bcdf5adca55 100644
--- a/source/blender/draw/modes/shaders/object_lightprobe_grid_vert.glsl
+++ b/source/blender/draw/modes/shaders/object_lightprobe_grid_vert.glsl
@@ -1,7 +1,4 @@
-in vec3 pos;
-in vec3 nor;
-
uniform mat4 ViewProjectionMatrix;
uniform float sphere_size;
@@ -10,6 +7,7 @@ uniform vec3 corner;
uniform vec3 increment_x;
uniform vec3 increment_y;
uniform vec3 increment_z;
+uniform vec3 screen_vecs[2];
uniform int call_id; /* we don't want the builtin callId which would be 0. */
uniform int baseId;
@@ -20,16 +18,17 @@ void main()
{
vec3 ls_cell_location;
/* Keep in sync with update_irradiance_probe */
- ls_cell_location.z = float(gl_InstanceID % grid_resolution.z);
- ls_cell_location.y = float((gl_InstanceID / grid_resolution.z) %
grid_resolution.y);
- ls_cell_location.x = float(gl_InstanceID / (grid_resolution.z *
grid_resolution.y));
+ ls_cell_location.z = float(gl_VertexID % grid_resolution.z);
+ ls_cell_location.y = float((gl_VertexID / grid_resolution.z) %
grid_resolution.y);
+ ls_cell_location.x = float(gl_VertexID / (grid_resolution.z *
grid_resolution.y));
vec3 ws_cell_location = corner +
(increment_x * ls_cell_location.x +
increment_y * ls_cell_location.y +
increment_z * ls_cell_location.z);
- gl_Position = ViewProjectionMatrix * vec4(pos * 0.02 * sphere_size +
ws_cell_location, 1.0);
+ gl_Position = ViewProjectionMatrix * vec4(ws_cell_location, 1.0);
+ gl_PointSize = 2.0f;
finalId = uint(baseId + call_id);
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs