This is the documentation for Enlighten.
Deprecated List
Member Enlighten::API_ENLIGHTEN_PPPI_ATLAS_BLOCK_COUNT
Will be removed.
Member Enlighten::CalcMaterialGuidsLookupWorkspaceSize (const ClusterAlbedoWorkspaceMaterialData *materialData)
Gets the size in bytes of the temporary workspace buffer which must be passed to Albedo handling functions which use instance, mesh and material GUIDs. Note that the memory must be 8-byte aligned.
Member Enlighten::GetInstanceGuids (const ClusterAlbedoWorkspaceMaterialData *materialData, Geo::GeoGuid *pInstanceGuids)
Gets the GUIDs of instances in a system.
Member Enlighten::GetMaterialGuids (const ClusterAlbedoWorkspaceMaterialData *materialData, Geo::GeoGuid instanceGuid, Geo::GeoGuid meshGuid, Geo::GeoGuid *pMaterialGuids)
Gets the GUIDs of materials in a system, optionally filtered to a specific instance and/or a specific mesh.
Member Enlighten::GetMeshGuids (const ClusterAlbedoWorkspaceMaterialData *materialData, Geo::GeoGuid instanceGuid, Geo::GeoGuid *pMeshGuids)
Gets the GUIDs of meshes in a system, optionally filtered to a specific instance.
Member Enlighten::GetNumInstanceGuids (const ClusterAlbedoWorkspaceMaterialData *materialData)
Gets the number of instances in a system.
Member Enlighten::GetNumMaterialGuids (const ClusterAlbedoWorkspaceMaterialData *materialData, Geo::GeoGuid instanceGuid, Geo::GeoGuid meshGuid)
Gets the number of material GUIDs in a system, optionally filtered to a specific instance and/or a specific mesh.
Member Enlighten::GetNumMeshGuids (const ClusterAlbedoWorkspaceMaterialData *materialData, Geo::GeoGuid instanceGuid)
Gets the number of mesh GUIDs in a system, optionally filtered to a specific instance.
Member Enlighten::InitialiseMaterialAlbedoAsDynamic (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, void *workspaceMemory)
This function is replaced by InitialiseMaterialDynamicity. Initialise a material albedo component in the DynamicMaterialWorkspace as dynamic. This is used to distinguish dynamic material values from static values when initialising or reconstructing the AlbedoBuffer. If a material albedo component is not initialised as dynamic, any calls to SetMaterialAlbedoColour() will require the AlbedoBuffer to be re-initialised.
Member Enlighten::InitialiseMaterialAlbedoAsStatic (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, void *workspaceMemory)
This function is replaced by InitialiseMaterialDynamicity. Initialise a material albedo component in the DynamicMaterialWorkspace as static. This is used to distinguish dynamic material values from static values when initialising or reconstructing the AlbedoBuffer. If a material albedo component is not initialised as dynamic, any calls to SetMaterialAlbedoColour() will require the AlbedoBuffer to be re-initialised.
Member Enlighten::InitialiseMaterialEmissiveAsDynamic (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, void *workspaceMemory)
This function is replaced by InitialiseMaterialDynamicity. Initialise a material emissive component in the DynamicMaterialWorkspace as dynamic. This is used to distinguish dynamic material values from static values when initialising or reconstructing the EmissiveBuffer. If a material emissive component is not initialised as dynamic, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised.
Member Enlighten::InitialiseMaterialEmissiveAsStatic (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, void *workspaceMemory)
This function is replaced by InitialiseMaterialDynamicity. Initialise a material emissive component in the DynamicMaterialWorkspace as static. This is used to distinguish dynamic material values from static values when initialising or reconstructing the EmissiveBuffer. If a material emissive component is not initialised as dynamic, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised.
Member Enlighten::InitialiseMaterialTransparencyAsDynamic (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, void *workspaceMemory)
This function is replaced by InitialiseMaterialDynamicity. Initialise a material transparency component in the DynamicMaterialWorkspace as dynamic. This is used to distinguish dynamic material values from static values when initialising or reconstructing the TransparencyBuffer. If a material component is not initialised as dynamic, any calls to SetMaterialTransparency() will require the TransparencyBuffer to be re-initialised.
Member Enlighten::InitialiseMaterialTransparencyAsStatic (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, void *workspaceMemory)
This function is replaced by InitialiseMaterialDynamicity. Initialise a material transparency component in the DynamicMaterialWorkspace as static. This is used to distinguish dynamic material values from static values when initialising or reconstructing the TransparencyBuffer. If a material component is not initialised as dynamic, any calls to SetMaterialTransparency() will require the TransparencyBuffer to be re-initialised.
Member Enlighten::InputWorkspaceDebugPoint::m_Albedo [3]
Gamma 2.0 corrected RGB 8-bit albedo. See replacement API GetDebugAlbedoValue()
Member Enlighten::InputWorkspaceDebugPoint::m_AreaLightId
The area light ID associated with this duster point. See replacement API GetDebugEmissiveValue()
Member Enlighten::InputWorkspaceDebugPoint::m_LightValue [3]
The lit value in RGB (linear space). This is only stored per cluster, so each point will be assigned the lighting values for its whole cluster.
Member Enlighten::IPrecompPackedInstance::GetInstanceIdx () const
Please use GetInstanceId() instead, which returns the same value but is more accurately named.
Member Enlighten::IPrecompSystemDependencies::SaveAsXml (Geo::IGeoStream &outStream, const Geo::GeoArray< IPrecompPackedSystem * > &systems) const =0
Functions to save to XML, given an output stream and a set of PackedSystems to get the system names from, as we don't store that.
Member Enlighten::IPrecompute::ProjectGeometry (const IPrecompInputGeometry *pInputGeometry, Geo::IGeoProgressProxy *progress, IPrecompPackedGeometry *&oGeometry)=0
Please use the 5-argument overloaded version of ProjectGeometry() instead. Project detail meshes in an IPrecompInputGeometry onto an IPrecompPackedGeometry This is guaranteed not to change the IPrecompPackedGeometry in any way, so can be done after a precompute to get new UVs for a detail mesh that was not known about when the last precompute was run.
Member Enlighten::IUpdateManager::AllocateCubeMap (const RadCubeMapCore *coreData)
The outputTexture argument is now required. Allocate a cube map. This will add the cube map to the update manager's list but it must be separately added to the worker's copy via EnqueueAddCubeMap().
Member Enlighten::IUpdateManager::AllocateDynamicObject (const Enlighten::DynamicObject &dynamicObjectDesc, bool useVolumeTextures)=0
Allocate a dynamic object. This will add the object to the update manager's list but it must be separately added to the worker's copy via EnqueueAddDynamicObject.
Member Enlighten::IUpdateManager::AllocateProbeSet (const RadProbeSetCore *coreData, bool useU8Output, const Geo::v128 *probePositions, Enlighten::eSHOrder shOrder, RawBuffer output=RawBuffer())=0
The probePositions argument is deprecated. Allocate a probe set object. Pointer parameters that are are owned by the caller may be read (and output may be written) any time after EnqueueAddProbeSet and before the completion of the async RemoveProbeSet command.
Member Enlighten::IUpdateManager::AllocateSystemSolutionSpace (const RadSystemCore *coreData, IGpuTexture *outputTextures[ENLIGHTEN_NUM_OUTPUT_TEXTURE_TYPES], eOutputFormat irradianceTextureFormat)
The irradianceTextureFormat argument is deprecated.
Member Enlighten::IUpdateManager::GetDynamicObjectTexture (Geo::GeoGuid objectId, Geo::s32 channel) const =0
Gets the output texture of the given channel for the given dynamic object (typically, so the application can use it for final rendering)
Member Enlighten::IUpdateManager::IsCubeMapStatic (Geo::GeoGuid cubeMapId) const =0
Returns true if the cube map update counter is 0 (ie no updates are pending for this cube map).
Member Enlighten::IUpdateManager::IsProbeSetStatic (Geo::GeoGuid probeSetId) const =0
Returns true if the probe set update counter is 0 (ie no updates are pending for this probe set).
Member Enlighten::IUpdateManager::IsSystemStatic (Geo::GeoGuid systemId) const =0
Returns true if the system update counter is 0 (ie no updates are pending for this system).
Member Enlighten::IUpdateManager::SetGpuTexture (Geo::GeoGuid cubeMapId, IGpuTexture *gpuTexture)=0
Sets an output texture for the given cube map - used instead of the IGpuTextureAllocator interface This must be called before a cubemap has a radiosity update enqueued.
Member Enlighten::IUpdateManager::SetGpuTexture (Geo::GeoGuid systemId, OutputTextureType textureType, IGpuTexture *gpuTexture)=0
Sets an output texture for the given system - used instead of the IGpuTextureAllocator interface This must be called before a system has a radiosity update enqueued.
Member Enlighten::IUpdateManager::SetGpuTexture (Geo::GeoGuid objectId, ProbeVolumeOutputTextureType textureType, IGpuTexture *gpuTexture)=0
Sets an output texture for the given dynamic object - used instead of the IGpuTextureAllocator interface This must be called before a probe volume has a radiosity update enqueued.
Member Enlighten::PrecompInputFace::m_ChartTag
A tag that can be assigned to each face to identify the chart that the face is a part of. If multiple faces within the same chart have conflicting m_ChartTag values, the value assigned to the chart will be the value present on the majority of the faces of that chart.
Member Enlighten::ReadInputLightingBufferFromFile (const char *filename)
Read an InputLightingBuffer from file.
Member Enlighten::REMOVE_UPDATES_AND_INPUT
Free the data required to update the system, disable updates, and free the input lighting buffer, so no probe sets, cube maps or systems can receive light from the system.
Member Enlighten::SetMaterialAlbedoColour (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, const Geo::v128 &newAlbedoColour, void *workspaceMemory)
Please use the overload which takes a SurfaceSelection. Set the colour of a material within the DynamicMaterialWorkspace. If the material has been previously setup as dynamic (using InitialiseMaterialAlbedoAsDynamic()), the AlbedoBuffer will need updating using UpdateAlbedoBuffer(). If the material is static however, the AlbedoBuffer will need re-initialising using InitialiseAlbedoBufferFromMaterialWorkspace().
Member Enlighten::SetMaterialEmissiveColour (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, const Geo::v128 &newEmissiveColour, void *workspaceMemory)
Please use the overload which takes a SurfaceSelection. Set the emissive colour of a material within the DynamicMaterialWorkspace. If the material has been previously setup as dynamic (using InitialiseMaterialEmissiveAsDynamic()), the EmissiveBuffer will need updating using UpdateEmissiveBuffer(). If the material is static however, the EmissiveBuffer will need re-initialising using InitialiseEmissiveBufferFromMaterialWorkspace().
Member Enlighten::SetMaterialTransparency (DynamicMaterialWorkspace *materialWorkspace, const Enlighten::ClusterAlbedoWorkspaceMaterialData *materialData, const Geo::GeoGuid &instanceGuid, const Geo::GeoGuid &meshGuid, const Geo::GeoGuid &materialGuid, float newTransparency, void *workspaceMemory)
Please use the overload which takes a SurfaceSelection. Set the transparency of a material within the DynamicMaterialWorkspace. If the material has been previously setup as dynamic (using InitialiseMaterialTransparencyAsDynamic()), the TransparencyBuffer will need updating using UpdateTransparencyBuffer(). If the material is static however, the TransparencyBuffer will need re-initialising using InitialiseTransparencyBufferFromMaterialWorkspace().
Member Enlighten::SetSamplePositions (const InputWorkspace *inputWorkspace, TransparencyWorkspace *transparencyWorkspace, float offset, bool forceUpdate)
Set the additional (to the one calculated during precompute) offset for sample positions of a transparency workspace. Since the offsets are calculated during precompute, there should be no need to call this API
Member Enlighten::SystemAlbedoData::m_OnDoneCallbackFunction
A Callback which is executed when the Albedo/Emissive buffers have been updated. This callback could be called from any thread so care must be taken to ensure thread safety.
Member Enlighten::UpdateManagerProperties::m_TextureAllocator
Optional allocator for GPU output textures. Please provide textures directly to IUpdateManager::AllocateSystem or IUpdateManager::AllocateCubeMap.
Member Enlighten::WriteInputWorkspaceForInPlace (const InputWorkspace *inputWorkspace, Geo::IGeoStream &stream, Geo::EConvertEndianMode endianMode, Geo::ePlatform platform)
Parameter 'platform' is deprecated.
Member Enlighten::WriteRadProbeSetCoreForInPlace (const RadProbeSetCore *probeSet, Geo::IGeoStream &stream, Geo::EConvertEndianMode endianMode, Geo::u32 sections)
Parameter 'sections' is deprecated.
Member Geo::GeoArray< T >::Clone (const GeoArray &srcArray)
Assignment that returns a success/fail this->Clone(this) returns true
Member Geo::GeoArray< T >::Clone (const GeoArray< CompatT > &srcArray)
Assignment that returns a success/fail this->Clone(this) returns true
Member Geo::GeoFindBestBlockSize (Geo::s32 textureWidth, Geo::s32 textureHeight)
Use this function if you are unsure what block size to use. These values should give the best results at the given resolution, but your mileage may vary depending on your geometry. Will return 0 if the dimensions you gave were invalid.
Member Geo::GeoFlattenAndPack (AtlasMesh *inputMesh, const AtlasMeshPackingFlags &packParams, IGeoProgressProxy *progress, GeoFlattenAndPackResults *results)
This parameterizes a mesh into charts and packs them.
Member Geo::GeoScaleCharts (AtlasMesh *mesh, float totalGeomSurfaceArea)
This takes the charts of a mesh and scales them relative to their 3D size.
Member Geo::IffWriter::IsWriterOk () const
Prefer to use the IGeoStream::IsOk() method