blender/intern/cycles/render
Lukas Stockner 6995b4d8d9 Cycles: Adding Hilbert Spiral as a tile order for rendering
This patch adds the "Hilbert Spiral", a custom-designed continuous space-filling curve, as a tile order for rendering in Cycles.
It essentially works by dividing the tiles into tile blocks which are processed in a spiral outwards from the center. Inside each
block, the tiles are processed in a regular Hilbert curve pattern. By rotating that pattern according to the spiral direction,
a continuous curve is obtained, which helps with cache coherency and therefore rendering speed.

The curve is a compromise between the faster-rendering Bottom-to-Top etc. orders and the Center order, which is a bit slower,
but starts with the more important areas. The Hilbert Spiral also starts in the center (unless huge tiles are used) and is still
marginally slower than Bottom-to-Top, but noticeably faster than Center.

Reviewers: sergey, #cycles, dingto

Reviewed By: #cycles, dingto

Subscribers: iscream, gregzaal, sergey, mib2berlin

Differential Revision: https://developer.blender.org/D1166
2016-01-10 00:13:53 +01:00
..
attribute.cpp Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
attribute.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
background.cpp Cycles: Support per-render layer world AO settings 2015-11-24 13:21:40 +05:00
background.h Cycles: Support per-render layer world AO settings 2015-11-24 13:21:40 +05:00
bake.cpp Bake-API: reduce memory footprint when baking more than one object (Fix T41092) 2015-04-17 12:25:37 -03:00
bake.h Bake-API: reduce memory footprint when baking more than one object (Fix T41092) 2015-04-17 12:25:37 -03:00
buffers.cpp Cycles: Add debug pass showing average number of ray bounces per pixel 2015-06-11 14:53:15 +02:00
buffers.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
camera.cpp Cycles: Implement rolling shutter effect 2015-12-31 20:44:27 +05:00
camera.h Cycles: Implement rolling shutter effect 2015-12-31 20:44:27 +05:00
CMakeLists.txt Cycles: Use curve approximation for blackbody instead of lookup table 2015-05-05 06:11:54 +00:00
curves.cpp Cycles: Code cleanup, prepare for strict C++ flags 2015-03-27 18:23:31 +05:00
curves.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
film.cpp Cycles: Add Blackman-Harris filter, fix Gaussian filter 2015-11-18 20:50:06 +01:00
film.h Cycles: Add Blackman-Harris filter, fix Gaussian filter 2015-11-18 20:50:06 +01:00
graph.cpp Cycles: Fix memory leak in shader graph when bump graph is used 2016-01-05 21:18:02 +05:00
graph.h Cycles: Fix memory leak in shader graph when bump graph is used 2016-01-05 21:18:02 +05:00
image.cpp Cycles: Gracefully handle out-of-memory happening in device vector 2015-10-11 19:41:59 +05:00
image.h Cycles: Increase number of textures allowed for OpenCL render 2015-10-11 18:22:01 +05:00
integrator.cpp Cycles: Fix filter glossy being broken after recent changes 2015-11-20 18:18:27 +05:00
integrator.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
light.cpp Fix T45227: Light optimization commit broke world MIS 2015-06-28 20:47:35 +02:00
light.h Cycles: Ignore light which has no contribution to the scene 2015-06-27 15:13:08 +02:00
mesh_displace.cpp Cycles: Cleanup, whitespace around keywords 2015-10-08 19:08:28 +05:00
mesh.cpp Cleanup: Remove some underlying code for the BVH disk cache. 2015-09-24 15:47:27 +02:00
mesh.h Cycles: Synchronize images after building mesh BVH 2015-04-20 17:29:51 +05:00
nodes.cpp Cycles: Refactor how we pass bounce info to light path node. 2016-01-06 23:43:29 +01:00
nodes.h Cycles: Add Saw option to the wave texture 2016-01-01 23:25:37 +01:00
object.cpp Fix T45390: Cycles experimental displacement method ignores scaling when render 2015-07-13 15:24:56 +02:00
object.h Fix T44908: Blender crashes when trying to use cycles experimental displacement 2015-06-02 00:04:30 +05:00
osl.cpp Cycles: Update some types used form OSL 2016-01-07 13:15:30 +05:00
osl.h Cycles: Update some types used form OSL 2016-01-07 13:15:30 +05:00
particles.cpp Cycles: Add some statistics logging 2015-04-10 15:37:49 +05:00
particles.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
scene.cpp Cycles: Support user-defined shutter curve 2015-10-28 02:43:06 +05:00
scene.h Cleanup: Remove some more code for BVH cache. I missed that somehow. 2015-12-01 18:17:28 +01:00
session.cpp Cycles: Make branched path tracer covered with requested features 2015-11-22 13:54:51 +05:00
session.h Cycles: Add utility function to count maximum number of closures used by session 2015-05-09 19:17:49 +05:00
shader.cpp Cycles: Fix wrong transparency flag being set to integrator 2016-01-07 11:45:13 +05:00
shader.h Cycles: Update some types used form OSL 2016-01-07 13:15:30 +05:00
sky_model_data.h Cycles: Code cleanyp, sky model 2015-03-28 00:28:37 +05:00
sky_model.cpp Cycles: Code cleanyp, sky model 2015-03-28 00:28:37 +05:00
sky_model.h Cycles: Code cleanyp, sky model 2015-03-28 00:28:37 +05: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 Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm.cpp Cycles: Fix access uninitialized SVM stack caused by recent optimization 2016-01-04 17:11:52 +05:00
svm.h Cycles: Experiment with use of runtime tag instead of set for SVM generation 2015-12-31 15:58:18 +05:00
tables.cpp Cycles: Add some statistics logging 2015-04-10 15:37:49 +05:00
tables.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
tile.cpp Cycles: Adding Hilbert Spiral as a tile order for rendering 2016-01-10 00:13:53 +01:00
tile.h Cycles: Adding Hilbert Spiral as a tile order for rendering 2016-01-10 00:13:53 +01:00