blender/intern/cycles/util
Sergey Sharybin fe731686fb Cycles: Add support for cameras inside volume
Basically the title says it all, volume stack initialization now is aware that
camera might be inside of the volume. This gives quite noticeable render time
regressions in cases camera is in the volume (didn't measure them yet) because
this requires quite a few of ray-casting per camera ray in order to check which
objects we're inside. Not quite sure if this might be optimized.

But the good thing is that we can do quite a good job on detecting whether
camera is outside of any of the volumes and in this case there should be no
time penalty at all (apart from some extra checks during the sync state).

For now we're only doing rather simple AABB checks between the viewplane and
volume objects. This could give some false-positives, but this should be good
starting point.

Need to mention panoramic cameras here, for them it's only check for whether
there are volumes in the scene, which would lead to speed regressions even if
the camera is outside of the volumes. Would need to figure out proper check
for such cameras.

There are still quite a few of TODOs in the code, but the patch is good enough
to start playing around with it checking whether there are some obvious mistakes
somewhere.

Currently the feature is only available in the Experimental feature sey, need
to solve some of the TODOs and look into making things faster before considering
the feature is ready for the official feature set. This would still likely
happen in current release cycle.

Reviewers: brecht, juicyfruit, dingto

Differential Revision: https://developer.blender.org/D794
2014-09-25 23:28:01 +06:00
..
CMakeLists.txt Cycles: Add support of Glog logging 2014-09-25 17:08:32 +06:00
util_algorithm.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_args.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_boundbox.h Cycles: Add support for cameras inside volume 2014-09-25 23:28:01 +06:00
util_cache.cpp Fix T38311: cycles BVH cache crash on Windows. 2014-01-23 01:13:46 +01:00
util_cache.h Cycles: Rebuild BVH from scratch if loading cache failed 2014-09-01 18:05:10 +06:00
util_color.h Cleanup: style, spelling 2014-09-18 09:37:49 +10:00
util_debug.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_dynlib.cpp Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_dynlib.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_foreach.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_function.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_half.h Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code. 2014-06-13 21:59:12 +02:00
util_hash.h Style cleanup: indentation, braces 2014-05-05 02:19:08 +10:00
util_image.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_list.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_logging.cpp Cycles: Add support of Glog logging 2014-09-25 17:08:32 +06:00
util_logging.h Cycles: Add support of Glog logging 2014-09-25 17:08:32 +06:00
util_map.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_math.h Cleanup: sync map_to_sphere, UNLIKELY xy zero case 2014-09-16 12:41:16 +10:00
util_md5.cpp Quiet warning 2014-04-23 17:01:56 +10:00
util_md5.h Cycles OSL: refactoring and fixes 2012-11-03 14:32:13 +00:00
util_opengl.h Better fix for #36935 and 36316: 2013-10-05 19:56:34 +00:00
util_optimization.h Cleanup: Remove special code for Visual Studio 2008. 2014-08-07 13:52:15 +02:00
util_param.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_path.cpp Cycles Standalone: Support for relative paths and string OSL parameters. 2014-03-21 17:22:41 +01:00
util_path.h Cycles Standalone: Support for relative paths and string OSL parameters. 2014-03-21 17:22:41 +01:00
util_progress.h Cycles Bake: show progress bar during bake 2014-07-25 11:42:53 -03:00
util_set.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_simd.cpp Cycles: Slight modification to the previous commit 2014-06-17 01:00:43 +06:00
util_simd.h Cycles: attempt to solve compilation error on 32bit OSX 2014-06-19 12:24:08 +06:00
util_sseb.h Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code. 2014-06-13 21:59:12 +02:00
util_ssef.h Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code. 2014-06-13 21:59:12 +02:00
util_ssei.h Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code. 2014-06-13 21:59:12 +02:00
util_stats.h Fix wrong track of the memory when doing device vector resize before freeing it 2014-09-04 17:25:12 +06:00
util_string.cpp Code cleanup: white space and cmake was broken on all platforms 2014-02-03 13:56:34 +11:00
util_string.h Cycles: network render code updated for latest changes and improved 2013-12-07 12:26:58 +01:00
util_system.cpp Cycles: Add an AVX2 CPU kernel. 2014-06-13 22:26:20 +02:00
util_system.h Cycles: Add an AVX2 CPU kernel. 2014-06-13 22:26:20 +02:00
util_task.cpp spelling: use American spelling for canceled 2013-10-26 01:06:19 +00:00
util_task.h spelling: use American spelling for canceled 2013-10-26 01:06:19 +00:00
util_thread.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_time.cpp Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_time.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
util_transform.cpp Cycles: use LIKELY/UNLIKELY macros 2014-05-05 03:49:22 +10:00
util_transform.h Style cleanup: indentation, braces 2014-05-05 02:19:08 +10:00
util_types.h Cycles: Don't inline functions for debug CPU kernel 2014-09-25 17:08:32 +06:00
util_vector.h Fix T40514: Cycles world MIS segfault 2014-06-07 00:08:40 +10:00
util_view.cpp Quiet float conversion warnings when building cycles standalone 2014-05-04 03:15:20 +10:00
util_view.h Cycles Standalone: The camera can now be moved and rotated with LMB/RMB mouse key. 2014-02-14 01:17:01 +01:00
util_xml.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00