We would like to give you a sneak peek of the 2021 release. Since we still need to finish version 2020.2, we are making this a "semi-closed" preview release to get some early feedback. The goal is to avoid drawing attention away from 2020.2, but at the same time give people who are genuinely interested in testing the upcoming features, access to an early beta version.
If you are interested in testing, please write an email to [email protected] with the subject "
2021 Preview" by December 3rd, and we will give you permissions to download the release below through the closed beta slack channel.
Also - as an experiment - we are locking this thread and ask you to have any discussions about 2021 on a slack channel. You will get access information when you apply for preview access.
Over the next couple of weeks we are going to focus on 2020.2 to get it into a state where we confidently can call it stable and when that is done we are going to either continue with the semi-closed preview cycle or start making public experimental builds - similar to the last release cycles. This will depend on the feedback we receive for this version.
What's new in 2021
- NEW GPU Boolean Geometry Clipping Shader and Material system
- NEW Light Sampling for Mesh Emitters with 2x Less Noise
- NEW 100% Rebuilt Render AOV System
- NEW Global Texture AOVs
- NEW Custom AOVs
- Major Stability (OOP) and Out of Core Memory Improvements*
- Billions of Unique Primitives Supported in VRAM*
- Volume Rendering Improvements: Light Linking, Overlapping Volumes and Surface Intersections*
- 1.5x speed up on Ampere GPUs in scenes leveraging RTX Hardware Motion Blur*
- Improved Color Management*
- Energy Conserving Microfacet BRDF (GGX)*
- Additional Texture Nodes*
- Curvature Texture Node*
- Improved X-Particles support with the latest X-Particles SDK*
- Multi-Render (experimental): Hydra plug-in support (Arnold, OTOY AnimeRender, Cycles, Storm)
2021 Future Roadmap features in early development:
- EmberGenFX, World Creator and Sculptron DCC RNDR modules
- Multi-Render: Brigade
- Smoothed Tangents for Anisotropic Reflection
- Improvement in Direct Light Environment Sampling
- Normal Distribution Tail-Varying BRDF
- Additive Material for Multi-Layered Emission
- Reduced Shadow Terminator on Low Polygon Meshes
- Native USD Support
- Volumetric user data attributes and rest position shader input
- Arnold Standard Surface/Volume as Octane Core material/volume nodes
- PPM kernel (progressive photon mapping) for fast caustics rendering
- Headless network rendering
- Cross DCC IPR and Node Graph UX
NEW Boolean Geometry Shader Clipping Material
A clipping material allows trimming of intersected geometry within the clipping material volume. While an ordinary clipping operation would simply remove geometry surfaces, Octane 2021's clipping material would fill in the clipped geometry surfaces with the original material.
The clipping material fills in the clipped surfaces with the original material, textures, and shading parameters, using the clipping material geometry's UV set.
There are a couple of requirements in using clipping material:
- Clipping material must be the only material attached to the geometry.
- We allow multiple clipping geometry in the same scene.
- 100% overlapped geometry or clipping material geometry can cause artifacts due to how raytracing works.
- Geometries that are intended to be clipped must be enclosed manifolds.
The clipping material has a simple interface, similar to portals where if it is disabled it is rendered as a diffuse material and if enabled, then it clips geometries lied within its volume away:
Below is a video of clipping a specular material glass and liquid from an early experiment:
NEW Light Sampling for Mesh Emitters with 2x Less Noise
When AI light was first introduced it provided a significant improvement when sampling complex scenes containing large numbers of light sources that are partially occluded. In 2021 we improved the AI light algorithm, reducing both lighting and shading variances with mesh emitters, allowing a further reduction of overall noise in beauty pass compared to both non-AI light sampling and previous versions of AI light.
In this version, AI light improves both direct light and indirect light with a more optimal multiple importance sampling, a well known variance reduction scheme in path tracing, and by doing so, improves the final rendered image quality in general given the same number of sample count.
Below are equal-sample comparisons of renders using the old and new methods:
We evaluated the improvement of AI light in these scenes and found enabling AI light in 2021 generally has a lower error in rendered image measured against the ground truth result for every increasing sample count compared to disabling AI light. Below are some example statistics we have collected, where we can see a consistently lower error in rendered images with AI light enabled, giving you a closer image to ground truth consistently.
Completely NEW Render AOV System
The render passes node was becoming way too big and since it is static, it is hard to add more AOVs or even per-AOV options without making it explode in size.
The solution is to replace it with a render AOV group node, where you can add an arbitrary amount inputs and then connect specific render AOV nodes to them. Below you can see an example:
Render AOV groups can be nested and either single render AOVs or whole groups can be enabled/disabled. Some of the render AOV nodes have additional parameters, e.g. Ambient occlusion or Z-depth.
To simplify the transition to the new system, the underlying code is still using "render pass IDs" to identify/reference render AOVs. As a result this comes with certain limitations:
- If you add multiple render AOV nodes of the same type, only the first enabled node will be taken into account.
- There is a maximum number of custom and global texture AOVs.
- The global render AOV settings at the top of a render AOV group are only taken into account if it's directly connected with the render target node.
Things still to do
- Provide a dialog to reorder the inputs of a render AOV group node.
- Convert from the render passes nodes to render AOV group nodes. For now the render passes node is hidden in the node drop down, but is still loaded from older scenes and is fully functional.
- We may overhaul the way how render AOVs are referenced internally, to allow the usage of multiple render AOV nodes of the same type but with different settings, but it depends on the user demand as it's a significant internal change.
Global texture AOVs
Global texture AOVs allow you to apply a texture to the whole scene including or excluding the environment. They are rendered as info AOVs, which means that the info AOV settings are applied to them as well. You can overwrite the alpha channel with your own texture, or use the default behavior which is equal to the alpha channel of the other info AOVs.
This project contains all examples below:
global-tex-aovs.orbx (for Preview 1)
global-tex-aovs-2.orbx (for Preview 2)
Here is a simple "debug" texture AOV which you can use to quickly assess your UV maps, normals and whether your polygons are facing away from the camera / have inverted normals, indicated by a red tint (like the plug in the Idea scene). The two results are with include environment disabled / enabled:
Here is another example where we use a global texture AOV to calculate a simple fog/haze based on the distance to the camera, which is then composed on top of the main render AOV:
Sample position to UV
To render global texture AOVs in screen space, we added the projection Sample pos. to UV. Please note that this is only useful for info AOVs since the sample screen position doesn't change between bounces of a path. I.e. it's not the same as screen space projections which map arbitrary points from world space to screen space.
This projection is very simple and can be useful for creating masks for compositing on-the-fly. In this simple example we are rendering a tilted gradient over the whole screen (including environment enabled):
In combination with an ambient occlusion AOV, a wireframe AOV and the main AOV you can then quickly set up a composite like this:
Custom AOVs are just a container that can be used to capture certain aspects of your scene via different methods. As a start, we added an option to the object layer node to write masks into custom AOVs. I.e. in an object layer node you can specify to which custom AOV you want to write the mask and into which channels (all / red / green / blue):
Custom AOVs have an additional option to allow you to specify whether you can write to the AOV only on the first bounce (for camera rays) or also after (specular) reflections and/or refractions. This way you can capture those attributes also in reflections and/or through transparent materials:
Things still to do
- Add option to material nodes to write masks into custom AOVs.
- Add capture texture to record specific texture of the scene.
- Add support for light path expressions - if feasible.
2021 XB Features in Active Development
Below are a list of features that are in development for 2021 XB releases following 2021 Preview build out today:
Major Stability (OOP) and out of core memory improvements
Scene management in has been improved over the years yet there are some changes we want to introduce to make the system more robust and resilient to failures:
The original update system stems from a time when Octane as no support for out-of-core and peer-to-peer memory and everything had to fit into memory of each enabled GPU. This may cause problems if data needs to move from one memory pool (local GPU memory or peer-to-peer memory or out-of-core memory).
The changes we intend to do involve the introduction of a new memory management system that will deal with resources differently and deal with errors during the resource allocation as gracefully as possible.
Billions of unique primitives supported in VRAM
Octane will support an unbound amount of geometry per mesh as long as it fits in the available memory.
Other improvements should reduce memory usage such as sharing data between adjacent geometry primitives.
- Improvement to opacity sampling with volume-polygon intersection.
- Increase volume intersection limit, this would allow more overlapping volumes as opposed to the current limitation of 4.
- Light-linking extension to volume and medium, allowing artists to specify light exclusion for medium and volume.
RTX Hardware Motion Blur (1.5x faster on Ampere)
We are planning to improve support for NVIDIA's RTX hardware ray tracing acceleration technology by implementing support for motion blur with animations. The new Ampere architecture integrates a new generation of RT cores that support hardware acceleration of animated mesh instances as well as geometry deformations to produce motion blur effects. Both of these are expected to be fully supported in Octane 2021.
Preliminary tests show improvements of ~1.5x in production scenes:
Improved color management
- To complete the color management we are working on allowing color spaces to be defined per texture (where applicable), so you can use them in color spaces such as ACEScg and those defined by an OCIO config.
- A project will be able to override the OCIO config to use, so different projects can use different configs.
- OCIO setup will be made a little easier via optional automatic selection of the intermediate color space.
- The user interface and the integration with the HDR viewport will improved as well.
- Energy preserving GGX, to improve the loss of energy in high roughness microfacet BRDF models.
- More texture nodes, adding a more variety of texture operations to our composite texture.
Curvature texture node
Curvature can be useful when creating shaders that take into account how exposed or occluded a given surface point is.
This introduces new artistic possibilities such as worn out surfaces, filling in crevices and more.
2021 Features in Early Development
Below are a list of features that are in in development for Octane 2021.x updates through the rest of this coming year:
We have been actively working on RNDR modules which include the OTOY developed real-time path tracing engine Brigade, real-time fluid simulation tool EmbergenFX, and Hydra.
Using Hydra, it enables multi-render which essentially allows Octane to swap to any other rendering engines in seconds, and is not more difficult than the current ways of switching between different kernels in Octane. We are using this technique to bring completely new renderers into Octane core, including Arnold, AnimeRender, and Cycles.
- Smoothed Tangents, interpolated vertex tangents for removing discontinuity on tangent-space dependent anisotropic reflection.
- Improvement in direct light environment sampling.
- Normal Distribution tail-varying BRDF, to give artists more control of the tail of highlights for microfacet BRDF.
- Additive material, allows artists to specify multiple layers of emission added together.
- Caustics rendering, improvement to the caustics convergence over existing path-tracing and PMC kernels.
- Arnold Standard Surface/Volume as Octane Core material/volume nodes.
- Volumetric user data attributes and rest position shader input.
Reduced shadow terminator for low polycount meshes
We are actively investigating the shadow terminator problem in Octane for low polycount meshes, and we aim to reduce the shadow terminator artifacts automatically during rendering without any additional user controls.
Native USD Support
Pixar's USD scene format is getting universal attention due to its unique features and ability to handle large scene with ease, compared to any other scene description format currently available.
We are adding ability to load the USD files into octane. Later our goal is to make the USD format as default format for scene interchange-ability between a plugin and the standalone.
Read more about the 2021 Roadmap here: https://home.otoy.com/octanerender-2021-rndr/
Your OTOY NZ team