REDsdk 5.1

Welcome to REDsdk 5.1!

API Changes

For those that directly want to jump into the details, see all API changes here: REDsdk 5.1 API Changes.

Overview of Changes

REDsdk 5.1 sees several improvements in the new REDart module, detailed below in the section New REDart Features as well as some extensions of existing rendering features in REDsdk, as detailed below: a new Time Based Adaptive Ray-Tracing, New Post Processing Filters, and a New Tone Mapping Operator are the most important features.

Auxiliary modules of REDsdk have been also enhanced a lot. See below under Modules Upgrade.

Finally, in addition to all these features, a fairly high number of smaller changes have been made to make your life easier with the engine. See all details below under Minor Changes.

New REDart Features

This release of REDsdk with REDart sees major improvements to the REDart capabilities. The original promise was about creating a workflow - as simple as possible - to turn photo-realistic REDsdk scenes into real-time scenes editable in REDart. REDsdk 5.1 enforces this and add some qualitative enhancements that are illustrated below. In the image below, we see the photo-realistic rendering of the Flat Demo we did some years ago (time flies too fast…):

../../_images/bk_rn_51_flat_demo_photo.png

The source data is a REDsdk scene graph setup with realistic materials, physical lights, and portals at the window openings. It’s gets imported into REDart “as is”. Then GI filtering positions are set, a GI cache is calculated, and some reflection probes are set in the living room to define reflections. The time taken by the entire processing for a low quality GI cache is less than 5 minutes. We get the result below, rendered in real-time:

../../_images/bk_rn_51_flat_demo_real_time.png

Note that the environment is not the same. The real-time scene is rendered in the REDart editor, in a 3D environment with a blue sky instead of a plain white background. But this illustrates the level of matching the real-time can catch up at almost no setup cost: the source data is not modified at all during the process, so once a REDsdk scene graph is ready for the rendering, it can be easily “turned” into a real-time dataset.

REDart also has received a number of improvements for this release:

  • Automatic generated thick snow

  • Support for real-time area lights and spherical lights

  • Temporal anti-aliasing

  • Improved lighting model

  • Enhanced clouds

  • Reduced geometries memory footprint

  • Better biome fade conditions that are used to visualize vegetation layers from very far away

  • Improved REDart editor

  • Reduced memory footprint of the rendering pipeline

  • Improved texture atlases

  • Improved shadow mapping blur

  • Temporal AA is now supported with Oculus VR display

Time Based Adaptive Ray-Tracing

Time based adaptive ray-tracing is a variation of adaptive ray-tracing that uses time instead of quality as criteria to stop calculating an image. Therefore, time based adaptive tracing is a convenient way to get the best quality for a known amount of available time. See Adaptive Sampling for all details on adaptive sampling. Below is a time based adaptive rendering example:

../../_images/bk_rn_51_time_based_adaptive_tracing.png

The time requested was 10 seconds, 60 seconds and 4 minutes. Depending on the adaptive settings, the minimal quality or maximal quality specified by rendering options can be reached.

New Post Processing Filters

Several new post-processing filters are available in REDsdk 5.1:

Vignetting effects:

../../_images/bk_rn_51_vignetting.png

A new depth line effect that can be used to visualize the boundaries of the depth-of-field when it gets activated:

../../_images/bk_rn_51_depth_line.png

The depth line is visible on the left side of the image. It’s useful to “see” the depth at which the scene will not look blurry due to the DOF.

The support of Lookup Tables (LUT) has also been added to the list of avaible effects controllable from the RED::PostProcess. Finally, several existing effects have been reworked such as the Depth Of Field, Blur or Glow that now have controllable kernel sizes and that have been optimized.

New Tone Mapping Operator

A new tone mapping operator, the RED::TMO_EXPONENTIAL has been added to the list of tone mapping operators available from the RED::PostProcess class. It’s a bit brighter and vivid than the RED::TMO_PHOTOGRAPHIC tonemapping operator, and it only requires the average image luminance to work.

../../_images/bk_rn_51_exponential_tm.png

Photographic tone mapping is on the left side of the picture above while exponential tone mapping is on the right side.

Modules Upgrade

  • REDmax has been migrated to 3dsMax 2019

  • REDOdaDevice has been migrated to Teigha 20.5

  • REDmaterials has been entirely rewritten: all materials are now based on the realistic material

  • REdmaterials now has new fiberboard and particleboard materials

../../_images/bk_rn_51_fiberboard_and_particleboard.png

Minor Changes

  • New RED::RenderShaderParameter matrix references. These can be used to build a rendering pipeline without using the default OpenGL matrices.

  • An improved GI estimator quality using the new RED::OPTIONS_RAY_GI_ESTIMATOR_FULL_PATH option, for dense estimator passes that have a better convergence.

  • An improved quality of GPU GI caches,

  • The support of a new RED::FMT_HALF_FLOAT data format for meshes. This is useful to reduce the memory footprint of meshes that store floating point data that don’t deserve a high numerical accuracy or that are bounded. Normals and UV texture coordinates can generally fit to that format, providing significant memory savings.

  • Faster loading of FBX files that must be triangulated.

  • The FBX format has been slightly extended, allowing to save

  • The quality of GPU GI caches has been improved by a better weighting of GI samples close to other surfaces.

  • GPU GI caches are now calculated faster. A lot faster if there are many filtering positions to be considered.

  • The amount of memory needed to load large .red files (>4Gb) has been reduced.

  • The bootstrap of REDsdk has been modified to allow running on software Mesa implementations on Windows.

  • The probabilistic sampling of lights has been slightly modified to avoid too extreme lighting histograms that could lower the importance of some lights a bit too much.

  • New API to control the formats of multi target buffers; New parameter to control the creation of a depth buffer in an auxiliary VRL.

  • New low level OpenGL customization callbacks that can be used to add specific OpenGL extensions and to modify the OpenGL rendering pipeline.

  • Enhanced RED::IMeshShape::Polygon method to accept winding rules and deal with new vertices and interpolated data.

  • Added an intensity scale factor to the RED::IViewpointRenderList::SetBackgroundImages method.

  • Enhanced RED::ITransformShape::BuildHLR method with the management of clipping planes and the preservation of source shapes IDs in resulting HLR segments.

  • The memory footprint of world GI caches calculations has been reduced significantly.