This week Lukas Stockner visited the code quest to finish some of the Cycles improvements he’s been working on, and to discuss and plan future Cycles development. The main focus was on adding UDIM support to Blender, Cycles and Eevee.
UDIM
UDIM is standard for UV mapping different parts of a model to different images. Rather than a single very high resolution image, for example a character’s head, body, hands and feet can be mapped to their own image. Each image can have a different resolution depending on the detail needed for that part of the model.
This is a standard supported by many texture painting applications, and to goal is to make it easy to apply and edit UDIM textures in Blender. During this week Lukas rewrote an earlier implementation to integrate it more deeply with Blender tools and improve usability. While it is not fully finished yet, it’s getting close to ready to go into the 2.8 branch.
Briefly, in Blender a single image can now consist of multiple tiles, with each tile corresponding to an image file. This tiled image can then be used as if it was a single high resolution image for file loading/saving, material setup and texture painting.
Image files are expected to follow the UDIM naming convention, with tile numbers ranging from 1001 to 1099 (for example koro_basecolor_1001.exr).
Currently there is support for:
- Creating, loading and saving tiled images
- Rendering in Cycles and Eevee
- 2D and 3D texture painting
Some features are still being worked on, like UDIM support for single texture display mode, modifiers, and some other parts of Blender.
Ambient Occlusion Shader
This week we also improved the Ambient Occlusion shader, so that it can output colors for procedural texturing. This was one of the most requested features for Cycles. It can for example be used to add weathering effects to just the corners of a mesh.
This is now available in the master and 2.8 branches.
More Features
A number of smaller features were added as well:
- Support for adding more render slots than the default 8, and clearing render slots. (in 2.8)
- Auto detect importance sampling resolution for environment textures. Previously users would have to manually set an appropriate resolution to reduce noise, now it’s automatic for the typical cases. (in master and 2.8)
- Ground work for rendering in wide gamut color spaces. Cycles now has basic OpenColorIO integration to handle wide gamut colors correctly for shader nodes like the sky texture and wavelength. (in master and 2.8)