blender/intern/cycles/render
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
..
attribute.cpp Cycles: Add support for uchar4 attributes. 2014-06-13 23:40:54 +02:00
attribute.h Cycles: Add support for uchar4 attributes. 2014-06-13 23:40:54 +02:00
background.cpp Cycles: Initial support for volume ray visibility. 2014-09-05 16:17:39 +02:00
background.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
bake.cpp Fix T41471 Cycles Bake: Setting small tile size results in wrong bake with stripes rather than the expected noise pattern 2014-08-19 11:40:33 +02:00
bake.h Final Fix T41222 Blender gives weird ouput when baking (4096*4096) resolution on GPU 2014-08-15 11:27:42 +02:00
blackbody.cpp Code cleanup: Add -Werror=float-conversion to Cycles 2014-05-03 07:31:46 +10:00
blackbody.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
buffers.cpp Fix T39420: Cycles viewport/preview flickers, when moving mouse across editors 2014-03-26 15:58:53 +06:00
buffers.h Fix for build error in Cycles standalone caused by new DeviceDrawParams 2014-03-26 18:11:16 +01:00
camera.cpp Cycles: Add support for cameras inside volume 2014-09-25 23:28:01 +06:00
camera.h Cycles: Add support for cameras inside volume 2014-09-25 23:28:01 +06:00
CMakeLists.txt Cycles Bake 2014-05-02 21:19:09 -03:00
curves.cpp Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code. 2014-06-13 21:59:12 +02:00
curves.h Code cleanup / Cycles: Remove encasing_ratio variable, it was already hard coded, so define it in the kernel only. 2014-02-02 19:53:04 +01:00
film.cpp Cleanup: Code deduplication for similar passes. 2014-09-04 01:00:40 +02:00
film.h Fix Cycles Light Passes being always enabled, own regression in Clamp commit yesterday. 2014-02-11 14:14:43 +01:00
graph.cpp Cycles: Add method to dump current shader graph to the graphiz file 2014-09-25 17:08:32 +06:00
graph.h Cycles: Add method to dump current shader graph to the graphiz file 2014-09-25 17:08:32 +06:00
image.cpp Cycles: DPX is saved in the sRGB space and need to be converted to linear 2014-08-22 23:53:29 +06:00
image.h Fix T41109: Reloading image that has been modified outside Blender does not update image in Image Texture nodes 2014-07-18 19:37:32 +06:00
integrator.cpp Followup for last commit, we can break the loop, once we have a match. 2014-09-11 15:02:19 +02:00
integrator.h Cycles: Split caustics option, to allow separate control for Reflection and Refraction caustics. 2014-09-05 20:39:35 +02:00
light.cpp Cycles: Initial support for volume ray visibility. 2014-09-05 16:17:39 +02:00
light.h Cycles: Initial support for volume ray visibility. 2014-09-05 16:17:39 +02:00
mesh_displace.cpp Fix T40370: cycles CUDA baking timeout with high number of AA samples. 2014-06-06 15:39:04 +02:00
mesh.cpp make "tri_shader" an int instead of a float 2014-09-24 13:34:28 +02:00
mesh.h make "tri_shader" an int instead of a float 2014-09-24 13:34:28 +02:00
nodes.cpp Cycles: Fix crash with environment maps and packed images 2014-07-07 12:37:45 +06:00
nodes.h Cycles: Ashikhmin-Shirley anisotropic BSDF 2014-06-14 13:49:57 +02:00
object.cpp Fix T41219: Cycles backface detection doesn't work properly 2014-08-13 16:35:54 +06:00
object.h Fix T39585: cycles motion vector pass problem with curves. 2014-05-09 17:14:13 +02:00
osl.cpp Fix T41318: OSL broken on Linux kubuntu 14.04 2014-08-05 15:53:00 +06:00
osl.h Fix build error when building without OSL support. 2013-12-09 05:28:19 +01:00
particles.cpp Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
particles.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
scene.cpp Cycles: Add support for cameras inside volume 2014-09-25 23:28:01 +06:00
scene.h make "tri_shader" an int instead of a float 2014-09-24 13:34:28 +02:00
session.cpp Fix T40262: cycles GPU bake crash due to kernels not loaded, randomly due to thread timing. 2014-05-19 19:33:09 +02:00
session.h Fix T40262: cycles GPU bake crash due to kernels not loaded, randomly due to thread timing. 2014-05-19 19:33:09 +02:00
shader.cpp Fix T41784, Re-enabling transparent shadows in Cycles doesn't work correctly 2014-09-11 14:51:48 +02:00
shader.h Cycles: improved Beckmann sampling using precomputed data 2014-06-21 22:31:44 +02:00
sky_model_data.h Code Cleanup: use static for sky_model_data.h 2013-12-13 04:40:30 +11:00
sky_model.cpp Code cleanup: Add -Werror=float-conversion to Cycles 2014-05-03 07:31:46 +10:00
sky_model.h code cleanup: spelling 2013-10-31 23:52:44 +00:00
sobol.cpp Fix #29528: crash adding subsurf modifier in a particular scene with viewport render. 2011-12-08 21:55:35 +00:00
sobol.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
svm.cpp Fix T41023: Specific material cause bad render result, different on CPU/GPU 2014-07-11 18:21:52 +06:00
svm.h Fix T41023: Specific material cause bad render result, different on CPU/GPU 2014-07-11 18:21:52 +06:00
tables.cpp Fix T39146: recent cycles CUDA regression in fix for T39114. 2014-03-13 14:18:34 +01:00
tables.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
tile.cpp Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code. 2014-06-13 21:59:12 +02:00
tile.h Fix a few issues reported by coverity scan. 2013-09-03 22:39:21 +00:00