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.