REDsdk 4.0 API changes

There are several changes to consider:

File nameChange details
RED.hGeneral API update:New general return codes:New REDNet return codes:
  • All return codes from former REDNet version stored in RNET.h are now merged into RED.h.
New Embree return codes:New RNET return codes:
REDBuiltInShaders_VTBF.h
REDBuiltInShaders_VTBEF.h
REDBuiltInShaders_VTLE.h
REDBuiltInShaders_VTNF.h
REDBuiltInShaders_VTNEF.h
REDBuiltInShaders_VTNL.h
REDBuiltInShaders_VTNLPE.h
REDBuiltInShaders.h
REDBuiltInShaders_VTBE.h
REDBuiltInShaders_VTNLP.h
REDBuiltInShaders_IVSH.h
REDBuiltInShaders_VTNE.h
REDBuiltInShaders_VTLP.h
REDBuiltInShaders_VTL.h
REDBuiltInShaders_VTNLE.h
REDBuiltInShaders_VTLPE.h
Removed files. These files were containing built-in shaders, but barely usable by external applications. If you have the need for any of those, please contact us and we'll send you the necessary shader program source code.
REDCID.hNew classes CIDs:
  • New classes CID defines.
New functions:
  • RED::CID::operator != : An inequality operator.
  • RED::CID::GetKey: Access the key stored by a CID.
REDColor.hNew functions:
REDFactory.hNew objects:New functions:
REDFileSystemTools.hGeneral API update:
  • Replaced REDFileHandler by FILE*, which is already cross platform.
  • Modified all file methods accordingly.
REDFrameStatistics.hGeneral API update:
  • RED::FrameStatistics::GetSoftwareRenderStepPassCount becomes RED::FrameStatistics::GetSoftwareRenderStepPassesCount. With plural for "passes".
  • RED::FrameStatistics::GetSoftwareIICSamplesCount becomes RED::FrameStatistics::GetSoftwareGICacheSampelsCount.
REDIDataManager.hContext management:
  • Removed RED::IDataManager::CreateContext. Can't be used by a client application.
General API update:New methods and API changes:
REDIGeometryDatabase.hNew methods and API changes:
REDIGICache.hNew class:
REDIImage.hOpenGL texture access:
REDIImage2D.hGeneral API update:
REDImageTools.hNew image I/O API:
  • New RED::ImageTools image management class for saving images to disk and for reloading images from disk. See Image I/O.
REDILicense.hGeneral API update:New seat based licensing methods:
REDILightShape.hNew light sampling system:
  • Removed the RED::RM_SUN_SOFT_SHADOW_QUALITY render mode. No longer needed with the new light sampling system: See Sampling controls in REDsdk.
REDIMaterial.hGeneral API update:New functions:
REDIMeshShape.hNew primitive creation API:
REDIREDFile.hGeneral API update:
REDIResourceManager.hGeneral API update:
REDIShape.hGeneral API update:New functions:
REDISkyLightShape.hNew methods:
REDISoftBucket.hGeneral API update:
REDISoftLight.hGeneral API update:
  • RED::ISoftLight::GetAttenuation: Due to new light parsing API, no longer requires point and normal parameters.
  • Removed RED::ISoftLight::StartAdaptiveSampling, RED::ISoftLight::StartAdaptiveSamplingVolume, RED::ISoftLight::GetNextWCSSampleVolume. Replaced with RED::ISoftLight::StartSampling and a modified RED::ISoftLight::GetNextWCSSample according to new light sampling API needs.
REDISoftRayContext.hGeneral API update:
REDISoftRenderingContext.hNew functions:
REDIStream.hNew functions:
REDISunLightShape.hNew functions:
REDITextShape.hGeneral API update:
REDITransformShape.hGeneral API update:
REDIViewpointRenderList.hAnti-aliasing:
  • Removed RED::IViewpointRenderList::SetHardwareAntiAlias: Hardware anti-aliasing can't be enabled anymore on auxiliary VRLs due to global FBO migration. It must be set on the default window VRL at its creation time using the RED::WindowRenderInfo specification class.
  • New super-scaling option for the engine anti-aliasing, that greatly increase performance at the expense of more memory used: RED::IViewpointRenderList::SetEngineAntiAlias.
Rendering:Miscellaneous:New built-in render images API (used in relationship with RED::IWindow::CreateMultiRenderTargetVRL):
REDIWindow.hNew functions:General API update:
  • RED::IWindow::FrameTracingIIC is now RED::IWindow::FrameTracingGICache.
  • Removed sticky state number APIs: RED::IWindow::SetStickyStateNumber and RED::IWindow::GetStickyStateNumber. This function is now implicit in the engine and does not require any API call to be done from the client application.
  • RED::IWindow::FrameTracingGICache now uses a list of filtering position to validate samples positions for the world IIC generation mode.
REDObject.hNew function:
REDOptionList.hRemoved options:
  • RED::OPTIONS_RAY_TILE_WIDTH and RED::OPTIONS_RAY_TILE_HEIGHT. No more internal tiled rendering. All GPUs now have enough memory, making this option useless.
  • RED::OPTIONS_RAY_AUTO_SAMPLING, RED::OPTIONS_RAY_AUTO_SAMPLING_MIN, RED::OPTIONS_RAY_AUTO_SAMPLING_MAX: No more global automatic sampling options. See Sampling controls in REDsdk. Sampling is now controllable per effect.
  • RED::OPTIONS_RAY_GI_CACHE_DIRECT_CONTRIBUTION: Removed the direct lighting contribution option setup in GI caches. It did not generate good quality caches.
  • RED::OPTIONS_RAY_GI_SAMPLING_ADAPTATION and RED::OPTIONS_RAY_GI_SAMPLING_ADAPTATION_THRESHOLD. No more adaptation in REDsdk.
  • RED::OPTIONS_RAY_SAMPLING_ADAPTATION and RED::OPTIONS_RAY_SAMPLING_ADAPTATION_THRESHOLD: No more adaptation in REDsdk. See Sampling controls in REDsdk.
  • RED::OPTIONS_RAY_PHYSICAL_LIGHT_CUTOFF is replaced by the generic RED::OPTIONS_LIGHT_CUTOFF.
New options:
REDOptionsSet.hRemoved file. Was for the setup of useless REDsdk application options in the windows registry.
REDRenderLayer.hNew layers:
  • RED::LT_INDIRECT: Indirect lighting image layer.
REDRenderShader.hShader program identifiers migrated from int to RED::ShaderProgramID class. Prototype changes:API homogenization:New input parameters APIs:
REDRayGIReflectionColorShader.h
REDRayCutoffShader.h
REDRayGIDiffuseShader.h
REDRayGIRefractionColorShader.h
REDRayReflectionShader.h
REDRayRefractionShader.h
REDReflectionShader.h,
REDRenderShaderAAFilter.h,
REDRenderShaderAmbient.h,
REDRenderShaderAnisotropic.h,
REDRenderShaderEdges.h,
REDRenderShaderLambert.h,
REDRenderShaderLogo.h,
REDRenderShaderRefractionEffect.h,
REDRenderShaderSolid.h,
REDRenderShaderViewport.h
REDRenderShaderEnvironmental.h,
REDRenderShaderPhong.h,
REDRenderShaderSectionCut.h,
REDRenderShaderText.h
REDRenderShaderVertexColor.h
New shader input parameter API:
  • Migration on new shader input parameters for shader queries and modifications.
REDSoftShaderCallback.hNew return values:
  • RED::SoftShaderCallback::_out_color_indirect: Used to fill in the RED::LT_INDIRECT RED::RenderLayer.
REDShaderProgramID.hNew file:
  • RED::ShaderProgramID class. Stores a program ID, that used to be a simple integer in previous REDsdk versions.
REDShaderString.hNew functions:
REDSTL.hGeneral API update:
REDStreamingPolicy.hGeneral API update:
  • Removal of the useless STREAMING_POLICY_CALLBACK and of the related RED::StreamingPolicy::SetCallback method.
New methods:
REDThreads.hNew public cross platform multi-threading services.
REDWindowRenderInfo.hGeneral API update:
RNETAdapter.h
RNETAddress.h
RNETLog.h
RNETIMessage.h
RNETIPeer.h
RNETSystem.h
New REDNet files, migrated from the former REDNet product to REDsdk.