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.