Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/render/volume.cpp
| Show First 20 Lines • Show All 505 Lines • ▼ Show 20 Lines | void GeometryManager::create_volume_mesh(Volume *volume, Progress &progress) | ||||
| /* Find shader and compute padding based on volume shader interpolation settings. */ | /* Find shader and compute padding based on volume shader interpolation settings. */ | ||||
| Shader *volume_shader = NULL; | Shader *volume_shader = NULL; | ||||
| int pad_size = 0; | int pad_size = 0; | ||||
| foreach (Node *node, volume->get_used_shaders()) { | foreach (Node *node, volume->get_used_shaders()) { | ||||
| Shader *shader = static_cast<Shader *>(node); | Shader *shader = static_cast<Shader *>(node); | ||||
| if (!shader->has_volume) { | if (!shader->get_has_volume()) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| volume_shader = shader; | volume_shader = shader; | ||||
| if (shader->get_volume_interpolation_method() == VOLUME_INTERPOLATION_LINEAR) { | if (shader->get_volume_interpolation_method() == VOLUME_INTERPOLATION_LINEAR) { | ||||
| pad_size = max(1, pad_size); | pad_size = max(1, pad_size); | ||||
| } | } | ||||
| Show All 14 Lines | void GeometryManager::create_volume_mesh(Volume *volume, Progress &progress) | ||||
| if (!volume_shader) { | if (!volume_shader) { | ||||
| return; | return; | ||||
| } | } | ||||
| /* Create volume mesh builder. */ | /* Create volume mesh builder. */ | ||||
| VolumeMeshBuilder builder; | VolumeMeshBuilder builder; | ||||
| #ifdef WITH_OPENVDB | #ifdef WITH_OPENVDB | ||||
| foreach (Attribute &attr, volume->attributes.attributes) { | foreach (Attribute &attr, volume->attributes.get_attributes()) { | ||||
| if (attr.element != ATTR_ELEMENT_VOXEL) { | if (attr.get_element() != ATTR_ELEMENT_VOXEL) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| bool do_clipping = false; | bool do_clipping = false; | ||||
| ImageHandle &handle = attr.data_voxel(); | ImageHandle &handle = attr.data_voxel(); | ||||
| /* Try building from OpenVDB grid directly. */ | /* Try building from OpenVDB grid directly. */ | ||||
| ▲ Show 20 Lines • Show All 81 Lines • Show Last 20 Lines | |||||