blender/intern/cycles/util
Kévin Dietrich 9280fb19e4 Fixes T77882: artifacts rendering OpenVDB volumes with multiple grids in Cycles
The previous algorithm was not using all of the requested grids to build a mesh
around the volume due to limitations regarding the use of a dense buffer to
gather information about the volume's topology. This resulted in artefacts during
rendering.

The mesh generation is now done by merging all of the input grids and using the
resulting grid's topology to create the mesh. The generation of the mesh
is still done in index space as before, and the vertices are converted to object
space by using the merged topology grid indexToWorld transform.

To be able to merge the grids together we have to make sure that their transformation
matrices and their index spaces match, thus, if they do not match we simply resample
the grids. This behaviour should tackle one other limitation of the current algorithm,
which is that only one transformation matrix was used to generate the final mesh.

If we do not have an OpenVDB grid for the requested volume data, we generate
a temporary OpenVDB grid for it.

Differential Revision: https://developer.blender.org/D8401
2020-08-12 11:52:12 +02:00
..
CMakeLists.txt Fixes T77882: artifacts rendering OpenVDB volumes with multiple grids in Cycles 2020-08-12 11:52:12 +02:00
util_algorithm.h Fix T68370, T74973: Cycles cryptomatte not working when other passes are enabled 2020-03-20 15:59:24 +01:00
util_aligned_malloc.cpp macOS: Enabled posix_memalign() like on other Unix platforms. 2019-09-13 22:49:26 +02:00
util_aligned_malloc.h Fix Cycles build error after recent changes 2019-05-14 15:06:23 +02:00
util_args.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_array.h Fix (harmless) Cycles ASAN warnings 2019-06-21 18:00:48 +02:00
util_atomic.h Adaptive Sampling for Cycles. 2020-03-05 12:21:38 +01:00
util_avxb.h Cleanup: clang-format 2020-05-05 16:06:12 +10:00
util_avxf.h Fix more build errors/warnings after recent AVX changes 2020-04-02 17:30:56 +02:00
util_avxi.h Cleanup: clang-format 2020-05-05 16:06:12 +10:00
util_boundbox.h Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_color.h Shading: Add Vertex Color node. 2019-09-12 17:42:13 +02:00
util_debug.cpp Cycles: Add support for native OptiX curve primitive 2020-07-07 15:39:02 +02:00
util_debug.h Cycles: Add support for native OptiX curve primitive 2020-07-07 15:39:02 +02:00
util_defines.h Fix T75895: Unable to Compile Cycles on NAVI/Linux 2020-04-30 15:04:40 +02:00
util_deque.h Cycles: Stitching of subdivided and displaced meshes 2019-08-27 14:27:53 -04:00
util_disjoint_set.h Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_foreach.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_function.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_guarded_allocator.cpp ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_guarded_allocator.h Fix build error in Cycles standalone without guarded allocator 2020-06-02 06:27:39 +02:00
util_half.h Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_hash.h Cycles: AVX implantation of Perlin noise. 2020-04-01 14:48:01 +02:00
util_ies.cpp Cleanup: don't unnecessarily use ustring in IES file parsing 2019-08-14 14:16:11 +02:00
util_ies.h Cleanup: don't unnecessarily use ustring in IES file parsing 2019-08-14 14:16:11 +02:00
util_image.h Cycles: add colorspace manager class and utilities based on OpenColorIO 2019-05-03 15:42:49 +02:00
util_image_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_list.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_logging.cpp Cleanup: clang-format 2019-07-07 23:45:35 +10:00
util_logging.h Fix Cycles failing to compile when "WITH_CYCLES_LOGGING" is off 2019-11-05 14:19:33 +01:00
util_map.h Cycles: Stitching of subdivided and displaced meshes 2019-08-27 14:27:53 -04:00
util_math.h Fix T78324: Different Sky Texture results between CPU and GPU 2020-07-08 02:15:37 +02:00
util_math_cdf.cpp ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_math_cdf.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_math_fast.h Fix T78869: denoising performance regression on Windows 2020-08-05 15:46:44 +02:00
util_math_float2.h Shading: Add More Features To The Voronoi Node. 2019-09-12 13:09:31 +02:00
util_math_float3.h Shading: Add More Features To The Voronoi Node. 2019-09-12 13:09:31 +02:00
util_math_float4.h Cycles: Add finite checks for float4 and transforms 2020-08-04 11:40:09 +02:00
util_math_int2.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_math_int3.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_math_int4.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_math_intersect.h Cleanup: comments (long lines) in cycles 2019-05-01 21:41:07 +10:00
util_math_matrix.h Cleanup: spelling 2019-07-07 15:38:41 +10:00
util_md5.cpp Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_md5.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_murmurhash.cpp ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_murmurhash.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_opengl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_openimagedenoise.h Cycles: add Intel OpenImageDenoise support for viewport denoising 2020-06-24 15:17:36 +02:00
util_openvdb.h Fixes T77882: artifacts rendering OpenVDB volumes with multiple grids in Cycles 2020-08-12 11:52:12 +02:00
util_optimization.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_param.h Shading: Add Vertex Color node. 2019-09-12 17:42:13 +02:00
util_path.cpp Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_path.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_profiling.cpp Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_profiling.h Cleanup: remove foreach include from header, conflicts with OpenVDB 2020-03-11 20:35:38 +01:00
util_progress.h Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_projection.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_queue.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_rect.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_semaphore.h Cycles: limit number of processes compiling OpenCL kernel based on memory 2020-03-25 16:39:37 +01:00
util_set.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_simd.cpp ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_simd.h Fix Cycles AVX unit test still failing to build with old GCC 2020-04-02 18:19:49 +02:00
util_sseb.h Cleanup: clang-format 2020-05-05 16:06:12 +10:00
util_ssef.h Cleanup: tweak Cycles #includes in preparation for clang-format sorting 2020-03-06 14:44:42 +01:00
util_ssei.h Cleanup: clang-format 2020-05-05 16:06:12 +10:00
util_stack_allocator.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_static_assert.h Cycles: Restore cycles_cubin_cc to working order 2020-03-26 11:41:44 -06:00
util_stats.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_string.cpp ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_string.h Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_system.cpp Cleanup: make format after SortedIncludes change 2020-03-19 09:33:58 +01:00
util_system.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_task.cpp Cycles: use TBB for task pools and task scheduler 2020-06-22 13:27:37 +02:00
util_task.h Cleanup: make it possible to include util_tbb.h in any order 2020-06-24 15:28:00 +02:00
util_tbb.h Cycles: optimize camera inside volume tests 2020-07-10 17:10:05 +02:00
util_texture.h Cycles: support for different 3D transform per volume grid 2020-03-18 11:23:05 +01:00
util_thread.cpp ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_thread.h Cycles: Use TBB's spin mutex 2020-07-03 11:14:26 +02:00
util_time.cpp ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_time.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_transform.cpp Cycles: Fix nan in decomposed transform for degenerated input 2020-08-04 11:40:09 +02:00
util_transform.h Cycles: Add finite checks for float4 and transforms 2020-08-04 11:40:09 +02:00
util_types.h Cycles: AVX implantation of Perlin noise. 2020-04-01 14:48:01 +02:00
util_types_float2.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_float2_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_float3.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_float3_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_float4.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_float4_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_float8.h Cleanup: comments (long lines) in cycles 2019-05-01 21:41:07 +10:00
util_types_float8_impl.h Cleanup: comments (long lines) in cycles 2019-05-01 21:41:07 +10:00
util_types_int2.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_int2_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_int3.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_int3_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_int4.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_int4_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uchar2.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uchar2_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uchar3.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uchar3_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uchar4.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uchar4_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uint2.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uint2_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uint3.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uint3_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uint4.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_uint4_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_ushort4.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_vector3.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_types_vector3_impl.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_unique_ptr.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_vector.h Cleanup: spelling 2019-08-17 00:57:05 +10:00
util_version.h Cycles: bump version to 1.13, matching Blender 2.90 release cycle 2020-06-30 18:12:08 +02:00
util_view.cpp Fix issues in Cycles standalone, particularly related to render display 2020-01-31 16:49:24 +01:00
util_view.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
util_windows.cpp Cleanup: warnings, formatting 2019-06-22 10:11:15 +10:00
util_windows.h Fix Cycles CUDA suboptimal performance on Windows 10 with recent graphics cards 2019-06-18 20:05:36 +02:00
util_xml.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00