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>2017-06-10 00:21:55 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-06-10 00:21:55 +0300
commita17bb772a04fd34b6a2e03bf2dfde29aa20ec930 (patch)
tree152473de5edeb9b5a156a31ffe504d34ed18161f /source/blender/draw/modes/object_mode.c
parent85990343f631e78ef62980f20a372907ce344e2f (diff)
Probe: Add object mode volume visualisation
Diffstat (limited to 'source/blender/draw/modes/object_mode.c')
-rw-r--r--source/blender/draw/modes/object_mode.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index ae144272dc4..0f91ae27903 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -1418,8 +1418,32 @@ static void DRW_shgroup_probe(OBJECT_StorageList *stl, Object *ob, SceneLayer *s
DRW_shgroup_call_dynamic_add(stl->g_data->probe, ob->obmat[3], color);
- DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distinf, ob->obmat);
- DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distfalloff, ob->obmat);
+ if ((prb->flag & PRB_SHOW_INFLUENCE) != 0) {
+ if (prb->attenuation_type == PROBE_BOX) {
+ DRW_shgroup_call_dynamic_add(stl->g_data->cube, color, &prb->distinf, ob->obmat);
+ DRW_shgroup_call_dynamic_add(stl->g_data->cube, color, &prb->distfalloff, ob->obmat);
+ }
+ else {
+ DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distinf, ob->obmat);
+ DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distfalloff, ob->obmat);
+ }
+ }
+
+ if ((prb->flag & PRB_SHOW_PARALLAX) != 0) {
+ if ((prb->flag & PRB_CUSTOM_PARALLAX) != 0) {
+ float (*obmat)[4];
+
+ /* TODO object parallax */
+ obmat = ob->obmat;
+
+ if (prb->parallax_type == PROBE_BOX) {
+ DRW_shgroup_call_dynamic_add(stl->g_data->cube, color, &prb->distpar, obmat);
+ }
+ else {
+ DRW_shgroup_call_dynamic_add(stl->g_data->sphere, color, &prb->distpar, obmat);
+ }
+ }
+ }
DRW_shgroup_call_dynamic_add(stl->g_data->lamp_center_group, ob->obmat[3]);