Blender Git Commit Log

Git Commits -> Revision 6995b4d

Revision 6995b4d by Lukas Stockner (master)
January 9, 2016, 23:13 (GMT)
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

Commit Details:

Full Hash: 6995b4d8d96a14ea574f85658b73504fa0d8070a
Parent Commit: ec20c4b
Lines Changed: +153, -1

4 Modified Paths:

/intern/cycles/blender/addon/properties.py (+1, -0) (Diff)
/intern/cycles/render/tile.cpp (+119, -0) (Diff)
/intern/cycles/render/tile.h (+2, -1) (Diff)
/intern/cycles/util/util_math.h (+31, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021