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>2021-05-03 17:35:36 +0300
committerClément Foucault <foucault.clem@gmail.com>2021-05-03 17:35:36 +0300
commit4500a90cdc5ea54a92c4ea2333413df056f81b1e (patch)
tree009cfe71fc72ed1387c0bc3c90f6190d21d0be85 /source/blender/draw/engines/eevee/eevee_instance.cc
parent99a5d49a3814b507e9ef7f4a5e3da7a4570cd951 (diff)
EEVEE: Implementation of volume rendering
This adds the transparency and volume handling in the deferred render pipeline. Implementation is still unfinished. To have better naming convention, I renamed object shader to surface.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_instance.cc')
-rw-r--r--source/blender/draw/engines/eevee/eevee_instance.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_instance.cc b/source/blender/draw/engines/eevee/eevee_instance.cc
index 6c65a1cf986..62c980f58af 100644
--- a/source/blender/draw/engines/eevee/eevee_instance.cc
+++ b/source/blender/draw/engines/eevee/eevee_instance.cc
@@ -126,7 +126,7 @@ void Instance::begin_sync()
void Instance::object_sync(Object *ob)
{
const bool is_renderable_type = ELEM(
- ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_LAMP);
+ ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_LAMP, OB_VOLUME);
const int ob_visibility = DRW_object_visibility_in_active_context(ob);
const bool partsys_is_visible = (ob_visibility & OB_VISIBLE_PARTICLES) != 0;
const bool object_is_visible = DRW_object_is_renderable(ob) &&
@@ -152,12 +152,16 @@ void Instance::object_sync(Object *ob)
case OB_SURF:
case OB_FONT:
case OB_MBALL:
+ shading_passes.forward.surface_add(ob, nullptr, 0);
shading_passes.deferred.surface_add(ob);
shading_passes.shadow.surface_add(ob, nullptr, 0);
shading_passes.velocity.mesh_add(ob, ob_handle);
shadows.sync_caster(ob, ob_handle);
break;
+ case OB_VOLUME:
+ shading_passes.deferred.volume_add(ob);
+ break;
default:
break;
}