This commit implements a native cubemap rendering in Cycles,
which is currently a research project with the following goals:
- Make it easier to render cubemaps for engines which supports or expects them to be used.
- Intermediate projection to optimize rendering of equirectangular camera.
Cube map layout is not currently standart but it's most efficient
from the resolution and storage point of views and it's currently:
+-------+-------+--------+ | Back | Right | Bottom | +-------+-------+--------+ | Front | Left | Top | +-------+-------+--------+
It's easy to re-map views in the future.
There are still issues to be solved, but it'll be nice to get
VR and panorama artists involved into feedback already. So the
limitations are:
- Anti-aliasing is not perfect currently. It feels to be be rather correct for rendering, but using it as an environment map will cause unexpected color bleed on the side edges.
- There's no auto-remapping to equirectangular map happening yet, so the only way to see result is to put result to an environment map with cubemap projection and either re-render or investigate it in viewport.
- Projection formulas are not optimized by any mean. This is to keep them totally obvious to make it easier to make further tweaks.
