diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-03-17 18:52:14 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-03-18 13:23:05 +0300 |
commit | 994eb1ec17efc6d0a035356d04354bfc97bf8077 (patch) | |
tree | a3aa6890185f7f5d085e3153c27c08afc1e27a38 /intern/cycles/blender/blender_geometry.cpp | |
parent | 006025ead0b89de671363816cd0e962f10d21c50 (diff) |
Cycles: support rendering new Volume object type
Voxels are loaded directly from the OpenVDB grid. Rendering still only supports
dense grid, so memory usage is not great for sparse volumes, this is to be
addressed in the future.
Ref T73201
Diffstat (limited to 'intern/cycles/blender/blender_geometry.cpp')
-rw-r--r-- | intern/cycles/blender/blender_geometry.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/intern/cycles/blender/blender_geometry.cpp b/intern/cycles/blender/blender_geometry.cpp index e2a4a125ca1..ac5bae4bc66 100644 --- a/intern/cycles/blender/blender_geometry.cpp +++ b/intern/cycles/blender/blender_geometry.cpp @@ -38,7 +38,8 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph, BL::ID b_key_id = (BKE_object_is_modified(b_ob)) ? b_ob_instance : b_ob_data; GeometryKey key(b_key_id.ptr.data, use_particle_hair); BL::Material material_override = view_layer.material_override; - Shader *default_shader = scene->default_surface; + Shader *default_shader = (b_ob.type() == BL::Object::type_VOLUME) ? scene->default_volume : + scene->default_surface; Geometry::Type geom_type = (use_particle_hair && (scene->curve_system_manager->primitive != CURVE_TRIANGLES)) ? Geometry::HAIR : @@ -124,7 +125,7 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph, if (use_particle_hair) { sync_hair(b_depsgraph, b_ob, geom, used_shaders); } - else if (object_fluid_gas_domain_find(b_ob)) { + else if (b_ob.type() == BL::Object::type_VOLUME || object_fluid_gas_domain_find(b_ob)) { Mesh *mesh = static_cast<Mesh *>(geom); sync_volume(b_ob, mesh, used_shaders); } @@ -164,7 +165,7 @@ void BlenderSync::sync_geometry_motion(BL::Depsgraph &b_depsgraph, if (use_particle_hair) { sync_hair_motion(b_depsgraph, b_ob, geom, motion_step); } - else if (object_fluid_gas_domain_find(b_ob)) { + else if (b_ob.type() == BL::Object::type_VOLUME || object_fluid_gas_domain_find(b_ob)) { /* No volume motion blur support yet. */ } else { |