Blender Git Commits

Blender Git "openvdb" branch commits.

October 16, 2017, 09:22 (GMT)
Merge remote-tracking branch 'origin/master' into openvdb
November 23, 2016, 15:50 (GMT)
Removed the deprecated OpenVDB shader node for direct loading of .vdb files.

This node was already disabled. All vdb data should eventually be loaded
through the Cycles sync procedure as object data.

Specialized nodes for accessing voxel data may eventually be added again
for convenience, but these would just be advanced attribute nodes.
November 23, 2016, 08:52 (GMT)
Merge branch 'master' into openvdb
November 18, 2016, 08:45 (GMT)
Fix double freeing of OpenVDB data from dangling pointers in device data.
November 17, 2016, 12:30 (GMT)
Move registration of volumes from attributes out of the smoke sim logic.

This bit of code will be the same for every potential source of volumetric
November 17, 2016, 09:12 (GMT)
Cleanup of Blender sync code for OpenVDB volume attributes.

Besides removing some debug printing lines, the code should also become
easier to adapt to alternative sources of volume data beside the smoke sim.
November 16, 2016, 16:05 (GMT)
Use tri-linear ("box") interpolation for OpenVDB grids rather than nearest point sampling.

Cycles shading options contain a setting for tri-cubic sampling as well, but this
is not supported in OpenVDB by default (only tri-quadratic). Cubic sampling appears
a bit pointless anyway, compared to the ability to add actual geometric detail.
November 16, 2016, 15:36 (GMT)
Merge branch 'master' into openvdb
November 16, 2016, 09:09 (GMT)
Fix voxel attribute sampling position when using VDB grids.

OpenVDB handles inverse transform from object to grid space internally.
November 13, 2016, 20:59 (GMT)
Removed unused util_volume files.
November 13, 2016, 20:42 (GMT)
Merge branch 'cvdb_ray_isect' into openvdb
November 13, 2016, 16:59 (GMT)
Set the primitive type for volume samples to VOLUME.

This is so the primitive_attribute_* functions correctly look for
voxel attributes.
November 13, 2016, 14:14 (GMT)
Fix various cleanup issues and inconsistencies.

All volumes are held in the scene volumes list now, so VolumeManager doesn't need
to free them explicitly.

The ImageManager reference in VoxelAttribute is an artifact from smoke rendering,
this should be phased out eventually and can be assumed to be NULL for Volumes.

Make sure the VolumeManager cleans up the device memory properly, in particular
the ray intersector instances must be freed.
November 13, 2016, 12:40 (GMT)
Proper volume data storage in Cycles when syncing from Blender data.

Previously a viewport render would continuously keep adding Volume instances
to the VolumeManager data, because there was no way to detect existing volume
data. Now the `id_map` model known from meshes and other data types is used for
volume data as well.

Note that the VolumeKey currently simply uses an Object ID pointer, thus
assuming a single Volume per object. In the future volumes could become a
real ID type in Blender, or the specific volume could be narrowed down with
additional info in the key.
November 13, 2016, 10:25 (GMT)
Added an assert to catch non-uniform grids earlier.

OpenVDB ray intersectors only support uniform grids. This should be
checked as early as possible to allow feedback to the Cycles user
(i.e. the Blender app). For now the assert just prevents exceptions
from OpenVDB itself, until a transparent mechanism for this is implemented.
November 13, 2016, 10:24 (GMT)
Removed direct grid lists in VolumeManager, all grids should be in Volumes now.
November 13, 2016, 10:22 (GMT)
Disables VolumeManager functions that load grids directly from a filename.

These are legacy functions from the OpenVDB import node, but they don't
work with the new design any more because there is no specific Volume
instance to add the grids to.
November 12, 2016, 12:47 (GMT)
Improved thread data handling for the OpenVDB Cycles node.

OpenVDB grid accessors, samplers, and ray intersectors must be stored per thread.
Previously this data was stored in a per-thread map in each grid. This causes problems
because the pthread_id keys can become invalid, and it also creates a lot of unused

The patch switches thread data storage around, so that thread-local data is now passed
along KernelGlobals for every work task as needed (tasks only run in one thread).
This system is much more reliable and similar to other cases of thread-local data,
such as OSL shaders.

The patch also removes the virtual base class for "volumes", which might give a minor
performance improvement. If a generic volume type for Cycles is needed it can be
abstracted from scratch.

Removed the unused thread_id list in Cycles CPU tasks, which were only needed
for the now deprecated OpenVDB grid accessor lookup.
November 9, 2016, 11:01 (GMT)
Merge branch 'master' into cvdb_ray_isect
November 9, 2016, 10:35 (GMT)
Fix invalid default value type when constructing a default volume shader graph.
By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2020