REDsdk 5.1 API Changes

File name “Change details”
ART.h
  • Global namespace migration of the REDart API, from namespace RPL to namespace ART. All ART include files have been updated.
  • New helper macros to access the most common ART objects.
ARTIAssetManager.h

New methods

  • ART::IAssetManager::DeleteAtlas: Cleanup of a loaded atlas.
  • ART::IAssetManager::CreateAtlas and ART::IAssetManager::DeleteAtlas: Creation and destruction of a flat atlas.
  • ART::IAssetManager::DeleteGeometry: Cleanup of a created geometry.
  • ART::IAssetManager::BuildGeometryREDGraph: Turn an ART geometry into a plain REDsdk scene graph.
  • ART::IAssetManager::StopGenerateGeometryGICache: Interrupt a GI cache calculation.
  • ART::IAssetManager::ClearGeometryGICache: Helper to cleanup a geometry GI cache.
  • ART::IAssetManager::DeleteReflectionProbesMaps: Cleanup of reflection probes maps.
  • ART::IAssetManager::StopGenerateGeometryVertexAO: Interrupt a geometry vertex AO calculation.
  • ART::IAssetManager::DeleteLightStaticShadowMaps: New methods to cleanup the memory of static shadow maps.

Modified methods

  • ART::IAssetManager::LoadAtlas: The RED::IDataManager loading context is now returned for a proper memory cleanup.
  • ART::IAssetManager::LoadGeometrySourceFile: No more gamma control on import, an option to select the storage mode of textures, progress callback.
  • ART::IAssetManager::GenerateGeometryGICache: Added a ground handling option.
  • ART::IAssetManager::SaveGeometryGICache, ART::IAssetManager::LoadGeometryGICache: Added a sun direction option that corresponds to the cache saved.
  • ART::IAssetManager::LoadReflectionProbeMaps: Retrieved the data context for a proper memory cleanup.
  • ART::IAssetManager::GenerateGIFilteringPositions: Added a ground altitude control.
  • ART::IAssetManager::ComputeShapePaths: New option flag to add the shape itself in generated paths.

Removed methods

  • ART::IAssetManager::StartGeometryDefinition and StopGeometryDefinition that became useless.
ARTIGeometry.h

Modified methods

  • ART::IGeometry::GetVerticesCount: Added counter values for emissive and masked meshes.
  • ART::IGeometry::IsAutomaticSetOnGround: Query the behavior of the geometry vs. the ground.

Removed methods

  • Global color modifiers: SetHSLModifier, SetReflectionModifier and SetTranslucencyModifier. Now controls are in ART::IMaterials.
ARTILight.h

New methods

  • ART::ILight::GetSphereRadius: for physical spherical lights.
  • ART::ILight::GetShadowMapBlur, ART::ILight::SetShadowMapBlur: Control the light shadow map blur.
  • ART::ILight::SetIESData: Specify IES parameters retrieved from the ART::IAssetManager.
ARTIMaterial.h New file. ART material.
ARTIObserver.h

New methods

  • ART::IObserver::GetNearFarBackground: Return clipping planes for the background scenery.
  • Background near far override API: ART::IObserver::OverrideNearFarBackground and related accessors.
  • ART::IObserver::GetPrimaryRay: Return the picking line getting through a pixel.
ARTIOptions.h

New ART::DISPLAY_MODE value, ART::DM_OBJECT_ID to visualize object IDs in a scene

New API to control switching fields of views for different display categories (a star in a sky, close orbit): ART::IOptions::SetStarInTheSkyFOVRatio, ART::IOptions::SetCloseOrbitFOVRatio and corresponding accessors

Removed methods (will be remade public through another API directly at the planetary or atlas level)

  • ART::IOptions::SetStarRadianceMultiplier and ART::IOptions::GetStarRadianceMultiplier: to control the star radiance.
  • ART::IOptions::SetSkyRadianceMultiplier and ART::IOptions::GetSkyRadianceMultiplier: to control the sky radiance.
  • ART::IOptions::SetSkyMultiplier and ART::IOptions::GetSkyMultiplier: to control the visible sky intensity.
  • ART::IOptions::SetCloudsGroundAlbedo and ART::IOptions::GetCloudsGroundAlbedo: Useless after improvements of the shading model.
  • ART::IOptions::SetLightShadowMapBlur and ART::IOptions::GetLightShadowMapBlur: Moved to lights and customizable on a per light basis.

New methods

  • ART::IOptions::SetAtmosphericCloudShadows and ART::IOptions::GetAtmosphericCloudShadows: Control the shadowing of clouds over the atmosphere.
  • ART::IOptions::SetStarGIStrengthInShadows and ART::IOptions::GetStarGIStrengthInShadows: Control the backlighting and GI produced by the sun in shadowed regions.
  • ART::IOptions::SetPrismsSplatOverlap and ART::IOptions::GetPrismsSplatOverlap: Control the distance overlapping of prisms with splatting.
  • ART::IOptions::SetThreadsCount, ART::IOptions::GetThreadsCount: Control the number of threads used for all ART calculations.
  • ART::IOptions::SetPlanetLandscapeThreadsCount and ART::IOptions::GetPlanetLandscapeThreadsCount: Set the number of auxiliary threads needed to calculate a landscape.
ARTIPlanet.h

New methods

  • ART::IPlanet::RefreshGeometryTransform: Modify the position of a geometry.

Modified methods

  • ART::IPlanet::SetAtlas has a return code now. Can’t be called once the world simulation has begun.

Removed methods

  • ART::IPlanet::DestroyGeometry: See the ART::IAssetManager.
ARTIWorld.h

New methods

  • ART::IWorld::GetStar to access to the star of a solar or earth based system.
  • ART::IWorld::OverrideGlobalTime, ART::IWorld::GetGlobalTimeOverride: Gain control over the simulation time.

Modified methods

  • ART::IWorld::AddCustomShape: Receives a new flag to choose a default material or a used supplied material.
  • ART::IWorld::Save: A progress callback has been added.
REDFrameStatistics.h New RED::RENDERING_PROGRESS_STEP: RED::RPS_WORLD_GI_CACHE_PROCESSING used to track the progress of world GI caches calculations.
REDImageTools.h Fixed some methods wrong prototypes.
REDIOTools.h Added a iLocalImages parameter to choose the storage mode of images to the RED::IOTools::Load method.
REDIMaterial.h New RED::MTL_INTERNAL pass marker that can be returned to new OpenGL material customization callback (see RED::OPENGL_MATERIAL_CALLBACK).
REDIMeshShape.h New RED::MESH_FORMAT value: RED::MFT_HALF_FLOAT for the storage on 2 bytes floating point values. Modification of the RED::IMeshShape::Polygon method with a better management of UV textures and handling of polygon with different winding rules (RED::POLYGON_WINDING_RULE).
REDIPhysicalLightShape.h Added a new method RED::IPhysicalLightShape::SetIESValues that can be used to supply IES values to a light without requiring an IES file to be loaded.
REDIResourceManager.h Added new low level OpenGL customization callbacks: RED::IResourceManager::SetOpenGLMaterialCallback, RED::IResourceManager::SetOpenGLBufferCallback and RED::IResourceManager::SetOpenGLViewpointCallback, corresponding accessors and callback prototypes.
REDISoftRayContext.h

Modified methods

  • RED::ISoftRayContext::PrepareLights: Removed an useless iVolumeSample flag.
REDISoftRenderingContext.h

New methods

  • RED::ISoftRenderingContext::GetRayAdaptiveSamplingAllowedTime: Return the amount of time allowed to time based adaptive calculations.
  • RED::ISoftRenderingContext::GetBackgroundImagesIntensityScale: Return the background images intensity scaling factor.
REDITransformShape.h Added an option to preserve source IDs of shapes when calling RED::ITransformShape::BuildHLR.
REDIViewpoint.h New RED::IViewpoint::GetRenderShaderParameters method for a direct access to camera render shader parameters.
REDIViewpointRenderList.h

New methods

  • RED::IViewpointRenderList::GetBackgroundImagesIntensityScale: Retrieve the intensity scaling of a background image.
  • RED::IViewpointRenderList::SetViewpointSoftMatrix, RED::IViewpointRenderList::GetViewpointSoftMatrix: Supply the camera matrix to RED::IViewpointRenderList::SetViewpointSoftImages for post-processing needs.
  • RED::IViewpointRenderList::GetInverseProjectionViewportMatrix: Return the VPV inverse matrix for the specified viewpoint.

Modified methods

  • RED::IViewpointRenderList::SetPixelFormat, RED::IViewpointRenderList::GetPixelFormat: Added a parameter to do the operation on a specific buffer in the case of multi-buffered VRLs.
  • RED::IViewpointRenderList::SetBackgroundImages: Added a parameter to change the intensity scale of a background image.
REDIWindow.h

Modified methods

  • RED::IWindow::CreateVRL: Added an option flag to create a buffer with or without a z-buffer.
  • RED::IWindow::CreateMultiRenderTargetVRL: Added an option flag to create a buffer with or without a z-buffer. Added a per buffer format selection.
REDOptionList.h

New options

  • RED::OPTIONS_REFRESH_INSTANCE_COUNTERS: Can be turned on to force the refresh of instance counter values without requiring to edit the scene graph.
  • RED::OPTIONS_RAY_ADAPTIVE_SAMPLING_ALLOWED_TIME: Used by ref bk_re_adaptive_sampling, to set adaptation based on time rather than on quality.
  • RED::OPTIONS_RAY_GI_ESTIMATOR_FULL_PATH: Can be used to increase the quality of the GI estimator in complex rendering situations.
REDPostProcess.h

New RED::TONEMAPPING_OPERATOR, RED::TMO_EXPONENTIAL

New methods

  • Glow threshold: RED::PostProcess::SetGlowThreshold and RED::PostProcess::GetGlowThreshold.
  • Depth line post process: RED::PostProcess::SetDepthLine and other configuration methods.
  • Vignette post process: RED::PostProcess::SetVignette and other configuration methods.
  • Lookup tables: RED::PostProcess::SetLUT and other configuration methods.
  • All CPU methods to compute multi-pass processing effects: for instance RED::PostProcess::ProcessGlowPass1 and other similar methods.
REDRenderShaderParameter.h

New matrices parameters

  • RED::RenderShaderParameter::REF_VRL_VIEW_MATRIX,
  • RED::RenderShaderParameter::REF_VRL_VIEW_PROJECTION_MATRIX,
  • RED::RenderShaderParameter::REF_VRL_VIEWPORT_MATRIX,
  • RED::RenderShaderParameter::REF_VRL_PROJECTION_MATRIX,

New inverse matrices parameters

  • RED::RenderShaderParameter::REF_VRL_VIEW_PROJECTION_VIEWPORT_MATRIX_INVERT,
  • RED::RenderShaderParameter::REF_VRL_MODEL_MATRIX_INVERT,
  • RED::RenderShaderParameter::REF_VRL_MODELVIEW_MATRIX_INVERT,
  • RED::RenderShaderParameter::REF_VRL_MODELVIEW_PROJECTION_MATRIX_INVERT,
  • RED::RenderShaderParameter::REF_VRL_VIEW_MATRIX_INVERT,
  • RED::RenderShaderParameter::REF_VRL_VIEW_PROJECTION_MATRIX_INVERT,
  • RED::RenderShaderParameter::REF_VRL_VIEWPORT_MATRIX_INVERT,
  • RED::RenderShaderParameter::REF_VRL_VIEW_PROJECTION_VIEWPORT_MATRIX_INVERT,
  • RED::RenderShaderParameter::REF_VRL_PROJECTION_MATRIX_INVERT.
REDShaderString.h New RED::ShaderString::SmoothStep method. Equivalent to GLSL smoothstep function.
REDStateShader.h Added a missing RED::StateShader::GetBlendingMode accessor.