diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-05-03 17:35:36 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-05-03 17:35:36 +0300 |
commit | 4500a90cdc5ea54a92c4ea2333413df056f81b1e (patch) | |
tree | 009cfe71fc72ed1387c0bc3c90f6190d21d0be85 /source/blender/draw/engines/eevee/eevee_instance.cc | |
parent | 99a5d49a3814b507e9ef7f4a5e3da7a4570cd951 (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.cc | 6 |
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; } |