REDsdk 4.3 API Changes

File name

“Change details”

RED.h

New stuff

  • New RED_WFLOW_INVALID_SAMPLER error code that reports a wrong sampler selection for rendering.

Changes

  • Changed the RED::Break prototype for error tracking needs.

  • Removal of RED_RC_ASSERT and other macros, replaced with new RED_RC* macros for error tracking needs.

  • Modified the RED::ProgressCallback type: added user data pointer.

REDCID.h

Changes

  • Removal of all internal CID definitions.

  • New CIDs definitions for new classes ‘As’ methods.

REDFactory.h

New tokens

  • Added the CID_REDCloudsVolumeShape shape creation token for volumetric clouds.

REDFRameStatistics.h

New methods

  • Added RED::PassStatistics::As typing methods.

  • Added RED::ViewpointStatistics::As typing methods.

  • Added RED::FrameStatistics::As typing methods.

REDIAnimationClipController.h

New methods

  • RED::IAnimationClipController::SetStartTime and other animation clip time control methods.

REDICloudsVolumeShape.h

New methods

  • RED::IAnimationClipController::SetStartTime and other animation clip time control methods.

REDIFont.h

New method

  • RED::IFont::CheckString: Can be used to find all characters in a string that can be rendered by a given font.

REDILightShape.h

New enums

  • Added the RED::RM_USE_EXACT_LIGHT_PROB to use an exact probabilistic calculation for light sampling.

  • Added the RED::RM_USE_MIS to toggle multiple importance sampling calculations for a light or not.

REDIMaterial.h

New methods

  • RED::IMaterial::SetupGenericLambertMaterial: Corresponds to the former SetupGenericMaterial.

Modified methods

  • RED::IMaterial::SetupGenericMaterial: Added ambient, emissive and specular reflectance terms.

REDIMaterialController.h

New defines

  • Properties names for RED::IMaterial::SetupGenericMaterial.

REDIMeshShape.h

New methods

  • RED::IMeshShape::SortPolygons to sort all triangles in a mesh along a viewing direction.

  • RED::IMeshShape::Polygon: Tessellate a polygon and indicates the resulting vertex mapping to look back to extra vertex attributes.

Modified methods

  • RED::IMeshShape::BuildCutMesh: Added a global tolerancy parameter for all internal operations.

REDIOTools.h

Methods changes

  • Added units (RED::IO_SYSTEM_UNIT) to RED::IOTools::Load and RED::IOTools::Save.

  • Added user data to RED::IOTools::Load and RED::IOTools::Save to operate with the specified progress callback.

REDIREDFile.h

New methods

  • Added RED::FileHeader::As typing methods.

  • Added RED::FileInfo::As typing methods.

Methods changes

  • Modified RED::IREDFile::Load: addes user data to be sent to the progress callback.

REDIResourceManager.h

New methods

  • RED::IResourceManager::CreateColorFontMaterial to create a color material for the visualization of RED::FNT_TRIANGLE, RED::FNT_LINE and RED::FNT_BITMAP fonts, after the migration of built-in shaders to high definition matrices.

  • RED::IResourceManager::SetErrorCallback and the corresponding accessor to setup an error tracking callback.

New types

  • RED::REDSDK_ERROR_CALLBACK: Prototype of the error tracking callback.

Methods changes

  • Modified RED::IResourceManager::SetInterruptCallback: Added user data that can be sent to the interruption callback.

  • Modified RED::IResourceManager::GetInterruptCallback to return both the callback and its user data.

  • Modified RED::IResourceManager::RegisterShadingCallback: Added user data to send to the callback.

  • Modified RED::IResourceManager::GetShadingCallback: Return the callback and the user data.

REDIShape.h

Changed methods

  • RED::USER_SWITCH_CALLBACK: Added user data to the callback.

  • RED::IShape::SetContextSwitchCallback: Added user data.

  • RED::IShape::GetContextSwitchCallback: Returns both the callback and its associated user data.

  • RED::IShape::SetVisibilitySwitchCallback: Added user data.

  • RED::IShape::GetVisibilitySwitchCallback: Returns both the callback and its associated user data.

REDISkyLightShape.h

New enumerations

  • RED::CLOUDS_TYPE: Description of a type of clouds.

New methods

  • RED::ISkyLightShape::AddClouds: Add clouds to the sky model.

  • RED::ISkyLightShape::UpdateClouds: Update clouds.

  • RED::ISkyLightShape::ClearClouds: Remove clouds from the sky model.

Modified methods

  • RED::ISkyLightShape::CreatePhysicalSkyTexture: Added a cloud inclusion flag in the texture creation.

REDISoftLight.h

Removed method

  • RED::ISoftLight::StartSampling: This method is no longer needed. Only RED::ISoftRayContext::PrepareLights is needed.

REDISoftRayContext.h

New method

  • RED::ISoftRayContext::GetObjectElementUVs: Retrieve a hit element mesh intersection UVs.

Modified method

  • RED::ISoftRayContext::GetShadowColor: An optional sample TID can be specified for shadow exclusion.

REDISoftRenderingContext.h

New method

  • RED::ISoftRenderingContext::GetRayAdaptiveSamplingThreshold: Retrieve the current ray-tracer adaptation threshold.

REDIViewpoint.h

New types

  • RED::INSTANCE_COUNTER_IMAGE_CALLBACK: Callback for the instance counter but using images per instance rather than values.

New methods

  • RED::IViewpoint::SetInstanceCounterImageCallback and accessor: Manage the instance counter callback for image parameters.

  • RED::IViewpoint::SetCustomClipPlanes and accessor: Define custom clip planes equations for a RED::VPT_CUSTOM viewpoint.

Changed methods

  • RED::INSTANCE_COUNTER_CALLBACK: Added user data.

  • RED::INSTANCE_COUNTER_IMAGE_CALLBACK: Added user data.

  • RED::IViewpoint::SetInstanceCounterCallback and RED::IViewpoint::GetInstanceCounterCallback: Added setup or access to user data.

  • RED::IViewpoint::SetInstanceCounterImageCallback and RED::IViewpoint::GetInstanceCounterImageCallback: Added setup or access to user data.

REDIVolumeShape.h

New methods

  • RED::IVolumeShape::SetLightRayMaxSamples and accessor: Define the maximal number of samples used during ray-marching to the lights.

  • RED::IVolumeShape::SetLightRayMarchingStepIncrease: Define the variable increment during ray-marching to the lights

REDIWindow.h

New methods

  • RED::IWindow::GetMaxTextureSize: Return the maximal texture dimensions for the used GPU.

  • RED::IWindow::GetMax3DTextureSize: Return the maximal 3D texture dimensions for the used GPU.

Modified methods

  • RED::IWindow::FramePickingRectangle: Added an option flag to pick all shapes entities within the shape area.

REDMemoryAllocator.h

New defines

  • RED_MLT_STL: RED::Vector and RED::Map template allocation size.

REDMemoryLeakTracker.h

Changed methods

  • RED::MemoryLeakTracker::USER_MLT_CALLBACK: Added user data.

  • RED::MemoryLeakTracker::SetUserTrackingCallback: Added user data.

REDOptionList.h

New options

  • RED::OPTIONS_SAMPLER: Rendering sampler selection (fixed / adaptive).

  • RED::OPTIONS_RAY_ADAPTIVE_SAMPLING_THRESHOLD: Setup the amount of adaptation in software ray-tracer calculations.

  • RED::OPTIONS_RAY_MAX_SECONDARY_RAY_INTENSITY: Clamp fireflies (bright spots of lights seen directly through reflective / refractive surfaces) in an image.

REDPostProcess.h

New methods

  • RED::PostProcess::As typing methods.

New methods for post-processing

  • RED::PostProcess::IsCurveNeutral.

  • RED::PostProcess::IsColorOperationsNeutral.

  • RED::PostProcess::SetSharpen, RED::PostProcess::GetSharpen.

  • RED::PostProcess::SetGlow, RED::PostProcess::GetGlow.

  • RED::PostProcess::SetBlur, RED::PostProcess::GetBlur.

  • RED::PostProcess::SetDOF, RED::PostProcess::GetDOF.

  • RED::PostProcess::SetBrightness, RED::PostProcess::GetBrightness.

  • RED::PostProcess::SetContrast, RED::PostProcess::GetContrast.

  • RED::PostProcess::SetHSL, RED::PostProcess::GetHSL.

  • RED::PostProcess::SetLevels, RED::PostProcess::GetLevels.

  • RED::PostProcess::ProcessSharpen.

  • RED::PostProcess::ProcessGlow.

  • RED::PostProcess::ProcessBlur.

  • RED::PostProcess::ProcessDOF.

  • RED::PostProcess::ProcessColorOperations.

  • RED::PostProcess::GetSharpenKernelSize.

  • RED::PostProcess::GetBlurKernelSize.

  • RED::PostProcess::GetGlowKernelSize.

  • RED::PostProcess::GetDOFKernelSize.

Methods name changes

  • RED::PostProcess::Process is renamed as RED::PostProcess::ProcessToneMapping.

  • RED::PostProcess::ProcessAA is renamed as RED::PostProcess::ProcessToneMappingAA.

REDRandom.h

New methods

  • RED::RNG::As typing methods.

  • RED::Random::As typing methods.

  • RED::FastRandom::As typing methods.

REDRenderCode.h

Methods name changes

  • RED::RenderCode::SetHighDefinitionModelViewMatrix is renamed as RED::RenderCode::SetModelViewMatrix and is turned on by default.

  • RED::RenderCode::GetHighDefinitionModelViewMatrix is renamed as RED::RenderCode::GetModelViewMatrix.

  • RED::RenderCode::SetHightDefinitionModelViewProjectionMatrix is renamed as RED::RenderCode::SetModelViewProjectionMatrix and is turned on by default.

  • RED::RenderCode::GetHightDefinitionModelViewProjectionMatrix is renamed as RED::RenderCode::GetModelViewProjectionMatrix.

REDRenderShaderAmbient.h

Modified methods

  • RED::RenderShaderAmbient::RenderShaderAmbient: Added an ambient equation selection flag.

REDRenderShaderParameter.h

New enums

  • Added the RED::RenderShaderParameer::REF_INSTANCE_COUNTER_IMAGE for the definition of image parameters per instance.

REDShaderProgramID.h

New enums

  • Added the RED::SC_LEGACY_COLOR shader class for the display of RED::FNT_TRIANGLE, RED::FNT_LINE fonts that don’t support high definition matrices.

REDSoftShaderCallback.h

Changed methods

  • RED::SOFT_SHADER_CALLBACK: Added user data.

REDStateShader.h

New methods

  • RED::StateShaderPlatformData::As typing methods.

REDStreamingPolicy.h

New methods

  • RED::StreamingPolicy::As typing methods.

Changed methods

  • RED::StreamingPolicy::UNKNOWN_CHUNK_CALLBACK: Added user data.

  • RED::StreamingPolicy::SetUnknownChunkPolicy, RED::StreamingPolicy::GetUnknownChunkPolicy: Added user data.

REDString.h

New method

  • RED::String::Replace to replace all occurrences of a string by another one.

REDTimer.h

New methods

  • RED::Timer::As typing methods.

REDThreads.h

New methods

  • RED::Thread::As typing methods.

REDUserData.h

New methods

  • RED::UserData::As typing methods.

REDVolumetricEffect.h

New method

  • RED::VolumetricEffect::GetEmission: Return the emission property of the medium at a given position.

REDVolumetricEffectBoxVolume.h

New methods

  • RED::VolumetricEffectBoxVolume::SetEmission and accessor: Define the medium emission coefficient.

REDVolumetricEffectClouds.h

New file.

REDVolumetricEffectLightVolume.h

New methods

  • RED::VolumetricEffectLightVolume::SetEmission and accessor: Define the medium emission coefficient.

REDWindowRenderInfo.h

New methods

  • RED::WindowRenderInfo::As typing methods

RNETIPeer.h

New methods

  • RNET::IPeer::SetPollTimeout: Control the network thread polling timeout of a peer.