REDsdk 4.2 API Changes

File name “Change details”
RED.h

New return codes

  • RED_SCG_INVALID_SKIN_MESH_DATA: Animation framework error code.
  • RED_NET_CANT_RESOLVE_DESTINATION: RNET error code.
  • RED_NET_CANT_CREATE_SOCKET: RNET error code.

New defines

  • RED_4PI, RED_PI4
REDAnimationClip.h New file, part of the animation framework!
REDAnimationData.h New file, part of the animation framework!
REDCID.h New classes CID values.
REDColor.h

New methods

  • RED::Color construction method from double values.
  • RED::Color::SetRGBA from double values.
REDFactory.h

Animation system methods

  • RED::Factory::CreateAnimationClipController.
  • RED::Factory::CreateSkeletalAnimationClipController.
  • RED::Factory::CreateSkeletalAnimationBlender.
REDFrameStatistics.h

New detailed statistics

  • New RED::PassStatistics and RED::ViewpointStatistics classes for detailed pass statistics.
  • New RED::RENDERING_PASS enumeration for pass based statistics.
  • Most methods of the former RED::FrameStatistics class are now found in RED::ViewpointStatistics.
  • New RED::FrameStatistics class with new high level statistics.
REDIAnimationClipController.h New file, part of the animation framework!
REDIDataManager.h

Animation framework methods

  • Added RED::IDataManager::GetAnimationClipControllersCount and RED::IDataManager::GetAnimationClipController.
  • Added RED::IDataManager::GetSkeletalAnimationClipControllersCount and RED::IDataManager::GetSkeletalAnimationClipController.
  • Added RED::IDataManager::GetSkeletalAnimationBlendersCount and RED::IDataManager::GetSkeletalAnimationBlender.
REDIGICache.h

GI replay and miscellaneous methods

  • Modified RED::IGICache::FilterEstimator: the filtering criteria uses a neighbor count rather than a search radius.
  • New RED::IGICache::GPUBuild method to construct a GI cache for GPU replay.
  • New RED::IGICache::GetEstimatorPhotonsCount and RED::IGICache::GetCacheSamplesCount query methods.
REDIImageComposite.h

Minor changes

  • Added missing RED_CIMG_FRESNEL_ALPHACOL parameter.
  • Modified RED::IImageComposite::Layered: Maximum 7 textures can be composited in one layered image.
REDILightShape.h

Light baking

  • New RED::RM_BAKED rendering mode for light baking.

New complete sky model

  • New RED::ILightShape::IsMoonLight query method.
REDIMaterial.h

Realistic material enhancements

  • Added new realistic features to RED::IMaterial::SetupRealisticMaterial.
REDIMaterialController.h

Realistic material enhancements

  • Added new #define statements for new realistic material features.

New API for setting material controller creation parameters afterwards

  • RED::IMaterialController::SetName.
  • RED::IMaterialController::SetCategory.
  • RED::IMaterialController::SetSubCategory.
  • RED::IMaterialController::SetDescription.
  • RED::IMaterialController::SetAuthor.
REDIMeshShape.h

New skinning methods

  • RED::IMeshShape::AddBone, RED::IMeshShape::GetBonesCount.
  • RED::IMeshShape::SetBoneMatrix, RED::IMeshShape::GetBoneMatrix, RED::IMeshShape::GetBoneNeutralPose, RED::IMeshShape::GetBoneName.
  • RED::IMeshShape::GetBoneParent, RED::IMeshShape::GetBoneChildrenCount, RED::IMeshShape::GetBoneChild.
  • RED::IMeshShape::SetSkinBonesCount, RED::IMeshShape::SetSkinBone.
  • RED::IMeshShape::SetSkinVerticesCount, RED::IMeshShape::SetSkinVertex.
  • RED::IMeshShape::SetBoneInfluencesCount, RED::IMeshShape::SetBoneInfluence.
  • RED::IMeshShape::InitializeSkinning, RED::IMeshShape::DoSkinning, RED::IMeshShape::ResetSkinning, RED::IMeshShape::HasSkinningData.
REDIMoonLightShape.h New file! This is the moon light source. Setup it from RED::ISkyLightShape::SetMoonLight.
REDIOTools.h

Miscellaneous

  • Added a flag to select object types loaded through RED::IOTools::Load and to RED::IOTools::Save.
  • Removed RED::IOLMT_LAMBERT_OR_PHONG, which is useless. Use RED::IOLMT_GENERIC instead.
REDISkeletalAnimationBlender.h New file, part of the animation framework!
REDISkeletalAnimationController.h New file, part of the animation framework!
REDISkyLightShape.h

New complete sky model

  • Added RED::ISkyLightShape::SetPhysicalModel, RED::ISkyLightShape::GetPhysicalModel, RED::ISkyLightShape::IsPhysicalModel: New physical day and night sky model.
  • Added RED::ISkyLightShape::SetCustomModel, RED::ISkyLightShape::GetCustomModel, RED::ISkyLightShape::IsCustomModel: User controller sky lighting model.
  • Modified RED::ISkyLightShape::CreatePhysicalSkyTexture to comply to new API.
  • Added RED::ISkyLightShape::SetSunLight, RED::ISkyLightShape::SetMoonLight: New sky model API.
  • Added RED::ISkyLightShape::ComputeSunDirection, RED::ISkyLightShape::ComputeMoonDirection: New sky model helpers.

Kept the legacy sky texture construction for backward compatibility

  • RED::ISkyLightShape::CreatePhysicalSkyTextureLegacy.
REDISoftLight.h

Miscellaneous

  • Added RED::ISoftLight::GetShape to access the shape of the light source.

New complete sky model

  • New RED::LT_MOON light type enumeration value.
REDISoftRayContext.h

Light baking changes

  • Modified RED::ISoftRayContext::PrepareLights to choose to consider baked lights or not in the calculation.

Miscellaneous

  • Added RED::ISoftRayContext::IsGlossinessAnglesOnly for glossiness angles queries.
REDISoftRenderingContext.h

GI replay and world cache

  • Added RED::ISoftRenderingContext::GetRayWorldCacheSamplesCount to access the number of samples in a GI world cache.
  • New RED::ISoftRenderingContext::IsGIEnabled to query the actual GI settings.
REDISunLightShape.h

New complete sky model

  • Removed RED::ISunLightShape::SetSun. The sun is now setup using RED::ISkyLightShape::SetSunLight.
REDIWindow.h

Miscellaneous

  • Changed the prototype of RED::IWindow::FrameTracingGICache to always supply a list of filtering positions to the method.
  • Added RED::IWindow::GetFrameStatistics to retrieve current frame statistics.
  • New RED::IWindow::SetOSHandler method to change the handle of a window during its life.
REDMath.h

Miscellaneous

  • New REDMISPower helper function.
  • Removed REDNoise. Now in RED::Noise class.
REDMutex.h New cross platform mutex class.
REDNoise.h New file! Implements Perlin and Worley noise in 2D and 3D with or without derivatives calculations.
REDOptionList.h

New options

  • New RED::OPTIONS_RAY_WORLD_CACHE_SAMPLES_COUNT: New option to choose the number of samples in a GI cache generated in world mode.
  • New RED::OPTIONS_RAY_WORLD_CACHE_SAMPLES_SPREAD: Controls the GPU spreading of GI cache samples.
  • New RED::OPTIONS_RAY_FORCE_EMBREE: Forces using Embree, regardless of the scene contents.
  • New RED::OPTIONS_RAY_TRANSPARENCY_TOLERANCE_GPU: Controls the numerical tolerance of transparency rays in GPU ray-tracing.
  • New RED::OPTIONS_FORCE_STENCIL: enable stencil buffers on auxiliary buffers.
REDQuaternion.h New file!
REDRenderShader.h

Miscellaneous

  • Modified RED::RenderShader::VertexProgramSelection and RED::RenderShader::CompositeTextureSelection for built-in shaders codepath determination.
  • Modified RED::RenderShader::SelectSingleUV: 16 textures maximum allowed.
  • New RED_LIGHT_MOON_LIGHT light source geometry and lighting target.
REDRenderShaderParameter.h

Miscellaneous

  • New RED::RenderShaderParameter::REF_RAY_ENDING_NOR_IMAGE: New GPU ray-tracing reference.
  • New RED::RenderShaderParameter::REF_RAY_WORLD_CACHE_SAMPLE_SPREAD: Reference for RED::OPTIONS_RAY_WORLD_CACHE_SAMPLES_SPREAD.
REDShaderProgramID.h Modified internal shader classification.
REDShaderString.h

Miscellaneous

  • Modified RED::ShaderString::ReadBumpMap to comply to new built-in shaders texturing capabilities.
  • Added RED::ShaderString::Tex: general texture access method for ARB programs.
REDVector3.h New RED::Vector3::Set method from double values.
REDVolumetricEffect.h Modified RED::VolumetricEffect::GetPhase: RGB wavelength phase returned.
REDVolumetricEffectBoxVolume.h Modified RED::VolumetricEffectBoxVolume::GetPhase: RGB wavelength phase returned.
REDVolumetricEffectLightVolume.h Modified RED::VolumetricEffectLightVolume::GetPhase: RGB wavelength phase returned.