New features in Final Renderer (Northstar)
HIP (The Heterogeneous Interface for Portability) has been in development since 2016. HIP provides greater flexibility and capability, such as offline compilation and dynamic linking, meaning HIP applications are able to offer more value on AMD platforms. We first released ProRender with HIP support in Feburary 2022. Since then, we have been polishing the implementation and now the day has come to transition to HIP. In this release, the backend of ProRender switches to HIP from OpenCL™ which is used as a backend in Windows/Linux. Our implementation uses Orochi to load HIP and CUDA APIs dynamically.
The biggest user benefit from this Orochi (or HIP) backend is that all the kernels used for rendering are all pre-compiled. ProRender does not compile at runtime any more as the ProRender SDK contains pre-compiled binaries. The rendering will start immediately on the GPU which improves usability a lot!
Bevel shader support
Almost all edges of the “Real” shape have some amount roundness. So, we added the functionality of applying roundness as a shader node to the edge of geometry to add more realism without extra polygons. You will see a lot of highlights on the voxel edges in the following image. These are not produced without the bevel shader.
Volume and SSS AOVs
We support several AOVs such as normal, opacity, direct illumination, indirect illumination, etc. In this release we have added two AOVs to capture only volume objects, which users can use for compositing and denoising. The AOVs are “Volume AOV” and “SSS AOV”, which capture heterogeneous volume and subsurface scattering respectively. Note that we also support a metacharacter for volume on LPE (Light Path Expressions) .
Here’s an example use of “Volume AOV”:
Composited images via Volume AOV:
Reflecting on feedback from some customers that use non-photorealistic rendering (NPR), we have added transparency and material blending support for toon materials to provide further flexibility. One of the major updates related to NPR is “Light Linking”.
Shading controllability is often preferred over correctness in NPR. Light Linking makes an explicit pair of geometry and light where the light illuminates against only the paired geometry.
The following image demonstrates Light Linking. The five directional lights illuminate the spheres but each light only illuminates a sphere that is linked to the light. It gives users full control of the shading individually for each geometry.
New features in Viewport Renderer (Hybrid Pro)
Faster convergence in a many light scene
As you put more and more lights in your scene, the convergence gets slower and slower. We have added an improved light sampling strategy to accelerate the viewport rendering in Hybrid Pro. Our light sampling strategy (based on a tree data structure) significantly reduces rendering noise. You may worry about the data structure building, but you do not need to wait much to see the first frame after pushing the render button because our build algorithm runs on the GPU.
Here is a comparison of before and after:
We further improved the convergence of viewport rendering using Hybrid Pro with our implementation of Spatiotemporal Reservoir Resampling (ReSTIR) and Spatiotemporal Variance-Guided Filtering (SVGF) techniques.
Here we created a comparison of the methods. Note that all these images are rendered with just 1 spp!
Displacement without tessellation
We have finally added displacement mapping feature in Hybrid Pro too. The approach we took here is different from what’s implemented in Northstar. Our implementation does not do tessellation when you start the rendering, although we can make a highly detailed geometry on the fly as you are going to see soon. This means that there are no time-consuming pre-tessellation steps that are usually required before rendering the displaced geometry. Furthermore, the memory footprint for displacement geometry is negligible.
Displaced geometry can be procedurally generated. We support all material nodes used in RPR materials for our displacement, which lets us interactively create animated displaced geometry to apply displacement to a shape – no need for special settings. You just need to use the
rprShapeSetDisplacementMaterial as usual.
Support older GPUs
We also added support for older GPU architectures which do not support hardware ray tracing. Hybrid Pro can now be used with Navi1x, Vega, Polaris, and more!
Any feedback? Please feel free to open a conversation here!
Find out more about Radeon ProRender here on GPUOpen.