Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

NameDescription
const Geo::u64 DEFAULT_WORKER_THREAD_AFFINITY = Geo::g_MaxU64

Constant defining the default affinity for the worker thread of a MultithreadCpuWorker.

const float g_DependencyVisibilityThresholdDefault = 1.f / (1 << 8)

By default, do not consider a system as a dependency if its visibility is smaller than this threshold.

const Geo::s32 g_MaxLightDataStackDepth = 6

This is the number of copies of lightcount pointers we have in the LightDataStack member of InputWorkspaceData in the lighting internals.

const Geo::u32 g_OctreeProbeBorder = 0xfffffffe0xfffffe

This probe index refers to a border probe.

const Geo::u32 g_OctreeProbeCulled = 0xffffffff0xffffff

This probe index refers to a culled probe.

const Geo::u32 g_OctreeProbeIndexMask = 0x7fffffff

Mask the bits which contain an index into the probe set.

const Geo::u32 g_RadMagicNumber = 0xAD105174

Arbitrary number that is used to check that the object is of correct type (and endian-ness).

const Geo::v128 g_VFalloffInvSamples = Geo::VBroadcast(1.0f / (InputLightFalloffTable::g_SampleCount - 2.0f))

Light falloff constants for the function: index = (((samples - 1.0) / (samples - 2.0)) / (1.0 / (samples - 2.0) + d * d);.

const Geo::v128 g_VFalloffNumSamples = Geo::VBroadcast(float(InputLightFalloffTable::g_SampleCount))

Light falloff constants for the function: index = (((samples - 1.0) / (samples - 2.0)) / (1.0 / (samples - 2.0) + d * d);.

const Geo::v128 g_VFalloffSampleFraction = Geo::VBroadcast((InputLightFalloffTable::g_SampleCount - 1.0f) / (InputLightFalloffTable::g_SampleCount - 2.0f))

Light falloff constants for the function: index = (((samples - 1.0) / (samples - 2.0)) / (1.0 / (samples - 2.0) + d * d);.

const Geo::s32 INFINITE_UPDATES = -1

Set the update counter for a system to this value to request continuous updates.

void *const LIGHT_VISIBILITY_DISABLED = (void*)1

Equivalent to light visibility data with all bits set to 0.

const PppiProbeSetHandle PppiProbeSetHandleInvalid = PppiProbeSetHandle(-1)

A special handle value indicating an invalid handle.

const WorldAxis WorldAxisInvalid = WorldAxis(6)

A special value indicating an invalid world axis.

...

NameDescription
AddCachedValuesToInputWorkspace(const InputWorkspace *, InputLightingBuffer *, const InputLightingBuffer *)

Adds light values from one input lighting buffer to another.

AddDusterValuesToInputWorkspace(const InputWorkspace *, InputLightingBuffer *, const Geo::v128 *)

Adds light values laid out in a duster block to an Enlighten input workspace.

AddDusterValuesToInputWorkspace(const InputWorkspace *, Enlighten::IncidentLightingBuffer *, const Geo::v128 *)

Adds light values laid out in a duster block to an Enlighten input workspace.

AllLightingInputsStatic(const InputLightingBuffer **, Geo::s32, const InputLightingBuffer *)

Returns the number of frames since the last update that changed any of the given light inputs.

AllocateDataBlockContents(RadDataBlock *)

Allocate memory for a RadDataBlock based on the block's m_Length member and required alignment.

ApplyVolumeTransparency(const InputWorkspace *, TransparencyWorkspace *, const BoxVolume &)

Mark the quads transparency value using a box volume.

ApplyVolumeTransparency(const InputWorkspace *, TransparencyWorkspace *, const SphereVolume &)

Mark the quads transparency value using a sphere volume.

Area(const Vertex2D &, const Vertex2D &, const Vertex2D &)

Computes the unsigned area of a triangle defined by three Vertex2D.

AreaSign(const Vertex2D &, const Vertex2D &, const Vertex2D &)

Determines the sign of the area of a triangle defined by three Vertex2D.

AreaTimesTwo(const Vertex2D &, const Vertex2D &, const Vertex2D &)

Computes the unsigned area of a triangle defined by three Vertex2D multiplied by two.

CalcAlbedoBufferSize(const Enlighten::InputWorkspace *)

Calculate the size of the AlbedoBuffer for a system.

CalcBounceBufferSize(const Enlighten::InputWorkspace *, PrecisionHint::Value)

Tells you the amount of memory required to hold bounce lighting for a given system.

CalcDirectionalIrradianceMemory(const Enlighten::RadSystemCore *)

Tells you how much memory in a RadSystemCore is used by the directional irradiance technique.

CalcDirectionPaletteSize()

Tells you how much memory is required to create a DirectionPalette, which is a required input to an Enlighten::EntireProbeSetTask.

CalcDynamicMaterialWorkspaceSize(const ClusterAlbedoWorkspaceMaterialData *)

Calculate the size of the DynamicMaterialWorkspace.

CalcEmissiveBufferSize(const Enlighten::InputWorkspace *)

Calculate the size of the EmissiveBuffer for a system.

CalcEnvironmentInputLightingBufferSize(Geo::s32, PrecisionHint::Value)

Tells you the amount of memory required to hold input lighting for a given environment resolution.

CalcIncidentLightingBufferSize(const Enlighten::InputWorkspace *, PrecisionHint::Value)

Tells you the amount of memory required to hold incident lighting for a given system.

CalcInputLightingBufferSize(const InputWorkspace *, PrecisionHint::Value)

Tells you the amount of memory required to hold input lighting for a given system.

CalcIrradianceMemory(const Enlighten::RadSystemCore *)

Tells you how much memory in a RadSystemCore is used by the irradiance technique.

CalcLightTableMem(Geo::u32)

Calculate the maximum memory required to hold the lights table.

CalcLightValueSize(PrecisionHint::Value)

Return the size of the light value given the precision hint.

CalcLightVisibilitySize(const InputWorkspace *, Enlighten::VisibilityFormat::Type)

Determine how much memory is required for a light visibility block.

CalcLightVisibilitySize(const InputWorkspace *, eLightType)

Determine how much memory is required for a light visibility block.

CalcNumEnvironmentLightValues(Geo::s32)

Returns the total number of values in the emissive environment cluster tree.

CalcPrecomputedVisibilityWorkspaceSize(const InputWorkspace *, const PrecomputedVisibilityData *)

Determine how much memory is required for a precomputed visibility workspace.

CalcRadCubeMapCoreTotalMemory(const Enlighten::RadCubeMapCore *)

Tells you how much memory in total is used by a RadCubeMapCore.

CalcRadProbeSetCoreTotalMemory(const Enlighten::RadProbeSetCore *)

Tells you how much memory in total is used by a RadProbeSetCore.

CalcRadSystemCoreTotalMemory(const Enlighten::RadSystemCore *)

Tells you how much memory in total is used by a RadSystemCore.

CalcRectangleLightAreaNormalisation(float, float, float)

Returns an intensity normalisation factor for area lights.

CalcRectangleLightMinEdgeLength(float)

Returns a minimum edge length for rectangular lights that should minimise noise from float precision.

CalcRequiredPersistentDataSize(const Enlighten::RadSystemCore *)

Tells you how much memory is required for the intermediate bounce output data for this radiosity core.

CalcRequiredScratchSpaceMemory(InputLightBase **, Geo::u32)

Calculate how much scratchspace memory will be required by the DoDirectInputLighting() function given the lights to be shaded.

CalcRequiredScratchSpaceMemoryInternal(InputLightBase **, Geo::u32, Geo::s32)

Calculate how much scratchspace memory will be required by the DoDirectInputLighting() function given the lights to be shaded.

CalcRequiredWorkspaceMemory(const RadCubeMapCore *)

Tells you how much workspace memory is required by SolveCubeMapTask to solve a specific cube map.

CalcTransparencyBufferSize(const Enlighten::InputWorkspace *)

Calculate the size of the TransparencyBuffer for a system.

CalcTransparencyWorkspaceSize(const InputWorkspace *, Geo::s32, PrecisionHint::Value)

Tells you the amount of memory required for the transparency workspace for a given system.

CalcTransparencyWorkspaceSize(const InputWorkspace *, Geo::s32, Geo::s32, PrecisionHint::Value)

Tells you the amount of memory required for the transparency workspace for a given system.

CalculateCoordLinearShiftedByHalfPixel(float, float, Geo::s32, Geo::s32, Geo::s32 &, Geo::s32 &, float &, float &)

Shift by half pixel is needed so that the interpolation code (SampleBilinear) interpolates between correct pixels.

CalculateLightsCachedDataSize(InputLightBase **, Geo::u32)

Calculate the size of the cached lighting data.

CalculateUvMappingError(Geo::s32, const Geo::GeoPoint2 *, const Enlighten::MergeMap *, const Enlighten::MergeGeometry *)

Calculate an error of the UV mapping for a given group.

CalculateUvOverlap(Geo::s32, const Geo::GeoPoint2 *, const Enlighten::MergeMap *, const Enlighten::MergeGeometry *, Geo::s32, float &, float &, float &, float &)

Calculate an overlap of the UV mapping for a given group.

CalculateUvScaleAndWorldOutputPixelSize(float, const Geo::Matrix &, bool, float, Geo::s32 &, float &)

Utility to calculate the correct UV scaling and world-space output pixel size for a given instance of a given geometry.

ChooseUVSet(const Geo::GeoPoint2 *, const Geo::GeoPoint2 *, Geo::s32, const Enlighten::MergeMap *, const Enlighten::MergeGeometry *)

Use the above functions to determine which set of uv is better.

ClearInputWorkspace(const InputWorkspace *, InputLightingBuffer *)

Clear the input lighting to black.

CombineGroups(MergeMap *, MergeStats *, const MergeGeometry *, const MergeProcessParams *, Geo::GeoProgress &)

The tri group merge finding algorithm.

CompareBounceBuffers(Geo::Statistics &, const Enlighten::BounceBuffer *, const Enlighten::BounceBuffer *)

Compares Returns true if the bounce buffers could be compared.

CompareIncidentLightingBuffers(Geo::Statistics &, const Enlighten::IncidentLightingBuffer *, const Enlighten::IncidentLightingBuffer *)

Compares Returns true if the lighting buffers could be compared.

CompareInputLightingBuffers(Geo::Statistics &, const InputLightingBuffer *, const InputLightingBuffer *)

Compares Returns true if the lighting buffers could be compared.

CompareIrradianceOutputBuffers(Geo::Statistics &, Geo::Statistics &, const Enlighten::IrradianceOutputDesc &, const Enlighten::IrradianceOutputDesc &)

Compares a pair of Enlighten irradiance outputs.

ComputePppiAtlasMaxima(Geo::u32, const PrecompOctreeCode *, const PppiAtlasFootprint *)

Return the maximum number of atlas tiles and probes that may be concurrently allocated for the given combination of probe sets.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::InputLightingBuffer *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::IncidentLightingBuffer *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::AlbedoBuffer *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::DynamicMaterialWorkspace *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::PrecomputedVisibilityData *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::InputWorkspace *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadCubeMapMetaData *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadProbeSetMetaData *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::InputWorkspaceMetaData *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::ClusterAlbedoWorkspaceMaterialData *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadSystemCore *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadCubeMapCore *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadProbeSetCore *)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadDataBlock &)

Converts the endian format of a runtime object.

ConvertEndian(Geo::EConvertEndianMode, Enlighten::RadSystemMetaData *)

Converts the endian format of a runtime object.

ConvertEndianDataBlock(Geo::EConvertEndianMode, RadDataBlock &)

Byte-swap the members of RadDataBlock depending on the specified endian mode.

ConvertInputSystemToIPrecompGeneratedSystem(Enlighten::IPrecompInputSystem *, const IPrecompInputGeometry *const *, Geo::s32, Enlighten::IPrecompGeneratedSystems *&)

Create an IPrecompGeneratedSystems object from inputSystem.

ConvertToDxgiFormat(TextureFormat)

Helper function to convert from platform independent Enlighten::TextureFormat to DXGI texture format.

CopyAlbedoBufferBuffer(const Enlighten::InputWorkspace *, const Enlighten::AlbedoBuffer *)

Copy an InputLightingBuffer object.

CopyDataBlock(const RadDataBlock *, RadDataBlock *)

Copy contents of a RadDataBlock.

CopyDynamicMaterialWorkspaceBuffer(const Enlighten::InputWorkspace *, const Enlighten::DynamicMaterialWorkspace *)

Copy an DynamicMaterialWorkspace object.

CopyEmissiveBuffer(const Enlighten::InputWorkspace *, const Enlighten::EmissiveBuffer *)

Copy an InputLightingBuffer object.

CopyIncidentLightingBuffer(const Enlighten::InputWorkspace *, const Enlighten::IncidentLightingBuffer *)

Copy an IncidentLightingBuffer object.

CopyInputLightingBuffer(const Enlighten::InputWorkspace *, const Enlighten::InputLightingBuffer *)

Copy an InputLightingBuffer object.

CopyRadCubeMapCore(const Enlighten::RadCubeMapCore *, Enlighten::RadCubeMapCore *)

Copies a RadCubeMapCore.

CopyRadSystemCore(const Enlighten::RadSystemCore *, Enlighten::RadSystemCore *)

Copies a RadSystemCore.

CreateAlbedoBuffer(const Enlighten::InputWorkspace *, void *)

Create an AlbedoBuffer for a system.

CreateBake()

Create an instance of Enlighten Bake interface.

CreateBounceBuffer(void *, const Enlighten::InputWorkspace *, PrecisionHint::Value)

Construct a BounceBuffer inside the memory provided.

CreateCompositeMaterialId(Geo::u16, Geo::u16, Geo::u32)

Determine the specific material ID for a given instance, mesh and 32-bit material ID.

CreateDebugEnvironmentClustering(Geo::s32)

Creates a debug IClusteringOutput interface representing the clustering of an environment at the given resolution.

CreateDirectionPalette(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::s8 *, void *)

Create a Direction Palette for use with an EntireProbeSetTask.

CreateDynamicMaterialWorkspace(const ClusterAlbedoWorkspaceMaterialData *, void *)

Create a DynamicMaterialWorkspace which is used for dynamic updates of material colours at runtime.

CreateEmissiveBuffer(const Enlighten::InputWorkspace *, void *)

Create an EmissiveBuffer for a system.

CreateEnvironmentInputLightingBuffer(void *, Geo::s32, PrecisionHint::Value)

Construct an InputLightingBuffer inside the memory provided.

CreateIncidentLightingBuffer(void *, const Enlighten::InputWorkspace *, PrecisionHint::Value)

Construct an IncidentLightingBuffer inside the memory provided.

CreateInputLightingBuffer(void *, const InputWorkspace *, PrecisionHint::Value)

Construct an InputLightingBuffer inside the memory provided.

CreatePrecompute()

Create an instance of the Precompute.

CreatePrecomputedVisibilityWorkspace(void *, const InputWorkspace *, const PrecomputedVisibilityData *)

Construct an PrecomputedVisibilityWorkspace inside the memory provided.

CreateSortedLights(InputLightBase **, void **, Geo::s32, void *, size_t, Geo::u32 &)

Create the buffer of lights sorted by type.

CreateTransparencyBuffer(const Enlighten::InputWorkspace *, void *)

Create a TransparencyBuffer for a system.

CreateTransparencyWorkspace(void *, const InputWorkspace *, Geo::s32, Geo::s32, PrecisionHint::Value)

Construct an TransparencyWorkspace inside the memory provided.

CreateTransparencyWorkspace(void *, const InputWorkspace *, Geo::s32, PrecisionHint::Value)

Construct an TransparencyWorkspace inside the memory provided.

CreateTriGroupsForPrecompInputMesh(const IPrecompInputMesh *)

Utility to create the tri group structure defined by the input mesh.

CyclesToMillisecond(Geo::s64)

Helper function to convert CPU cycles to milliseconds.

CyclesToSeconds(Geo::s64)

Helper function to convert CPU cycles to seconds.

DecodeWorldAxisDimension(WorldAxis)

Return the index of the axis to which the specified axis aligned unit vector is oriented.

DecodeWorldAxisSign(WorldAxis)

Return the sign of the axis to which the specified axis aligned unit vector is oriented.

DeleteAlbedoBuffer(Enlighten::AlbedoBuffer *&)

Free an AlbedoBuffer object, and all the memory it owns.

DeleteClusterAlbedoWorkspaceMaterialData(Enlighten::ClusterAlbedoWorkspaceMaterialData *&)

Free an ClusterAlbedoWorkspaceMaterialData object, and all the memory (RadDataBlocks) it owns.

DeleteDynamicMaterialWorkspace(Enlighten::DynamicMaterialWorkspace *&)

Free an DynamicMaterialWorkspace object, and all the memory it owns.

DeleteEmissiveBuffer(Enlighten::EmissiveBuffer *&)

Free an EmissiveBuffer object, and all the memory it owns.

DeleteIncidentLightingBuffer(Enlighten::IncidentLightingBuffer *&)

Free an IncidentLightingBuffer object, and all the memory it owns.

DeleteInputLightingBuffer(Enlighten::InputLightingBuffer *&)

Free an InputLightingBuffer object, and all the memory it owns.

DeleteInputWorkspace(Enlighten::InputWorkspace *&)

Free an InputWorkspace object, and all the memory (RadDataBlocks) it owns.

DeletePrecomputedVisibilityData(Enlighten::PrecomputedVisibilityData *&)

Free a PrecomputedVisibilityData object, and all the memory (RadDataBlocks) it owns.

DeleteRadCubeMapCore(Enlighten::RadCubeMapCore *&)

Free a RadCubeMapCore object, and all the memory (RadDataBlocks) it owns.

DeleteRadProbeSetCore(Enlighten::RadProbeSetCore *&)

Free a RadProbeSetCore object, and all the memory (RadDataBlocks) it owns.

DeleteRadSystemCore(Enlighten::RadSystemCore *&)

Free a RadSystemCore object, and all the memory (RadDataBlocks) it owns.

DeleteTransparencyBuffer(Enlighten::TransparencyBuffer *&)

Free a TransparencyBuffer object, and all the memory it owns.

Distance(const Vertex2D &, const Vertex2D &)

Computes the distance between two Vertex2D.

DistanceSquare(const Vertex2D &, const Vertex2D &)

Computes the squared distance between two Vertex2D.

DoDebugColouring(const Enlighten::RadDebugColouringTask *)

Write debugging colours to an output texture.

DoDirectInputLighting(DirectInputLightingParameters *, void *, size_t, Geo::u32 &)

Do the Direct input lighting stage.

DoDirectInputLightingInternal(DirectInputLightingParameters *, void *, size_t, TransformOp)

Do the internal direct input lighting stage.

DoesInputWorkspaceHaveProjectionData(const InputWorkspace *)

Simple test to see if projection data is available.

DoIndirectInputLighting(IndirectInputLightingParameters *, Geo::u32 &)

Do the indirect input lighting stage.

DoIndirectInputLightingInternal(IndirectInputLightingInternalParameters< MaterialSamplerType, InputLightingSurroundingsType, GeometryTransparencySamplerType > *)

Do the internal indirect input lighting stage.

EncodeRGBM(float *, float)

Utility function for converting floating point values to the RGBM format.

EncodeWorldAxis(Geo::Dimension3, Geo::Sign)

Return the axis aligned unit vector oriented with the specified axis and sign.

EnqueueCommand(IUpdateManager *, CommandType &&)

Enqueues a command.

EnqueueFunctorCommand(IUpdateManager *, Functor &&)

Enqueue a functor object or lambda expression as a command with no arguments.

EnqueueSetObjectParameter(IUpdateManager *, Geo::GeoGuid, void(ObjectType::*)(ParamType), ArgType &&)

Enqueues a command to set a parameter on an object on the worker thread.

EnqueueSetObjectParameter(IUpdateManager *, ObjectType *, void(ObjectType::*)(ParamType), ArgType &&)

Enqueues a command to set a parameter on an object on the worker thread.

EnqueueSetObjectParameter(IUpdateManager *, ObjectType *, void(ObjectType::*)(const ParamType &), ArgType &&)

Enqueues a command to set a parameter on an object on the worker thread.

EnqueueSetObjectParameter(IUpdateManager *, Geo::GeoGuid, void(ObjectType::*)(const ParamType &), ArgType &&)

Enqueues a command to set a parameter on an object on the worker thread.

EnqueueWorkerCommand(IUpdateManager *, typename FunctionPointer1< Param1Type >::CallbackType, Param1Type)

Enqueue function pointer 1 param.

EnqueueWorkerCommand(IUpdateManager *, typename FunctionPointer3< FunctionPointer2< Param1Type, Param2Type , Param3Type >::CallbackType, Param1Type, Param2Type, Param3Type)

Enqueue function pointer 3 2 param.

EnqueueWorkerCommand(IUpdateManager *, typename FunctionPointer4< Param1Type, Param2Type, Param3Type, Param4Type >::CallbackType, Param1Type, Param2Type, Param3Type, Param4Type)

Enqueue function pointer 4 param.

EnqueueWorkerCommand(IUpdateManager *, typename FunctionPointer5< Param1Type, Param2Type, Param3Type, Param4Type, Param5Type >::CallbackType, Param1Type, Param2Type, Param3Type, Param4Type, Param5Type)

Enqueue function pointer 5 param.

EnqueueWorkerCommand(IUpdateManager *, FunctionPointer0::CallbackType)

A command that holds a reference to its movable parameter.

EnqueueWorkerCommand(IUpdateManager *, typename FunctionPointer2< FunctionPointer3< Param1Type, Param2Type, Param3Type >::CallbackType, Param1Type, Param2Type, Param3Type)

Enqueue function pointer 2 3 param.

EnqueueWorkerFunctorCommand(IUpdateManager *, Functor &&)

Enqueue a functor object or lambda expression as a worker command.

EstimateSystemDependencies(const Enlighten::InstanceDescMinimal< IPrecompPackedGeometry > *, Geo::s32, const Enlighten::SystemGrouping *, Enlighten::SystemDependencies *&)

Estimate the dependencies between a set of systems.

EstimateSystemDependencies(const Enlighten::InstanceDescMinimal< IPrecompInputGeometry > *, Geo::s32, const Enlighten::SystemGrouping *, Enlighten::SystemDependencies *&)

Estimate the dependencies between a set of systems.

ExtractOctreeDisplacedProbes(const RadProbeSetCore *, Geo::v128 *, Geo::u32)

Extract the first n displaced probe positions within the specified RadProbeSetCore.

ExtractOctreeProbePositions(const RadProbeSetCore *, Geo::v128 *, Geo::u32)

Extract the first n probe positions within the specified RadProbeSetCore.

FindDebugClusterInfo(RadDebugPixelInfo *, Geo::s32, const RadSystemCore *)

Fill in a RadDebugPixelInfo for a specified leaf cluster index (for internal debugging purposes).

FindDebugPixelInfo(RadDebugPixelInfo *, float, float, const RadSystemCore *, const ILightTransportOutput *)

Fill in a RadDebugPixelInfo for a specified UV coordinate (for internal debugging purposes).

FindProbeSetOctreeNode(const RadProbeSetCore *, Geo::v128, Geo::u32)

Returns a search result containing information about the node containing the specified point.

FreeDataBlockContents(RadDataBlock *)

Free a RadDataBlock object, and all the memory it owns.

FreezeEntireProbeSetTask(const Enlighten::EntireProbeSetTask *, void *, Geo::u32 &, Geo::u32 &)

The temporal coherence optimization - if used - requires that all probe sets are kept in sync, so that no changes in lighting are missed.

FreezeInputLightingBuffer(InputLightingBuffer *)

The temporal coherence optimisation - if used - requires that all systems are kept in sync, so that no changes in lighting are missed.

FreezeIrradianceTask(const Enlighten::RadIrradianceTask *, void *, Geo::u32 &, Geo::u32 &, const InputLightingBuffer *)

The temporal coherence optimization - if used - requires that all systems are kept in sync, so that no changes in lighting are missed.

GenerateCachedData(SortedLights *, InputLightBase *, void **)

Go through all the sorted lights generating the CachedData for each. Also modifies sortedLights to point to the cached data.

GenerateCachedDataGeneric(SortedLights *, InputLightBase *, void **)

Generate the CacheData for a specific light type.

GenerateCachedDataGeneric< LIGHT_TYPE_INVALID >(SortedLights *, InputLightBase *, void **)

Specialisation for invalid light types - does nothing.

GenerateInverseSquaredLightFalloffTable(InputLightFalloffTable *, float, float)

Helper function that generates a Falloff Table using an inverse squared light falloff function, closely approximating real world light falloff.

GenerateUnityCompatibleLightFalloffTable(InputLightFalloffTable *)

Helper function that generates a falloff table compatible with the Unity light falloff model.

GenerateUnrealCompatibleLightFalloffTable(InputLightFalloffTable *, float)

Helper function that generates a Falloff Table compatible with the Unreal light falloff model.

GenerateUvsFromMergeMap(Geo::GeoPoint2 *, const Enlighten::MergeMap *, const Enlighten::MergeGeometry *)

Generate UVs for merged geometry.

GetBounceBufferSize(const Enlighten::BounceBuffer *, PrecisionHint::Value)

Returns the size of the specified BounceBuffer object.

GetBounceBufferSystemId(const Enlighten::BounceBuffer *)

Get system id from BounceBuffer.

GetClusterAlbedoWorkspaceMaterialDataSize(const Enlighten::ClusterAlbedoWorkspaceMaterialData *)

Returns the size of the specified ClusterAlbedoWorkspaceMaterialData object.

GetClusterAlbedoWorkspaceMaterialIds(const Enlighten::ClusterAlbedoWorkspaceMaterialData *)

Returns a list of all material Ids referenced by this albedo workspace.

GetClusterAlbedoWorkspaceNumMaterials(const Enlighten::ClusterAlbedoWorkspaceMaterialData *)

Returns the number of material Ids referenced by this albedo workspace.

GetDebugAlbedoValue(const Geo::u32, const AlbedoBuffer *, Geo::v128 &)

Get the cluster albedo value of a debug point from an AlbedoBuffer.

GetDebugEmissiveValue(const Geo::u32, const EmissiveBuffer *, Geo::v128 &)

Get the cluster emissive value of a debug point from an EmissiveBuffer.

GetDebugTransparencyValue(const Geo::u32, const TransparencyBuffer *, float &)

Get the cluster transparency value of a debug point from an TransparencyBuffer.

GetDxgiFormatBytesPerPixel(DXGI_FORMAT)

Helper function to calculate the number of texture bytes per pixel for DXGI texture formats supported by Enlighten.

GetEnlightenFormatFriendlyName(Geo::u32)

Helper function for getting irradiance output format friendly name.

GetEnlightenOutputFormatBytesPerPixel(Geo::u32)

Helper function to get the number of bytes/pixel per texture for a given output format.

GetForceDisableFma4()

Get the state of the force disable FMA4 support flag.

GetIncidentLightingBufferSize(const Enlighten::IncidentLightingBuffer *, PrecisionHint::Value)

Returns the size of the specified IncidentLightingBuffer object.

GetIncidentLightingBufferSystemId(const Enlighten::IncidentLightingBuffer *)

Get system id from IncidentLightingBuffer.

GetInputLightingBufferLightValue(const InputLightingBuffer *, float, Geo::s32)

Fill the specified array with the current light value for the given cluster index.

GetInputLightingBufferSize(const InputLightingBuffer *)

Returns the size of the specified InputLightingBuffer object.

GetInputLightingBufferSystemId(const Enlighten::InputLightingBuffer *)

Get system id from InputLightingBuffer.

GetInputWorkspaceDebugIterator(const InputWorkspace *, Enlighten::InputWorkspaceDebugIterator &)

Return a debug iterator object in {debugIterator} which can be used to iterate through the systems debug points.

GetInputWorkspaceDebugPoint(const InputWorkspace *, InputWorkspaceDebugPoint *, Geo::s32)

Fill the specified debug data structure with the current values for the given input workspace sample point.

GetInputWorkspaceGUID(const Enlighten::RadProbeSetCore RadSystemCore *, Geo::s32)

Returns the GUID of a specific entry in the expected input lighting buffer list.

GetInputWorkspaceGUID(const Enlighten::RadSystemCore RadCubeMapCore *, Geo::s32)

Returns the GUID of a specific entry in the expected input lighting buffer list.

GetInputWorkspaceGUID(const Enlighten::RadDataBlock RadProbeSetCore *, Geo::s32)

Returns the GUID of a specific entry in the expected input lighting buffer list.

GetInputWorkspaceGUID(const Enlighten::RadCubeMapCore RadDataBlock *, Geo::s32)

Returns the GUID of a specific entry in the expected input lighting buffer list.

GetInputWorkspaceInstanceGuids(const InputWorkspace *, Geo::GeoGuid *)

Get all the instance GUIDs in this system.

GetInputWorkspaceListLength(const Enlighten::RadProbeSetCore RadSystemCore *)

Returns the length of the input lighting buffer list expected when solving radiosity using this core data.

GetInputWorkspaceListLength(const Enlighten::RadSystemCore RadCubeMapCore *)

Returns the length of the input lighting buffer list expected when solving radiosity using this core data.

GetInputWorkspaceListLength(const Enlighten::RadCubeMapCore RadProbeSetCore *)

Returns the length of the input lighting buffer list expected when solving radiosity using this core data.

GetInputWorkspaceListLength(const Enlighten::RadDataBlock *)

Returns the length of the input lighting buffer list expected when solving radiosity using this core data.

GetInputWorkspaceLitDebugPoint(const InputWorkspace *, InputWorkspaceDebugPoint *, Geo::s32, const InputLightingBuffer *)

Fill the specified debug data structure with the current values for the given input workspace sample point.

GetInputWorkspaceMaxProjectedPointsInAnyInstance(const InputWorkspace *, Geo::s32 *)

Get the maximum number of projected points associated with any instance.

GetInputWorkspaceMaxVersionsInAnyInstance(const InputWorkspace *, Geo::s32 *)

Get the maximum number of versions of projected points associated with any instance.

GetInputWorkspaceNormalArray(const InputWorkspace *, Geo::v128 *)

Fills an array with the normals of all of the input points in an input workspace.

GetInputWorkspaceNumInstanceGuids(const InputWorkspace *, Geo::s32 *)

Get the number of instance GUIDs in this system.

GetInputWorkspaceNumPointsPerClusterArray(const InputWorkspace *, Geo::s32 *)

Fills the array with the number of points per cluster.

GetInputWorkspaceNumProjectedPointsInInstance(const InputWorkspace *, Geo::GeoGuid, Geo::s32 *)

Get the number of points associated with the specified instance.

GetInputWorkspaceNumVersionsInInstance(const InputWorkspace *, Geo::GeoGuid, Geo::s32 *)

Get the number of versions associated with the specified instance.

GetInputWorkspacePositionAndNormalArray(const InputWorkspace *, Geo::v128 *, Geo::v128 *)

Fills arrays with the positions and normals of all of the input points in an input workspace.

GetInputWorkspacePositionArray(const InputWorkspace *, Geo::v128 *)

Fills an array with the positions of all of the input points in an input workspace.

GetInputWorkspaceProjectedPointVersion(const InputWorkspace *, Geo::GeoGuid, Geo::s32, Geo::s32 *, Geo::v128 *, Geo::s32 *)

Get the projected points for a specified version and instance.

GetInputWorkspaceSize(const InputWorkspace *)

Returns the size of the specified InputWorkspace object.

GetInputWorkspaceVersionsInInstance(const InputWorkspace *, Geo::GeoGuid, Geo::s32 *, Geo::s32 *)

Get the list of version ids stored for a specified instance.

GetLineIntersection(Vertex2D &, const Line2D &, const Line2D &)

Computes the intersection between two Line2D.

GetNumberOfClustersInInputWorkspace(const InputWorkspace *)

Returns the total number of clusters in an input workspace.

GetNumberOfOutputBuckets(const RadSystemCore *)

Returns the total number of output buckets.

GetNumberOfOutputPixels(const RadSystemCore *)

Returns the total number of output pixels being lit.

GetNumberOfOutputPixelsInBucket(const RadSystemCore *, const Geo::s32 &)

Returns the total number of output pixels in the given bucket.

GetNumberOfPointsInInputWorkspace(const InputWorkspace *)

Returns the total number of sample duster points in an input workspace.

GetNumberOfTreeClustersInInputWorkspace(const InputWorkspace *)

Returns the total number of tree clusters in an input workspace.

GetNumOctreeNodes(const Enlighten::RadProbeSetCore *)

Returns the number of octree nodes within the specified octree probe set.

GetNumVirtualProbes(const Enlighten::RadProbeSetCore *)

Returns the number of virtual probes within the specified probe set.

GetOctreeCodeWorldPositionAndSize(PrecompOctreeCode, float)

Return the world space position (xyz) and size (w) of the octree block identified by the specified octree code with the specified voxel size.

GetOctreeDisplacedProbeCount(const RadProbeSetCore *)

Return the total number of displaced probe positions within the specified RadProbeSetCore.

GetOctreeInterpolatedProbeIndices(const Enlighten::RadProbeSetCore *)

Returns a pointer to the array of interpolated probe indices within the specified octree probe set.

GetOctreeInterpolatedProbeWidths(const Enlighten::RadProbeSetCore *)

Returns a pointer to the array of interpolated probe widths within the specified octree probe set.

GetOctreeLevel(const Enlighten::RadProbeSetCore *)

Returns the level with the probe set hierarchy of this octree probe set.

GetOctreeNodes(const Enlighten::RadProbeSetCore *)

Returns a pointer to the array of octree nodes within the specified octree probe set.

GetOctreeNumVirtualProbes(const Enlighten::RadProbeSetCore *)

Returns the number of virtual probes within the specified octree probe set.

GetOctreePppiAtlasFootprint(const Enlighten::RadProbeSetCore *)

Returns the PPPI atlas footprint of the specified octree probe set.

GetOctreePppiInstanceCount(const Enlighten::RadProbeSetCore *)

Returns the number of PPPI instances within the specified octree probe set.

GetOctreePppiInstanceProbeIds(const Enlighten::RadProbeSetCore *)

Returns a pointer to the array of PPPI instance probe ids within the specified octree probe set.

GetOctreePppiNodes(const Enlighten::RadProbeSetCore *)

Returns a pointer to the array of PPPI nodes within the specified octree probe set.

GetOctreePppiProbeInstances(const Enlighten::RadProbeSetCore *)

Returns a pointer to the array of PPPI probe instances within the specified octree probe set.

GetOctreeProbePositionCount(const RadProbeSetCore *)

Return the total number of probe positions within the specified RadProbeSetCore.

GetOctreeRootProbes(const Enlighten::RadProbeSetCore *)

Returns a pointer to the root probes in the specified octree probe set.

GetOctreeSampledProbeCount(const Enlighten::RadProbeSetCore *)

Returns the number of sampled probes within the specified octree probe set.

GetOctreeSampledProbes(const Enlighten::RadProbeSetCore *)

Returns a pointer to the array of sampled probes within the specified octree probe set.

GetOctreeVoxelSize(const Enlighten::RadProbeSetCore *)

Returns the voxel size used when the specified octree probe set was precomputed.

GetOptimisedSolverForPlatform(Geo::ePlatform)

Function returning the correct optimised solver based on the compilation environment.

GetOutputTextureRangeEnd(const RadSystemCore &, SolveType)

Return the end of the range of output texture types that can be updated for this combination of solve type and radiosity core.

GetOutputTextureSize(const RadSystemCore RadCubeMapCore &)

Returns the size of the output texture required for this radiosity data.

GetOutputTextureSize(const RadCubeMapCore RadSystemCore &)

Returns the size of the output texture required for this radiosity data.

GetPppiMaximumAtlasUpdateRequirements(PppiAtlasFootprint)

Return the maximum required size of the atlas update workspace for the atlas footprint determined by the precompute.

GetPppiMaximumClipmapUpdateRequirements(PppiAtlasFootprint)

Return the maximum required size of the clipmap update workspace for the atlas footprint determined by the precompute.

GetPppiRequiredOutputTextures(PppiConfiguration)

Returns the required output textures for the specified configuration.

GetPrecomputedVisibilityDataSize(const PrecomputedVisibilityData *)

Returns the size of the specified PrecomputedVisibilityData object.

GetProbeEnvironmentVisibility(Geo::s32, const Enlighten::RadProbeSetCore *)

Retrieves the light probe environment visibility for the given probe in the volume probe data.

GetProbeVisibility(Geo::s32, const Enlighten::RadProbeSetCore *, float *)

Retrieves the light probe visibility for the given probe in the volume probe data.

GetRequiredProbeOutputCount(const RadProbeSetCore *, eProbeOutputFormat)

Return the required number of probes output by the low level API for the specified probe set.

GetSolverSuffix(eSolverType)

Defines a platform specific extension for some files, such as the InputWorkspace, that differ in content between platforms.

GetSystemBoundingBox(const InputWorkspace *, Geo::GeoBoundingBox &)

Returns the axis-aligned bounding box of the set of input points in the input workspace.

GetSystemBounds(const InputWorkspace *, Geo::GeoBoundingBox &)

Retrieve the bounding volume of the system.

GetTextureBytesPerPixel(TextureFormat)

Gets the number of bytes required for each pixel of the given texture format.

GetTextureBytesPerPixel(GLint, GLenum)

Returns the size of a pixel in bytes for the specified format and type, if supported.

GetTextureSize(const TextureResolutionScale::Value, Geo::s32, Geo::s32, Geo::s32 &, Geo::s32 &)

Inline function that returns the required dimensions of the albedo and emissive textures for a given a texture width and height.

GetTextureSize(const Enlighten::RadSystemCore *, const TextureResolutionScale::Value, Geo::s32 &, Geo::s32 &)

Returns the required dimensions of the albedo and emissive textures for a given radiosity core.

GetVirtualProbes(const Enlighten::RadProbeSetCore *)

Returns a pointer to the array of virtual probes within the specified probe set.

GetZeroValue()

Helper template to get the zero value of different types.

GetZeroValue< float >()

Helper template to get the zero value of floats.

GetZeroValue< Geo::v128 >()

Helper template to get the zero value of v128s.

HashInputLightingElements(const InputLightingBuffer **, Geo::s32)

Hash the guids and pointers of the InputLightingBuffer array.

InitialiseAlbedoBufferFromColoursPerPoint(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const InputWorkspace *, const Geo::v128 *, const Geo::s32, AlbedoBuffer *)

Sets the albedo colours for an AlbedoBuffer based on the individual sample points.

InitialiseAlbedoBufferFromMaterialWorkspace(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, AlbedoBuffer *)

Sets the albedo colours for an AlbedoBuffer from a materialWorkspace.

InitialiseAlbedoBufferFromTexture(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const Enlighten::InputTextureSamplerParameters *, const TextureResolutionScale::Value, AlbedoBuffer *)

Sets the albedo colours for an AlbedoBuffer from an albedo texture expected in RGBA format in gamma-2 colour space.

InitialiseEmissiveBufferFromColoursPerPoint(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const InputWorkspace *, const Geo::v128 *, const Geo::s32, EmissiveBuffer *)

Sets the emissive colours for an EmissiveBuffer based on the individual sample points.

InitialiseEmissiveBufferFromMaterialWorkspace(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, EmissiveBuffer *)

Sets the emissive colours for an EmissiveBuffer from a materialWorkspace.

InitialiseEmissiveBufferFromTexture(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const Enlighten::InputTextureSamplerParameters *, float, const TextureResolutionScale::Value, EmissiveBuffer *)

Sets the emissive colours for an EmissiveBuffer from an emissive texture expected in RGBM format in linear colour space.

InitialiseEmissiveBufferFromTextureFp16(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const Enlighten::InputTextureSamplerParameters *, const TextureResolutionScale::Value, EmissiveBuffer *)

Sets the emissive colours for an EmissiveBuffer from an emissive texture expected in FP16 format in linear colour space.

InitialiseInstanceEmissiveAsDynamic(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const Geo::u16)

Initialise all the materials of an instance in the DynamicMaterialWorkspace as dynamic.

InitialiseIntelGPA()

If you are using the Intel Graphical Performance Analyzer, call this function at application startup.

InitialiseMaterialDynamicity(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const SurfaceSelection &, SurfaceColourDynamicity)

Initialise a material component in the DynamicMaterialWorkspace as static or dynamic.

InitialiseMaterialEmissiveAsDynamic(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const Geo::u64 &)

Initialise a material emissive component in the DynamicMaterialWorkspace as dynamic.

InitialiseSystemEmissiveAsDynamic(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *)

Initialise all the materials in the DynamicMaterialWorkspace as dynamic.

InitialiseTransparencyBufferFromColoursPerPoint(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const InputWorkspace *, const float *, const Geo::s32, TransparencyBuffer *)

Sets the transparency for a TransparencyBuffer based on the individual sample points.

InitialiseTransparencyBufferFromMaterialWorkspace(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, TransparencyBuffer *)

Sets the values for a TransparencyBuffer from a materialWorkspace.

InitialiseTransparencyBufferFromTexture(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const Enlighten::InputTextureSamplerParameters *, const Geo::s32, const Geo::s32, const TextureResolutionScale::Value, TransparencyBuffer *)

Sets the values for a TransparencyBuffer from a the alpha channel in the albedo texture in RGBA format.

InsideAABBExclusive(const Vertex2D &, const Vertex2D &, const Vertex2D &)

Tests if a Vertex2D is within a bounding box defined by two Vertex2D.

InsideAABBInclusive(const Vertex2D &, const Vertex2D &, const Vertex2D &)

Tests if a Vertex2D is within a bounding box defined by two Vertex2D.

IsAlbedoBufferInitialiseRequired(const DynamicMaterialWorkspace *)

Determine if the buffer needs to be initialised.

IsClosedMesh(Geo::StridedArrayView< PrecompIndex3 >)

Return true if the mesh is closed.

IsEmissiveBufferInitialiseRequired(const DynamicMaterialWorkspace *)

Determine if the buffer needs to be initialised.

IsFinite(const BaryCoords &)

Tests if barycentric coordinates are valid.

IsFixedPointFormat(eOutputFormat)

Returns true for formats with a fixed range (0-1).

IsInputLightingBufferStatic(const InputLightingBuffer *)

Returns the number of frames since the last update that changed the given input lighting buffer.

IsInsideInclusive(const BaryCoords &)

Tests if a set of barycentric coordinates define a point within a triangle.

IsOctreeProbeSet(const RadProbeSetCore *)

Returns true if the specified probe set core is a ProbeOctree.

IsProbeCulled(Geo::s32, const Enlighten::RadProbeSetCore *)

Returns TRUE if the probe was culled during precompute.

IsTransparencyBufferInitialiseRequired(const DynamicMaterialWorkspace *)

Determine if the buffer needs to be initialised.

IsValid(const ClusterAlbedoWorkspaceMaterialData *, const char *, bool)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const ResamplingData *, const char *)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const InterpolationInputSet *, const char *)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const PrecomputedVisibilityWorkspace *, const char *)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const PrecomputedVisibilityData *, const char *)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const InputWorkspace *, const char *, bool)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const RadCubeMapCore *, const char *)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const RadProbeSetCore *, const char *)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const RadProbeSetCore *, Geo::u32, const char *)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValid(const RadSystemCore *, const char *)

Function that tests if the data object provided is valid (pointer checks, metadata, etc).

IsValidOutputFormat(Geo::u32)

Checks if the given output format enumeration is valid.

LightFalloffFunction(const InternalLightFalloffTable &, const Geo::v128 &, const Geo::v128 &)


common light falloff function used by spot and point lights, computes four lights at a time


MakeEnvironmentConstants(Geo::u32, float *, float *)

Compute the area and directional normalization factors for each texel of a single environment cubemap face.

MakeInstanceSurfaceSelection(Geo::u16)

All surfaces matching the specified instance.

MakePppiIrradiance16(const PppiIrradiance &)

Return the specified irradiance value converted to 16-bit floating point.

MakeSingleSurfaceSelection(Geo::u16, Geo::u16, Geo::u32)

The surface matching the instanceId, meshIndex and materialId combination.

MakeSystemSurfaceSelection()

All surfaces in the system.

MakeWorldAxis(PipelineWorldAxis)

The world space axis in which a given axis points.

MaxVertex(const Vertex2D &, const Vertex2D &)

Returns a Vertex2D as the componentwise minimum of two Vertex2D.

MinVertex(const Vertex2D &, const Vertex2D &)

Returns a Vertex2D as the componentwise minimum of two Vertex2D.

Normalise(const Vector2D &)

Normalises a Vector2D to a length of one.

operator-(const Vertex2D &, const Vertex2D &)

Componentwise subtraction operator for two Vertex2D.

operator!=(const PrecompVoxelOctreePath &, const PrecompVoxelOctreePath &)

Returns true if the paths are not equal.

operator!=(const PrecompVoxelId &, const PrecompVoxelId &)

Returns true if the arguments are not equal.

operator!=(const PrecompOctreeNode &, const PrecompOctreeNode &)

Returns true if the nodes are not equal.

operator&(DynamicMaterialWorkspace::Status, DynamicMaterialWorkspace::Status)

Bitwise AND of two dynamic material workspace statuses.

operator*(const Vertex2D &, const double &)

Componentwise multiplication by scalar for Vertex2D.

operator*(const double &, const Vertex2D &)

Componentwise multiplication by scalar for Vertex2D.

operator|(DynamicMaterialWorkspace::Status, DynamicMaterialWorkspace::Status)

Bitwise OR of two dynamic material workspace statuses.

operator~(DynamicMaterialWorkspace::Status)

Bitwise NOT of a dynamic material workspace status.

operator+(const Vertex2D &, const Vertex2D &)

Componentwise addition operator for two Vertex2D.

operator+=(Triangle2D &, Vector2D)

Moves a triangle by a given Vector2D.

operator<(const PrecompVoxelId &, const PrecompVoxelId &)

Returns true if the left argument is ordered before the right argument.

operator-=(Triangle2D &, Vector2D)

Moves a triangle by a given Vector2D into it's opposite direction.

operator-=(Vertex2D &, Vertex2D)

Componentwise subtraction and assignment operator for two Vertex2D.

operator==(const PrecompVoxelOctreePath &, const PrecompVoxelOctreePath &)

Returns true if the paths are equal.

operator==(const PrecompOctreeNode &, const PrecompOctreeNode &)

Returns true if the nodes are equal.

operator==(const PrecompVoxelId &, const PrecompVoxelId &)

Returns true if the arguments are equal.

ParseWorldAxis(const char *)

Return the axis aligned unit vector matching one of the following input strings: +x, +X, +y, +Y, +z, +Z, -x, -X, -y, -Y, -z, -Z.

PrepareInputLightingList(const Enlighten::RadProbeSetCore *, const Enlighten::InputLightingBuffer **, Geo::s32, const Enlighten::InputLightingBuffer **)

Places the unordered list of lighting buffers into the correct order for the solver.

PrepareInputLightingList(const Enlighten::RadSystemCore *, const Enlighten::InputLightingBuffer **, Geo::s32, const Enlighten::InputLightingBuffer **)

Places the unordered list of lighting buffers into the correct order for the solver.

PrepareInputLightingList(const Enlighten::RadDataBlock *, const Enlighten::InputLightingBuffer **, Geo::s32, const Enlighten::InputLightingBuffer **)

Places the unordered list of lighting buffers into the correct order for the solver.

PrepareInputLightingList(const Enlighten::RadCubeMapCore *, const Enlighten::InputLightingBuffer **, Geo::s32, const Enlighten::InputLightingBuffer **)

Places the unordered list of lighting buffers into the correct order for the solver.

ProjectEnvironmentProbeL1(Geo::u32, const Geo::v128 *, const float *, const float *)

Project the environment cubemap irradiance values to L1 SH coefficients.

ReadAlbedoBuffer(Geo::IGeoInputStream &)

Read an AlbedoBuffer from a stream.

ReadAlbedoBufferInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadClusterAlbedoWorkspaceMaterialData(Geo::IGeoInputStream &, Geo::u32)

Read an ClusterAlbedoWorkspaceMaterialData from a stream.

ReadClusterAlbedoWorkspaceMaterialDataFromFile(const char *, Geo::u32)

Read an ClusterAlbedoWorkspaceMaterialData from file.

ReadClusterAlbedoWorkspaceMaterialDataInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadDataBlock(RadDataBlock *, Geo::IGeoInputStream &)

Read a RadDataBlock from a Geo::IGeoInputStream. Will return an object that should be released with FreeDataBlockContents().

ReadDataBlockInPlace(RadDataBlock &, char *&)

These utilities perform in-place fixup of the various enlighten data structures.

ReadDynamicMaterialWorkspace(Geo::IGeoInputStream &)

Read an DynamicMaterialWorkspace from a stream.

ReadDynamicMaterialWorkspaceInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadEmissiveBuffer(Geo::IGeoInputStream &)

Read an EmissiveBuffer from a stream.

ReadEmissiveBufferInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadIncidentLightingBuffer(Geo::IGeoInputStream &)

Read an IncidentLightingBuffer from a stream.

ReadIncidentLightingBufferInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadInputLightingBuffer(Geo::IGeoInputStream &)

Read an InputLightingBuffer from a stream.

ReadInputLightingBufferInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadInputWorkspace(Geo::IGeoInputStream &, Geo::u32)

Read an InputWorkspace from a stream.

ReadInputWorkspaceFromFile(const char *, Geo::u32)

Read an InputWorkspace from file.

ReadInputWorkspaceInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadOptionalDataBlock(RadDataBlock *, Geo::IGeoInputStream &, Geo::u32, Geo::u32)

Read or skip a RadDataBlock in a Geo::IGeoInputStream, depending on the sections requested and the id of the block.

ReadPrecomputedVisibilityData(Geo::IGeoInputStream &)

Read a PrecomputedVisibilityData struct from a stream.

ReadPrecomputedVisibilityDataFromFile(const char *)

Read a PrecomputedVisibilityData struct from a file.

ReadPrecomputedVisibilityDataInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadProbeTaskOutput(Enlighten::RadProbeTask *, Geo::IGeoInputStream &)

Read the RadProbeTask results data from a file/stream.

ReadProbeTaskOutputFromFile(Enlighten::RadProbeTask *, const char *)

Read the RadProbeTask results data from a file/stream.

ReadRadCubeMapCore(Geo::IGeoInputStream &)

Read a RadCubeMapCore from a stream.

ReadRadCubeMapCoreFromFile(const char *)

Read a RadCubeMapCore from file.

ReadRadCubeMapCoreInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadRadProbeSetCore(Geo::IGeoInputStream &, Geo::u32)

Read run-time probeset data from a file.

ReadRadProbeSetCoreFromFile(const char *, Geo::u32)

Read run-time probe set data from a file.

ReadRadProbeSetCoreInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadRadSystemCore(Geo::IGeoInputStream &, Geo::u32)

Read a RadSystemCore from a stream.

ReadRadSystemCoreFromFile(const char *, Geo::u32)

Read a RadSystemCore from file.

ReadRadSystemCoreInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

ReadRadTaskOutput(Geo::s32 &, Geo::s32 &, eOutputFormat &, eOutputFormatByteOrder &, void *, void *, void *, Geo::IGeoInputStream &)

Read the RadIrradianceTask results data from a file/stream.

ReadRadTaskOutputFromFile(Geo::s32 &, Geo::s32 &, eOutputFormat &, eOutputFormatByteOrder &, void *, void *, void *, const char *)

Read the RadIrradianceTask results data from a file.

ReadTransparencyBufferInPlace(char *, size_t)

These utilities perform in-place fixup of the various enlighten data structures.

RepairHoles(Geo::StridedArrayView< PrecompIndex3 >)

Return the faces which must be added to the mesh to repair holes.

ReportPipelineError(Geo::GeoUIString)

Report a fatal PipelineError.

ResampleBounce(const Enlighten::ResampleBounceParameters &, Geo::u32 &)

After SolveIrradianceTask is run, the ResampleBounce() function populates an Enlighten::BounceBuffer with bounce data.

RunDebugBucketSelectionTask(const Enlighten::RadDebugBucketSelectionTask *)

Generate a texture that highlights the information specified in the task object.

SampleBilinear(const tIrradianceTexture *, float, float)

Samples the given texture at the given co-ordinates, using bilinear filtering.

SelectAlbedoEmissiveTransparencyAndSurroundings(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects albedo, emissive, transparency and surroundings.

SelectEmissiveTransparencyAndSurroundings(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects emissive, transparency and surroundings.

SelectSamplersAndDoIndirectInputLighting(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects samplers and does indirect input lighting.

SelectSurroundings(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects surroundings.

SelectTransparencyAndSurroundings(const IndirectInputLightingParameters *, const InputWorkspaceInternal *)

Selects transparency and surroundings.

SetDirectionalVisibility(const InputWorkspace *, const PrecomputedVisibilityData *, PrecomputedVisibilityWorkspace *, void *, Geo::v128)

Set visibility in an input workspace for a directional light, using precomputed visibility data.

SetEnvironmentLightValues(Enlighten::InputLightingBuffer *, const Geo::v128 *, Geo::s32)

Sets the environment light values.

SetForceDisableFma4(bool)

Set whether to force disable FMA4 support.

SetMaterialAlbedoColour(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const SurfaceSelection &, const Geo::v128 &)

Set the colour of a material selection within the DynamicMaterialWorkspace.

SetMaterialEmissiveColour(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const SurfaceSelection &, const Geo::v128 &)

Set the emissive colour of a material selection within the DynamicMaterialWorkspace.

SetMaterialTransparency(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const SurfaceSelection &, float)

Set the transparency of a material selection within the DynamicMaterialWorkspace.

SetTransparency(const InputWorkspace *, TransparencyWorkspace *, float)

Set all transparency values of transparencyWorkspace to the given value.

SkipDataBlock(Geo::IGeoInputStream &)

Skip a RadDataBlock in a Geo::IGeoStream. Will advance the stream past a RadDataBlock without reading the contents.

SolveBounceBufferTask(const Enlighten::SolveBounceTask *, void *, Geo::u32 &, Geo::u32 &)

Solve the radiosity directly to a bounce buffer only.

SolveCubeMapTask(const Enlighten::RadCubeMapTask *, void *, Geo::u32 &, Geo::u32 &)

Solve the specified cube map task using a given workspace.

SolveEntireProbeSetTask(const Enlighten::EntireProbeSetTask *, void *, Geo::u32 &, Geo::u32 &)

Solve the specified EntireProbeSetTask.

SolveIrradianceTask(const Enlighten::RadIrradianceTask *, void *, Geo::u32 &, Geo::u32 &)

Solve the specified irradiance task using a given workspace.

SolveProbeTaskL1(const Enlighten::RadProbeTask *, Geo::u32 &)

Solve the specified L1 probe task.

SolveProbeTaskL2(const Enlighten::RadProbeTask *, Geo::u32 &)

Solve the specified L2 probe task.

StoreTemporaryScaleAndTranslation(Enlighten::PrecompOutputInstance *, Geo::s32, Geo::s32)

Utility to temporarily pack scale and translation into the PrecompOutputInstance object.

UpdateAlbedoBuffer(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, Enlighten::AlbedoBuffer *)

Update an AlbedoBuffer from the DynamicMaterialWorkspace.

UpdateEmissiveBuffer(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, Enlighten::EmissiveBuffer *)

Update an EmissiveBuffer from the DynamicMaterialWorkspace.

UpdateTransparencyBuffer(DynamicMaterialWorkspace *, const Enlighten::ClusterAlbedoWorkspaceMaterialData *, Enlighten::TransparencyBuffer *)

Update a TransparencyBuffer from the DynamicMaterialWorkspace.

UpdateTransparencyWorkspace(const InputWorkspace *, TransparencyWorkspace *, Enlighten::IProbeSetManager *, bool)

Update the transparency workspace with values calculated from interpolated probes.

UpdateTransparencyWorkspace(const InputWorkspace *, TransparencyWorkspace *, const InterpolationInputSet *, Geo::s32, bool)

Update the transparency workspace with values calculated from interpolated probes.

VerifyBounceBufferData(const Enlighten::BounceBuffer *)

Returns true if there are no NaN's or non-finite numbers in the specified BounceBuffer object.

VerifyIncidentLightingBufferData(const Enlighten::IncidentLightingBuffer *)

Returns true if there are no NaN's or non-finite numbers in the specified InputLightingBuffer object.

VerifyInputLightingBufferData(const InputLightingBuffer *)

Returns true if there are no NaN's or non-finite numbers in the specified InputLightingBuffer object.

VisitLights(SortedLights *, Visitor &)

Visitor function to apply the visitor functor to each light.

VisitSelectedLights(const SortedLights *, Visitor &, LightSelector &, SortedLightsOperator *)

Visits the selected lights with the given visitor.

WorldAxisToString(WorldAxis)

Return the string representation of the specified axis aligned unit vector.

WriteAlbedoBuffer(const Enlighten::AlbedoBuffer *, Geo::IGeoStream &)

Write an AlbedoBuffer to a stream.

WriteAlbedoBufferForInPlace(const AlbedoBuffer *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteClusterAlbedoWorkspaceMaterialData(const Enlighten::ClusterAlbedoWorkspaceMaterialData *, Geo::IGeoStream &)

Write an ClusterAlbedoWorkspaceMaterialData to a stream, ready to be loaded on the target platform.

WriteClusterAlbedoWorkspaceMaterialDataForInPlace(const ClusterAlbedoWorkspaceMaterialData *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteClusterAlbedoWorkspaceMaterialDataToFile(const Enlighten::ClusterAlbedoWorkspaceMaterialData *, const char *)

Write an ClusterAlbedoWorkspaceMaterialData to file, ready to be loaded on the target platform.

WriteDataBlock(const RadDataBlock &, Geo::IGeoStream &)

Write a RadDataBlock to a Geo::IGeoStream.

WriteDataBlockForInPlace(const RadDataBlock &, char *&)

These utilities perform in-place fixup of the various enlighten data structures.

WriteDynamicMaterialWorkspace(const Enlighten::DynamicMaterialWorkspace *, Geo::IGeoStream &)

Write an DynamicMaterialWorkspace to a stream.

WriteDynamicMaterialWorkspaceForInPlace(const DynamicMaterialWorkspace *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteEmissiveBuffer(const Enlighten::EmissiveBuffer *, Geo::IGeoStream &)

Write an EmissiveBuffer to a stream.

WriteEmissiveBufferForInPlace(const EmissiveBuffer *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteIncidentLightingBuffer(const Enlighten::IncidentLightingBuffer *, Geo::IGeoStream &)

Write an IncidentLightingBuffer to a stream.

WriteIncidentLightingBufferForInPlace(const IncidentLightingBuffer *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteInputLightingBuffer(const Enlighten::InputLightingBuffer *, Geo::IGeoStream &)

Write an InputLightingBuffer to a stream.

WriteInputLightingBuffer(const Enlighten::InputLightingBuffer *, Enlighten::InputLightingBuffer *)

Overwrite an InputLightingBuffer with another InputLightingBuffer.

WriteInputLightingBufferForInPlace(const InputLightingBuffer *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteInputLightingBufferToFile(const Enlighten::InputLightingBuffer *, const char *)

Write an InputLightingBuffer to file.

WriteInputWorkspace(const Enlighten::InputWorkspace *, Geo::IGeoStream &)

Write an InputWorkspace to a stream, ready to be loaded on the target platform.

WriteInputWorkspaceForInPlace(const InputWorkspace *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteInputWorkspaceToFile(const Enlighten::InputWorkspace *, const char *)

Write an InputWorkspace to file, ready to be loaded on the target platform.

WritePrecomputedVisibilityData(const Enlighten::PrecomputedVisibilityData *, Geo::IGeoStream &)

Write a PrecomputedVisibilityData structure to a stream.

WritePrecomputedVisibilityDataForInPlace(const PrecomputedVisibilityData *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WritePrecomputedVisibilityDataToFile(const Enlighten::PrecomputedVisibilityData *, const char *)

Write a PrecomputedVisibilityData structure to a file.

WriteProbeTaskOutput(const Enlighten::RadProbeTask *, Geo::IGeoStream &)

Write the RadProbeTask results data to a file/stream.

WriteProbeTaskOutputToFile(const Enlighten::RadProbeTask *, const char *)

Write the RadProbeTask results data to a file/stream.

WriteRadCubeMapCore(const Enlighten::RadCubeMapCore *, Geo::IGeoStream &)

Write a RadCubeMapCore to a stream, ready to be loaded on the target platform.

WriteRadCubeMapCoreForInPlace(const RadCubeMapCore *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteRadCubeMapCoreToFile(const Enlighten::RadCubeMapCore *, const char *)

Write a RadCubeMapCore to file, ready to be loaded on the target platform.

WriteRadIrradianceTaskOutput(const RadIrradianceTask *, Geo::IGeoStream &)

Write the RadIrradianceTask results data to a file/stream.

WriteRadIrradianceTaskOutputToFile(const RadIrradianceTask *, const char *)

Write the RadIrradianceTask results data to a file/stream.

WriteRadProbeSetCore(const Enlighten::RadProbeSetCore *, Geo::IGeoStream &)

Write run-time probeset data to a stream, ready to be loaded on the target platform.

WriteRadProbeSetCoreForInPlace(const RadProbeSetCore *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteRadProbeSetCoreToFile(const Enlighten::RadProbeSetCore *, const char *)

Write run-time probeset data to file, ready to be loaded on the target platform.

WriteRadSystemCore(const Enlighten::RadSystemCore *, Geo::IGeoStream &)

Write a RadSystemCore to a stream, ready to be loaded on the target platform.

WriteRadSystemCoreForInPlace(const RadSystemCore *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

WriteRadSystemCoreToFile(const Enlighten::RadSystemCore *, const char *)

Write a RadSystemCore to file, ready to be loaded on the target platform.

WriteSortedLightsToMem(SortedLights *, void *)

Write the sorted lights to memory.

WriteTransparencyBufferForInPlace(const TransparencyBuffer *, Geo::IGeoStream &, Geo::EConvertEndianMode)

These utilities perform in-place fixup of the various enlighten data structures.

...

Enqueue function pointer 1 param.


Anchor
a96c62c2fb06e36ea697eb304d58d6c46a885ba2f501138741c8c5175b64847c3da96c62c2fb06e36ea697eb304d58d6c46
a885ba2f501138741c8c5175b64847c3d

void Enlighten::EnqueueWorkerCommand

...

public: void EnqueueWorkerCommand
(
    IUpdateManager * updateManager,
    typename FunctionPointer3< FunctionPointer2< Param1Type, Param2Type , Param3Type >::CallbackType callback,
    Param1Type input1,
    Param2Type input2,
    Param3Type input3
)

...

Enqueue function pointer 3 2 param.


Anchor
a3cdcf6e7e00bbde8dcd2af562d20e82e
a3cdcf6e7e00bbde8dcd2af562d20e82e

...

Enqueue function pointer 0 param


Anchor
a885ba2f501138741c8c5175b64847c3da96c62c2fb06e36ea697eb304d58d6c46a885ba2f501138741c8c5175b64847c3d
a96c62c2fb06e36ea697eb304d58d6c46

void Enlighten::EnqueueWorkerCommand

...

public: void EnqueueWorkerCommand
(
    IUpdateManager * updateManager,
    typename FunctionPointer2< FunctionPointer3< Param1Type, Param2Type, Param3Type >::CallbackType callback,
    Param1Type input1,
    Param2Type input2,
    Param3Type input3
)

...

Enqueue function pointer 2 3 param.


Anchor
a29f6ee2038d8980f00c24b2d18dfad65
a29f6ee2038d8980f00c24b2d18dfad65

...

0 if successful, otherwise a non-zero value.


Anchor
ab71c4d1f75b8c55509662be7e386370eaffe7e112f9ef4a8117d3d179c991f372ab71c4d1f75b8c55509662be7e386370e
affe7e112f9ef4a8117d3d179c991f372

bool GEO_CALL Enlighten::

...

ExtractOctreeDisplacedProbes

...

public: bool GEO_CALL ExtractOctreeProbePositionsExtractOctreeDisplacedProbes
(
    const RadProbeSetCore * core,
    Geo::v128 * positions,
    Geo::u32 count
)

...

Extract the first n displaced probe positions within the specified RadProbeSetCore.

For debugging only. Use GetOctreeProbePositionCount GetOctreeDisplacedProbeCount to obtain the total number of probe positions that can be extracted. Real probes appear first in the array, followed by virtual probes, followed by nonexistent probes. The W coordinate of a nonexistent probe indicates its type:

...

The position of a culled probe has W == -1

...

The position of a border probe has W == -2

...

The XYZ coordinates are the offset by which the probe was displaced. The W coordinate is the index of the probe that was displaced.

Parameters
[in]core

A RadProbeSetCore containing a probe set created by automatic probe placement.

[in]positions

An array large enough to store the desired subset of probes.

[in]count

The number of entries in the positions array.


Anchor
a0014b39748c2bbee5378b69411c114d5ab71c4d1f75b8c55509662be7e386370ea0014b39748c2bbee5378b69411c114d5
ab71c4d1f75b8c55509662be7e386370e

bool GEO_CALL Enlighten::

...

ExtractOctreeProbePositions

...

public: bool GEO_CALL FindDebugClusterInfoExtractOctreeProbePositions
(
    RadDebugPixelInfo const RadProbeSetCore * infoOutcore,
    Geo::s32 clusterIndexv128 * positions,
    const RadSystemCore * radCore
)Fill in Geo::u32 count
)

...

Extract the first n probe positions within the specified RadProbeSetCore.

For debugging only. Use GetOctreeProbePositionCount to obtain the total number of probe positions that can be extracted. Real probes appear first in the array, followed by virtual probes, followed by nonexistent probes. The W coordinate of a nonexistent probe indicates its type:

  • The position of a culled probe has W == -1

  • The position of a border probe has W == -2

  • The W coordinate of a referenced probe is the index of the real or virtual probe to which it refers.

    Parameters
    [in]core

    A RadProbeSetCore containing a probe set created by automatic probe placement.

    [in]positions

    An array large enough to store the desired subset of probes.

    [in]count

    The number of entries in the positions array.


Anchor
a0014b39748c2bbee5378b69411c114d5
a0014b39748c2bbee5378b69411c114d5

bool GEO_CALL Enlighten::FindDebugClusterInfo

...

public: bool GEO_CALL FindDebugClusterInfo
(
    RadDebugPixelInfo * infoOut,
    Geo::s32 clusterIndex,
    const RadSystemCore * radCore
)

...

Fill in a RadDebugPixelInfo for a specified leaf cluster index (for internal debugging purposes).

...

Returns a search result containing information about the node containing the specified point.

Parameters
[in]core

A RadProbeSetCore containing a probeset created by automatic probe placement.

[in]point

The world space location at which to search.

[in]lod

LOD to use when searching the octree nodes.

...

Nevertheless, some probe sets can be updated less frequently than others by using the Freeze functions in place of a solve. FreezeEntireProbeSetTask performs the minimal housekeeping required to keep track of light changes for the temporal optimization - no output SH coefficients are updated. The input parameters are exactly the same as for SolveEntireProbeSetTask.

Parameters
[in]task

A valid pointer to the probe task structure to freeze.

[in]workspace

A valid pointer to a block of memory to use as a workspace which must be at least as big as m_RequiredWorkspaceSize in the core meta data.

[out]timeUs

Number of microseconds it took to freeze the task.

[out]numSolvedProbes

Number of probes solved in the task. This will always be 0.

...

Nevertheless, some systems can be updated less frequently than others by using the Freeze functions in place of a solve. FreezeInputLightingBuffer marks an input lighting buffer as frozen. Other systems reading this buffer then recognise that the input hasn't changed. (Neglecting to freeze buffers won't cause visual artefacts, but will result in performing more recalculations than necessary.)

Parameters
[in]lightingBuffer

The input lighting buffer to mark as frozen.

...

Nevertheless, some systems can be updated less frequently than others by using the Freeze functions in place of a solve. FreezeIrradianceTask performs the minimal housekeeping required to keep track of light changes for the temporal optimization - no output textures are updated. The input parameters are exactly the same as for SolveIrradianceTask.

Parameters
[in]task

A valid pointer to the irradiance task structure to freeze.

[in]workspace

A valid pointer to a block of memory to use as a workspace which must be at least as big as m_RequiredWorkspaceSize in the core meta data.

[out]timeUs

Number of microseconds it took to freeze the task.

[out]numSolvedPixels

Number of output pixels solved in the task. This will always be 0.

[out]environmentOnly

Use in combination with environment only bounce solve.

...

Light falloff is smoothly biased to zero as it approaches the cutoff.

Parameters
[out]lightTable

The Input Light Falloff Table to write to.

[in]lightFalloffDistance

The falloff distance the light table will represent, typically (m_Cutoff - m_Radius), must be > 0.

[in]lightRadius

The radius of the simulated light source, typically m_Radius or 1.0, must be > 0.

...

Helper function that generates a falloff table compatible with the Unity light falloff model.

Parameters
[out]lightTable

The input light falloff table to write to.

...

Helper function that generates a Falloff Table compatible with the Unreal light falloff model.

Parameters
[out]lightTable

The Input Light Falloff Table to write to.

[in]falloffExponent

The falloff exponent of the light, must be > 0.

...

Returns the size of the specified BounceBuffer object.

Parameters
[in]bounceBuffer

The BounceBuffer to query.

[in]precision

The hint to what floating point precision to use.

...

Get system id from BounceBuffer.

Parameters
[in]bounceBuffer

The BounceBuffer to query.

...

The length of the returned array can be found using GetClusterAlbedoWorkspaceNumMaterials().

Parameters
[in]materialData

The albedo workspace material data to query.

...

Returns the number of material Ids referenced by this albedo workspace.

Parameters
[in]materialData

The albedo workspace material data to query.

...

Get the cluster albedo value of a debug point from an AlbedoBuffer.

Parameters
[in]debugClusterIdx

Index of the cluster

[in]albedoBuffer

The input AlbedoBuffer to query.

[out]outValue

The value in the buffer for the given debug point. returns true on success or false if an error occured.

...

Get the cluster emissive value of a debug point from an EmissiveBuffer.

Parameters
[in]debugClusterIdx

Index of the cluster

[in]emissiveBuffer

The input EmissiveBuffer to query.

[out]outValue

The value in the buffer for the given debug point. returns true on success or false if an error occured.

...

Get the cluster transparency value of a debug point from an TransparencyBuffer.

Parameters
[in]debugClusterIdx

Index of the cluster

[in]transparencyBuffer

The input TransparencyBuffer to query.

[out]outValue

The value in the buffer for the given debug point. returns true on success or false if an error occured.

...

Returns the size of the specified IncidentLightingBuffer object.

Parameters
[in]incidentLightingBuffer

The IncidentLightingBuffer to query.

[in]precision

The hint to what floating point precision to use.

...

Get system id from IncidentLightingBuffer.

Parameters
[in]incidentLightingBuffer

The IncidentLightingBuffer to query.

...

Returns the size of the specified InputLightingBuffer object.

Parameters
[in]inputLightingBuffer

The InputLightingBuffer to query.

...

Get system id from InputLightingBuffer.

Parameters
[in]inputLightingBuffer

The InputLightingBuffer to query.

...

Does not include lighting.


Anchor
ad6ac10dbf1b3f9f77a27e36ff78b96e5a2cbbdc5ee16030419432074d3d53ab7ead6ac10dbf1b3f9f77a27e36ff78b96e5
a2cbbdc5ee16030419432074d3d53ab7e

Geo::GeoGuid GEO_CALL Enlighten::GetInputWorkspaceGUID

...

public: Geo::GeoGuidGEO_CALL GetInputWorkspaceGUID
(
    const Enlighten::RadProbeSetCoreRadSystemCore * coreData,
    Geo::s32 index
)

...

Returns the GUID of a specific entry in the expected input lighting buffer list.

Parameters
[in]coreData

The core data to query.

[in]index

The index of the system to query. Must be >= 0 and less than the length returned by GetInputWorkspaceListLength.


Anchor
a2cbbdc5ee16030419432074d3d53ab7ea275eced88f3df67520a0dafb9345e83ca2cbbdc5ee16030419432074d3d53ab7e
a275eced88f3df67520a0dafb9345e83c

Geo::GeoGuid GEO_CALL Enlighten::GetInputWorkspaceGUID

...

public: Geo::GeoGuidGEO_CALL GetInputWorkspaceGUID
(
    const Enlighten::RadSystemCoreRadCubeMapCore * coreData,
    Geo::s32 index
)

...

Returns the GUID of a specific entry in the expected input lighting buffer list.

Parameters
[in]coreData

The core data to query.

[in]index

The index of the system to query. Must be >= 0 and less than the length returned by GetInputWorkspaceListLength.


Anchor
ad830d9674ba5684cd0c6db6d190b71bead6ac10dbf1b3f9f77a27e36ff78b96e5ad830d9674ba5684cd0c6db6d190b71be
ad6ac10dbf1b3f9f77a27e36ff78b96e5

Geo::GeoGuid GEO_CALL Enlighten::GetInputWorkspaceGUID

...

public: Geo::GeoGuidGEO_CALL GetInputWorkspaceGUID
(
    const Enlighten::RadDataBlockRadProbeSetCore * dataBlockcoreData,
    Geo::s32 index
)

...

Returns the GUID of a specific entry in the expected input lighting buffer list.

Parameters
[in]dataBlockcoreData

The precomputed data block for the task. This should be RadSystemCore::m_RadiosityPrecomp (for RadIrradianceTask); RadProbeSetCore::m_ProbeSetPrecomp (for RadProbeTask); RadProbeSetCore::m_EntireProbeSetPrecomp (for EntireProbeSetTask; or RadCubeMapCore::m_ClusterCubeMapPrecomp (for RadCubeMapTask). core data to query.

[in]index

The index of the system to query. Must be >= 0 and less than the length returned by GetInputWorkspaceListLength.

Returns

...

.


Anchor
a275eced88f3df67520a0dafb9345e83cad830d9674ba5684cd0c6db6d190b71bea275eced88f3df67520a0dafb9345e83c
ad830d9674ba5684cd0c6db6d190b71be

Geo::GeoGuid GEO_CALL Enlighten::GetInputWorkspaceGUID

...

public: Geo::GeoGuidGEO_CALL GetInputWorkspaceGUID
(
    const Enlighten::RadCubeMapCoreRadDataBlock * coreDatadataBlock,
    Geo::s32 index
)

...

Returns the GUID of a specific entry in the expected input lighting buffer list.

Parameters
[in]coreDatadataBlock

The core data to queryprecomputed data block for the task. This should be RadSystemCore::m_RadiosityPrecomp (for RadIrradianceTask); RadProbeSetCore::m_ProbeSetPrecomp (for RadProbeTask); RadProbeSetCore::m_EntireProbeSetPrecomp (for EntireProbeSetTask; or RadCubeMapCore::m_ClusterCubeMapPrecomp (for RadCubeMapTask).

[in]index

The index of the system to query. Must be >= 0 and less than the length returned by GetInputWorkspaceListLength.

Returns

The GUID of the entry, or GeoGuid::Invalid if out of range, or input invaild.


Anchor
ad52339dd361be72b488cac43e7980d8c
ad52339dd361be72b488cac43e7980d8c

...

This reports all the instance GUIDs this system saw and recorded during the precompute. You must pass an array that is at least as large as the number reported by GetInputWorkspaceInstanceGuids(). Note that it can succeed not have written anything out if there is a valid projection block, but it's empty. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.

Parameters
[in]inputWorkspace

The input workspace to use.

[out]instanceIdsOut

A pointer to an array of GeoGuid to receive the instance GUIDs. Must not be null and at least as long as GetInputWorkspaceNumInstanceGuids().


Anchor
ad9c4c3e186ce6de3a92e3d51542a8898aa86c3aa183f7e935dc3f6a1fb510ef03ad9c4c3e186ce6de3a92e3d51542a8898
aa86c3aa183f7e935dc3f6a1fb510ef03

Geo::s32 GEO_CALL Enlighten::GetInputWorkspaceListLength

...

public: Geo::s32GEO_CALL GetInputWorkspaceListLength
(
    const Enlighten::RadProbeSetCoreRadSystemCore * probeSetCorecoreSystem
)

...

Returns the length of the input lighting buffer list expected when solving radiosity using this core data.

E.g. the number of pointers in m_InputLighting in RadIrradianceTask, or RadProbeTask. (In older versions of the API, the input lighting data was part of the input workspace object, which has resulted in some confusing terminology.)


Anchor
aa86c3aa183f7e935dc3f6a1fb510ef03a7dda940e4bd4af5cc54307ab262e78caaa86c3aa183f7e935dc3f6a1fb510ef03
a7dda940e4bd4af5cc54307ab262e78ca

Geo::s32 GEO_CALL Enlighten::GetInputWorkspaceListLength

...

public: Geo::s32GEO_CALL GetInputWorkspaceListLength
(
    const Enlighten::RadSystemCoreRadCubeMapCore * coreSystemcoreCubeMap
)

...

Returns the length of the input lighting buffer list expected when solving radiosity using this core data.

E.g. the number of pointers in m_InputLighting in RadIrradianceTask, or RadProbeTask. (In older versions of the API, the input lighting data was part of the input workspace object, which has resulted in some confusing terminology.)


Anchor
a7dda940e4bd4af5cc54307ab262e78caad9c4c3e186ce6de3a92e3d51542a8898a7dda940e4bd4af5cc54307ab262e78ca
ad9c4c3e186ce6de3a92e3d51542a8898

Geo::s32 GEO_CALL Enlighten::GetInputWorkspaceListLength

...

public: Geo::s32GEO_CALL GetInputWorkspaceListLength
(
    const Enlighten::RadCubeMapCoreRadProbeSetCore * coreCubeMapprobeSetCore
)

...

Returns the length of the input lighting buffer list expected when solving radiosity using this core data.

...

E.g. the number of pointers in m_InputLighting in RadIrradianceTask, RadProbeTask, EntireProbeSetTask or RadCubeMapTask.

Parameters

...

This is effectively the largest number that can be returned by GetInputWorkspaceNumProjectedPointsInInstance() Useful if you want to allocate one buffer up front that will always be large enough to accept results. Note that it can succeed and return 0 if there is a valid projection block, but it's empty. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.

Parameters
[in]inputWorkspace

The input workspace to use.

[out]maxPointsOut

A pointer to an s32 to receive the number of points. Must not be null.

...

This is effectively the largest number that can be returned by GetInputWorkspaceNumVersionsInInstance() Useful if you want to allocate one buffer up front that will always be large enough to accept results. Note that it can succeed and return 0 if there is a valid projection block, but it's empty. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.

Parameters
[in]inputWorkspace

The input workspace to use.

[out]maxVersionsOut

A pointer to an s32 to receive the number of versions. Must not be null.

...

The array should be big enough to hold one vector for each point in the input workspace. The number of points is returned by GetNumberOfPointsInInputWorkspace().

Parameters
[in]inputWorkspace

The input workspace to use.

[out]normalsOut

Pointer to an array of vectors to write the normals to.

...

This is a record of all the instance GUIDs this system saw and recorded during the precompute. It's also the length of the array required by GetInputWorkspaceInstanceGuids() Note that it can succeed and set numInstanceGuidsOut to 0 if there is a valid projection block, but it's empty. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.

Parameters
[in]inputWorkspace

The input workspace to use.

[out]numInstanceGuidsOut

A pointer to an s32 to receive the number of instance GUIDs. Must not be null.

...

The points inside an input workspace are ordered and grouped by cluster, so you can identify which point belongs it which cluster from this information. You can also produce this information from GetInputWorkspaceDebugPoint() and GetInputWorkspaceLitDebugPoint(), but this implementation would be more efficient.

Parameters
[in]inputWorkspace

A valid input workspace.

[in]numPointsPerClusterArray

The array to fill. Must be at least as long as that returned by GetNumberOfClustersInInputWorkspace()

...

If the instanceGuid is recognised (i.e. it was seen by the precompute), and versions exist for it, then numPointsOut will be set to the number of points associated with this instance. Note numPointsOut can be zero if there were no associated points. If the instanceGuid is recognised, but no versions exist for it, then numPointsOut will be set to 0. If the instanceGuid is not recognised or invalid, then numPointsOut will be set to -1, but the function still returns true. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.

Parameters
[in]inputWorkspace

The input workspace to use.

[in]instanceGuid

The instance GUID to lookup.

[out]numPointsOut

A pointer to an s32 to receive the number of points. Must not be null.

...

If the instanceGuid is recognised (i.e. it was seen by the precompute), then numVersionsOut will be the number of versions associated with this instance. Note that it is valid for an instance to have no versions associated with it, in which case numVersionsOut will be 0. If the instanceGuid is not recognised or invalid, then numVersionsOut will be set to -1, but the function still returns true. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.

Parameters
[in]inputWorkspace

The input workspace to use.

[in]instanceGuid

The instance GUID to lookup.

[out]numVersionsOut

A pointer to an s32 to receive the number of versions. Must not be null.

...

This array can then be used for visibility computations (eg on the GPU).

Parameters
[in]inputWorkspace

The input workspace to use.

[out]positionsOut

Pointer to an array of vectors to write the positions to.

[out]normalsOut

Pointer to an array of vectors to write the normals to. Both arrays should be big enough to hold one vector for each point in the input workspace. The number of points is returned by GetNumberOfPointsInInputWorkspace().

...

This array can then be used for visibility computations (eg on the GPU). The array should be big enough to hold one vector for each point in the input workspace. The number of points is returned by GetNumberOfPointsInInputWorkspace().

Parameters
[in]inputWorkspace

The input workspace to use.

[out]positionsOut

Pointer to an array of vectors to write the positions to.

...

The arrays should be at least as large as the maximum value that may be written, which can be found by calling GetInputWorkspaceNumProjectedPointsInInstance() in advance, or by using the system-wide num points maximum returned by GetInputWorkspaceMaxProjectedPointsInAnyInstance(). The system wide maximum may be helpful if you wish to allocate a single block of memory and re-use it for other instances. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.

Parameters
[in]inputWorkspace

The input workspace to use.

[in]instanceGuid

The instance GUID to lookup.

[in]versionId

The version ID to lookup.

[out]pointIdxArrayOut

A pointer to an array of s32 to receive the point indices. Must not be null and at least as long as GetInputWorkspaceNumProjectedPointsInInstance().

[out]pointPosArrayOut

A pointer to an array of v128 to receive the point positions. Must not be null and at least as long as GetInputWorkspaceNumProjectedPointsInInstance().

[out]numProjectedPointsOut

A pointer to an s32 to receive the number of points written. Must not be null.

...

If the instanceGuid is recognised, then numVersionsOut will be the number of items written to versionIdsOut. If the instanceGuid is not recognised or is invalid, numVersionsOut will be -1, and no values will be written to versionIdsOut. The versionIdsOut array should be at least as large as the maximum value that may be written, which can be found by calling GetInputWorkspaceNumVersionsInInstance() in advance, or by using the system-wide num versions maximum returned by GetInputWorkspaceMaxVersionsInAnyInstance(). The system wide maximum may be helpful if you wish to allocate a single block of memory and re-use it for other instances. If there is no valid data (the block or input workspace is missing or corrupt) this call will return false, otherwise true.

Parameters
[in]inputWorkspace

The input workspace to use.

[in]instanceId

The instance GUID to lookup.

[out]versionIdsOut

A pointer to an array of s32 to receive the version IDs. Must not be null and at least as long as GetInputWorkspaceNumVersionsInInstance().

[out]numVersionsOut

A pointer to an s32 to receive the number of versions. Must not be null.

...

Computes the intersection between two Line2D.

Parameters
[out]intersection

The intersection point of the two lines.

[in]p

One line.

[in]q

Other line.

...

Return the world space position (xyz) and size (w) of the octree block identified by the specified octree code with the specified voxel size.


Anchor
aa4cd647306a1b0478ac6754db4dc0f17
aa4cd647306a1b0478ac6754db4dc0f17

Geo::u32 GEO_CALL Enlighten::GetOctreeDisplacedProbeCount

...

public: Geo::u32GEO_CALL GetOctreeDisplacedProbeCount
(
    const RadProbeSetCore * core
)

...

Return the total number of displaced probe positions within the specified RadProbeSetCore.

For debugging only.

Parameters
[in]core

A RadProbeSetCore containing a probe set created by automatic probe placement.


Anchor
a380616a6554c4f7f78080a0b5904e56e
a380616a6554c4f7f78080a0b5904e56e

...

For debugging only. The total includes virtual and nonexistent probes.

Parameters
[in]core

A RadProbeSetCore containing a probe set created by automatic probe placement.

...

Return the end of the range of output texture types that can be updated for this combination of solve type and radiosity core.


Anchor
afbda6074d5cf878d2e66ffda2cb473d5ac0ec2454cf4287c9d33ef47e19419b28afbda6074d5cf878d2e66ffda2cb473d5
ac0ec2454cf4287c9d33ef47e19419b28

Geo::

...

s32 Enlighten::GetOutputTextureSize

...

public: Geo::GeoPoint2Ds32 GetOutputTextureSize
(
    const RadSystemCore RadCubeMapCore & core
)

...

Returns the size of the output texture required for this radiosity data.


Anchor
ac0ec2454cf4287c9d33ef47e19419b28afbda6074d5cf878d2e66ffda2cb473d5ac0ec2454cf4287c9d33ef47e19419b28
afbda6074d5cf878d2e66ffda2cb473d5

Geo::

...

GeoPoint2D Enlighten::GetOutputTextureSize

...

public: Geo::s32GeoPoint2D GetOutputTextureSize
(
    const RadCubeMapCore RadSystemCore & core
)

...

Returns the size of the output texture required for this radiosity data.

...

The visibility data is encoded as a spherical harmonic with a number of coefficients depending on the precompute settings used to create the probe set. The number of coefficients can be retrieved from the probeSetCore metadata. The visibility pointer must point to a buffer that is large enough to accommodate the coefficients. Returns a pointer to the visibility data, this pointer will be NULL if the environment visibility is disabled or the probe has been culled by the precompute.

Parameters
[in]probeId

The volumetric probe to query.

[in]probeSetCore

The volumetric probe data to query.

...

Retrieves the light probe visibility for the given probe in the volume probe data.

Returns TRUE on success.

Parameters
[in]probeId

The volumetric probe to query.

[in]probeSetCore

The volumetric probe data to query.

[out]visibility

The volumetric probe visibility.

...

Returns the axis-aligned bounding box of the set of input points in the input workspace.

Parameters
[in]inputWorkspace

The input workspace to compute the bounding box for.

[out]bb

The bounding box object to receive the system bounds.

...

Retrieve the bounding volume of the system.

Parameters
[in]inputWorkspace

The input workspace for the system

[out]boundingBox

The bounding box for the system

...

This is a replacement for GetTextureAlbedoSize()

Parameters
[in]radSystemCoreIn

The radiosity core to compute the texture dimensions for.

[in]scale

The desired texture resolution scale.

[out]widthOut

The width of the albedo and emissive textures, -1 upon error.

[out]heightOut

The height of the albedo and emissive textures, -1 upon error. returns true on success or false if an error occurred.

...

Hash the guids and pointers of the InputLightingBuffer array.

Parameters
[in]inputLightingArray

An array of InputLightingBuffers to hash. This hash included the pointer values.

[in]numBuffers

The number of InputLightingBuffers in the array.

...

You can use Enlighten::GetNumberOfPointsInInputWorkspace() to get the number of points in a system, and Enlighten::GetInputWorkspacePositionAndNormalArray() to get their positions and normals.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]inputWorkspace

The input workspace for the system.

[in]pointAlbedoColours

The albedo colours to set for the points. Each colour component should be between [0..1]. Values outside this range will be clamped internally. The size of this array must be equal to or larger than the value in numPoints. These values are expected in linear colour space.

[in]numPoints

Number of sample points provided. It must match the number of points in the input workspace.

[in]albedoBuffer

The AlbedoBuffer which is being initialised.

...

Sets the albedo colours for an AlbedoBuffer from a materialWorkspace.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]albedoBuffer

The AlbedoBuffer which is being initialised.

...

Sets the albedo colours for an AlbedoBuffer from an albedo texture expected in RGBA format in gamma-2 colour space.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]textureParams

Parameters used for sampling the albedo texture on the CPU.

[in]resolutionScale

An enumeration representing the size of the albedo texture relative to the lightmap resolution. Can be FullResolutionScale or HalfResolutionScale.

[in]albedoBuffer

The AlbedoBuffer which is being initialised.

...

You can use Enlighten::GetNumberOfPointsInInputWorkspace() to get the number of points in a system, and Enlighten::GetInputWorkspacePositionAndNormalArray() to get their positions and normals.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]inputWorkspace

The input workspace for the system.

[in]pointEmissiveColours

The albedo colours to set for the points. Each colour component should be between [0..1]. Values outside this range will be clamped internally. The size of this array must be equal to or larger than the value in numPoints. These values are expected in linear colour space.

[in]numPoints

Number of sample points provided. It must match the number of points in the input workspace.

[in]emissiveBuffer

The EmissiveBuffer which is being initialised.

...

Sets the emissive colours for an EmissiveBuffer from a materialWorkspace.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]emissiveBuffer

The EmissiveBuffer which is being initialised.

...

Sets the emissive colours for an EmissiveBuffer from an emissive texture expected in RGBM format in linear colour space.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]textureParams

Parameters used for sampling the albedo texture on the CPU.

[in]fixedPointMaximum

The maximum value representable by the fixed point RGBM format.

[in]resolutionScale

An enumeration representing the size of the albedo texture relative to the lightmap resolution. Can be FullResolutionScale or HalfResolutionScale.

[in]emissiveBuffer

The EmissiveBuffer which is being initialised.

...

Sets the emissive colours for an EmissiveBuffer from an emissive texture expected in FP16 format in linear colour space.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]textureParams

Parameters used for sampling the albedo texture on the CPU.

[in]resolutionScale

An enumeration representing the size of the albedo texture relative to the lightmap resolution. Can be FullResolutionScale or HalfResolutionScale.

[in]emissiveBuffer

The EmissiveBuffer which is being initialised.

...

This is used to distinguish dynamic material values from static values when initialising or reconstructing the EmissiveBuffer. If a material albedo component is not initialised as dynamic, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]instanceId

The instance ID to set the emissive for.

...

This is used to distinguish dynamic material values from static values when initialising or reconstructing the AlbedoBuffer. If a material component is not initialised as dynamic albedo, any calls to SetMaterialAlbedoColour() will require the AlbedoBuffer to be re-initialised. If a material component is not initialised as dynamic emissive, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised. If a material component is not initialised as dynamic transparency, any calls to SetMaterialTransparency() will require the TransparencyBuffer to be re-initialised.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]selection

The selection of surfaces to set the state for.

[in]dynamicity

The dynamicity to initialise the material component with.

...

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.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]materialId

The material 64 bit material ID to set the emissive for.

...

This is used to distinguish dynamic material values from static values when initialising or reconstructing the EmissiveBuffer. If a material albedo component is not initialised as dynamic, any calls to SetMaterialEmissiveColour() will require the EmissiveBuffer to be re-initialised.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

...

You can use Enlighten::GetNumberOfPointsInInputWorkspace() to get the number of points in a system, and Enlighten::GetInputWorkspacePositionAndNormalArray() to get their positions and normals.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]inputWorkspace

The input workspace for the system.

[in]pointTransparencyValues

The transparency values to set for the points. Each value should be between [0..1]. Values outside this range will be clamped internally. The size of this array must be equal to or larger than the value in numPoints. These values are expected in linear colour space.

[in]numPoints

Number of sample points provided. It must match the number of pointsg in the input workspace.

[in]transparencyBuffer

The TransparencyBuffer which is being initialised.

...

Sets the values for a TransparencyBuffer from a materialWorkspace.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]transparencyBuffer

The TransparencyBuffer which is being initialised.

...

In the alpha channel 0 represents fully transparent and 255 represents fully opaque in linear space.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]textureParams

Parameters used for sampling the albedo texture on the CPU.

[in]pixelStrideInBytes

The stride between pixels in the texture.

[in]alphaOffsetInBytes

The byte offset to the first alpha element.

[in]resolutionScale

An enumeration representing the size of the albedo texture relative to the lightmap resolution. Can be FullResolutionScale or HalfResolutionScale.

[in]transparencyBuffer

The TransparencyBuffer which is being initialised.

...

Tests if a Vertex2D is within a bounding box defined by two Vertex2D.

Parameters
[in]v

Vertex that gets tested

[in]min

Vertex that defines the bounding box minimum

[in]max

Vertex that defines the bounding box maximum

...

Tests if a Vertex2D is within a bounding box defined by two Vertex2D.

Parameters
[in]v

Vertex that gets tested

[in]min

Vertex that defines the bounding box minimum

[in]max

Vertex that defines the bounding box maximum

...

An initialised buffer can require re-initialisation if a static colour changes or the dynamic-ness of a material changes.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

...

An initialised buffer can require re-initialisation if a static colour changes or the dynamic-ness of a material changes.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

...

Returns the number of frames since the last update that changed the given input lighting buffer.

Parameters
[in]lightingBuffer

The lighting buffer to check for changes.

...

Returns true if the specified probe set core is a ProbeOctree.

Parameters
[in]core

A valid RadProbeSetCore object

...

Returns TRUE if the probe was culled during precompute.

Parameters
[in]probeId

The volumetric probe to query.

[in]probeSetCore

The volumetric probe data to query.

...

An initialised buffer can require re-initialisation if a static colour changes or the dynamic-ness of a material changes.

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

...

RadIrradianceTask, RadProbeTask and RadCubeMapTask all expect a pointer to an ordered

...

Parameters
[in]coreData

The core data to prepare the input list for.

[in]inputLightingBuffers

The unordered list of lighting buffers.

[in]numLightingBuffers

The number of lighting buffers provided.

[in]listILBOut

The location to write the new list to. This array of pointers must be the length returned by GetInputWorkspaceListLength().

...

RadIrradianceTask, RadProbeTask and RadCubeMapTask all expect a pointer to an ordered

...

Parameters
[in]coreData

The core data to prepare the input list for.

[in]inputLightingBuffers

The unordered list of lighting buffers.

[in]numLightingBuffers

The number of lighting buffers provided.

[in]listILBOut

The location to write the new list to. This array of pointers must be the length returned by GetInputWorkspaceListLength().

...

RadIrradianceTask, RadProbeTask, EntireProbeSetTask and RadCubeMapTask all expect a pointer to an ordered

...

Parameters
[in]dataBlock

The precomputed data block for the task. This should be RadSystemCore::m_RadiosityPrecomp (for RadIrradianceTask); RadProbeSetCore::m_ProbeSetPrecomp (for RadProbeTask); RadProbeSetCore::m_EntireProbeSetPrecomp (for EntireProbeSetTask; or RadCubeMapCore::m_ClusterCubeMapPrecomp (for RadCubeMapTask).

[in]inputLightingBuffers

The unordered list of lighting buffers.

[in]numLightingBuffers

The number of lighting buffers provided.

[in]listILBOut

The location to write the new list to. This array of pointers must be the length returned by GetInputWorkspaceListLength().

...

RadIrradianceTask, RadProbeTask and RadCubeMapTask all expect a pointer to an ordered

...

Parameters
[in]coreData

The core data to prepare the input list for.

[in]inputLightingBuffers

The unordered list of lighting buffers.

[in]numLightingBuffers

The number of lighting buffers provided.

[in]listILBOut

The location to write the new list to. This array of pointers must be the length returned by GetInputWorkspaceListLength().

...

Read an AlbedoBuffer from a stream.

Parameters
[in]stream

- The Geo::IGeoStream to read.

...

Read an ClusterAlbedoWorkspaceMaterialData from a stream.

Parameters
[in]stream

- The Geo::IGeoStream to read.

[in]sections

- Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or Enlighten::Iff::ClusterAlbedoWorkspaceMaterialGuidsSection to load the optional material guids data

...

Read an ClusterAlbedoWorkspaceMaterialData from file.

Parameters
[in]filename

- The name of the file to read.

[in]sections

- Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or Enlighten::Iff::ClusterAlbedoWorkspaceMaterialGuidsSection to load the optional material guids data

...

Read an DynamicMaterialWorkspace from a stream.

Parameters
[in]stream

- The Geo::IGeoStream to read.

...

Read an EmissiveBuffer from a stream.

Parameters
[in]stream

- The Geo::IGeoStream to read.

...

Read an IncidentLightingBuffer from a stream.

Parameters
[in]stream

- The Geo::IGeoStream to read.

...

Read an InputLightingBuffer from a stream.

Parameters
[in]stream

- The Geo::IGeoStream to read.

...

Read an InputWorkspace from a stream.

Parameters
[in]stream

- The Geo::IGeoStream to read.

[in]sections

- Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or Enlighten::Iff::DynamicInputWorkspaceDataSection to load the optional dynamic data and/or Enlighten::Iff::ProjectedPointsInputWorkspaceDataSection to load the optional duster projection data and/or Enlighten::Iff::HighQualityBounceCoordinateDataSection to load the optional high quality bounce data

...

Read an InputWorkspace from file.

Parameters
[in]filename

- The name of the file to read.

[in]sections

- Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or Enlighten::Iff::DynamicInputWorkspaceDataSection to load the optional dynamic data and/or Enlighten::Iff::ProjectedPointsInputWorkspaceDataSection to load the optional duster projection data and/or Enlighten::Iff::HighQualityBounceCoordinateDataSection to load the optional high quality bounce data

...

Read a PrecomputedVisibilityData struct from a stream.

Parameters
[in]stream

- The Geo::IGeoStream to read

...

Read a PrecomputedVisibilityData struct from a file.

Parameters
[in]filename

- The name of the file to read

...

The data is written in little-endian format, so the loading code must handle this.

Parameters
[in]stream

- The Geo::IGeoStream to read.

...

The files are written in target-endian format, so the same loading code works for all platforms.

Parameters
[in]filename

- The name of the file to read.

...

The files are written in target-endian format, so the same loading code works for all platforms.

Parameters
[in]stream

- The Geo::IGeoStream to read

[in]sections

- Pass 0 to load no optional data or any combination of the following: Enlighten::Iff::ProbeSetPrecompSection Enlighten::Iff::EntireProbeSetPrecompSection Enlighten::Iff::ProbeSetInterpolationDataSection Enlighten::Iff::ProbeSetVisibilityDataSection Enlighten::Iff::ProbeSetDebugDataSection

...

The files are written in target-endian format, so the same loading code works for all platforms. Note this doesn't do any endian swapping. It assumes you are reading/writing the file on the same platform.

Parameters
[in]filename

- The name of the file to read

[in]sections

- Pass 0 to load no optional data or any combination of the following: Enlighten::Iff::ProbeSetPrecompSection Enlighten::Iff::EntireProbeSetPrecompSection Enlighten::Iff::ProbeSetInterpolationDataSection Enlighten::Iff::ProbeSetVisibilityDataSection Enlighten::Iff::ProbeSetDebugDataSection

...

The data is written in little-endian format, so the loading code must handle this.

Parameters
[in]stream

- The Geo::IGeoInputStream to read.

[in]sections

- Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or a combination of Enlighten::Iff::ProjectionDataSection and/or Enlighten::Iff::DynamicRadiosityDataSection

...

The files are written in target-endian format, so the same loading code works for all platforms.

Parameters
[in]filename

- The name of the file to read.

[in]sections

- Which of the optional data blocks to allocate and read. Pass 0 to load no optional data, or a combination of Enlighten::Iff::ProjectionDataSection and/or Enlighten::Iff::DynamicRadiosityDataSection

...

Note
titleNote

If the output width or height are set to zero, then only the header of the file is read, and the width, height outputFormat and outputFormatByteOrder are filled in. The function then returns true. If the output size is non-zero, the function assumes that the various output pointers are large enough to hold the incoming data. In general, users should not have to call these functions in their integration.

Parameters
[out]outputWidth

- The width of the output texture

[out]outputHeight

- The height of the output texture

[out]outputFormat

- The format of the output texture

[out]outputFormatByteOrder

- The byte order of the LRB irradiance/directional output texture

[in]irradianceOutput64

- pointer large enough to hold 64-bit-per-pixel output data (e.g. FP16). Pass NULL if not required

[in]irradianceOutput32

- pointer large enough to hold 32-bit-per-pixel output data (e.g. LRB). Pass NULL if not required

[in]directionalOutput

- pointer large enough to hold directional output data. Pass NULL if not required

[in]stream

- The file stream from which to read the rad task data from

...

Please see ReadRadTaskOutput for details.

Parameters
[out]outputWidth

- The width of the output texture

[out]outputHeight

- The height of the output texture

[out]outputFormat

- The format of the output texture

[out]outputFormatByteOrder

- The byte order of the LRB irradiance/directional output texture

[in]irradianceOutput64

- pointer large enough to hold 64-bit-per-pixel output data (e.g. FP16). Pass NULL if not required

[in]irradianceOutput32

- pointer large enough to hold 32-bit-per-pixel output data (e.g. LRB). Pass NULL if not required

[in]directionalOutput

- pointer large enough to hold directional output data. Pass NULL if not required

[in]filename

- The name of the rad task output file to read data from

...

This BounceBuffer is then used as input to the IndirectInputLighting stage for the next solve iteration.

Parameters
[in]params

A complete and valid ResampleBounceParameters

[out]timeUs

Number of microseconds it took to Resample the bounce

...

Generate a texture that highlights the information specified in the task object.

Parameters
[in]task

A valid pointer to a RadDebugBucketSelectionTask to perform.

...

Set visibility in an input workspace for a directional light, using precomputed visibility data.

Parameters
[in]workspaceMemory

The input workspace memory block.

[in]precomputedVisibilityData

The block of precomputed visibility data.

[in]visibilityWorkspace

The visibility workspace memory block.

[in]visibilityData

The visibility data to set, one bit per duster.

[in]lightDirection

The direction of the light source.

...

If the selection has been previously setup as dynamic (using InitialiseMaterialAlbedoAsDynamic()), the AlbedoBuffer will need updating using UpdateAlbedoBuffer(). If the selection is static however, the AlbedoBuffer will need re-initialising using InitialiseAlbedoBufferFromMaterialWorkspace().

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]selection

The selection of surfaces to set the albedo for.

[in]newAlbedoColour

The colour to set the material to. This is expected to be in linear colour space.

...

If the selection has been previously setup as dynamic (using InitialiseMaterialEmissiveAsDynamic()), the EmissiveBuffer will need updating using UpdateEmissiveBuffer(). If the selection is static however, the EmissiveBuffer will need re-initialising using InitialiseEmissiveBufferFromMaterialWorkspace().

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]selection

The selection of surfaces to set the emissive for.

[in]newEmissiveColour

The colour to set to the emissive component of the material. This is expected to be in linear colour space.

...

If the selection has been previously setup as dynamic (using InitialiseMaterialTransparencyAsDynamic()), the TransparencyBuffer will need updating using UpdateTransparencyBuffer(). If the selection is static however, the TransparencyBuffer will need re-initialising using InitialiseTransparencyBufferFromMaterialWorkspace().

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]selection

The selection of surfaces to set the transparency for.

[in]newTransparency

The transparency to set the material to. This is expected to be in linear space.

...

Set all transparency values of transparencyWorkspace to the given value.

Parameters
[in]inputWorkspace

The input workspace for the system

[out]transparencyWorkspace

The TransparencyWorkspace for the system

[in]transparencyValue

The value to reset all the quads in this system to

...

This does not update the lightmap. All parameters must be valid non-null objects.

Parameters
[in]task

A valid pointer to the RadIrradianceTaskLod structure to complete.

[in]workspace

A valid pointer to a block of memory to use as a workspace which must be at least as big as m_RequiredWorkspaceSize in the core meta data.

[out]timeUs

Number of microseconds it took to solve the task.

[out]numSolvedClusters

Number of output pixels solved in the task.

...

Returns TRUE on success. All parameters must be valid non-null objects.

Parameters
[in]task

A valid pointer to the cube map task structure to complete.

[in]workspace

A valid pointer to a block of memory to use as a workspace which must be at least as big as the amount returned from CalcRequiredWorkspaceMemory().

[out]timeUs

Number of microseconds it took to solve the task.

[out]numSolvedPixels

Number of output pixels solved in the task.

...

Returns TRUE on success. All parameters must be valid non-null objects.

Parameters
[in]task

A valid pointer to the irradiance task structure to complete.

[in]workspace

A valid pointer to a block of memory to use as a workspace which must be at least as big as m_RequiredWorkspaceSize in the core meta data.

[out]timeUs

Number of microseconds it took to solve the task.

[out]numSolvedPixels

Number of output pixels solved in the task.

...

Returns TRUE on success. Returns FALSE if the input task is precomputed as L2.

Parameters
[in]task

A valid pointer to the probe task structure to complete.

[out]timeUs

Returns the number of microseconds taken to perform the compute

...

Returns TRUE on success. Returns FALSE if the input task is precomputed as L1.

Parameters
[in]task

A valid pointer to the probe task structure to complete.

[out]timeUs

Returns the number of microseconds taken to perform the compute

...

This later gets overridden

Parameters
[in]outputInstance

The output instance

[in]uvScale

The UV scaling to apply to the instance chart

[in]precompBlockSize

The block size used when testing charts in the packing

...

This will preserve values that were initialised with static data (ie ColourPerPoint or Texture).

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]albedoBuffer

A valid AlbedoBuffer where the results will be written to. This buffer is used as input to the IndirectInputLighting stage.

...

This will preserve values that were initialised with static data (ie ColourPerPoint or Texture).

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]emissiveBuffer

A valid EmissiveBuffer where the results will be written to. This buffer is used as input to the IndirectInputLighting stage.

...

This will preserve values that were initialised with static data (ie ColourPerPoint or Texture).

Parameters
[in]materialWorkspace

A pointer to the DynamicMaterialWorkspace for the system.

[in]materialData

A pointer to the precompute material data.

[in]transparencyBuffer

A valid TransparencyBuffer where the results will be written to. This buffer is used as input to the IndirectInputLighting stage.

...

Update the transparency workspace with values calculated from interpolated probes.

Parameters
[in]inputWorkspace

The input workspace for the system

[out]transparencyWorkspace

The workspace where intermediate probe results and other calculation results are stored

[in]probeSetManager

The Probe Set Manager object that provides interface for probe interpolation

[in]recomputeInterpolants

Whether or not to recompute the interpolants

...

Update the transparency workspace with values calculated from interpolated probes.

Parameters
[in]inputWorkspace

The input workspace for the system

[out]transparencyWorkspace

The workspace where intermediate probe results and other calculation results are stored

[in]interpolationInputs

An array of probesets to interpolate from

[in]numInterpolationInputs

The number of probesets in the array

[in]recomputeInterpolants

Whether or not to recompute the interpolants

...

Returns true if there are no NaN's or non-finite numbers in the specified BounceBuffer object.

Parameters
[in]bounceBuffer

The BounceBuffer to query.

...

Returns true if there are no NaN's or non-finite numbers in the specified InputLightingBuffer object.

Parameters
[in]incidentLightingBuffer

The IncidentLightingBuffer to query.

...

Returns true if there are no NaN's or non-finite numbers in the specified InputLightingBuffer object.

Parameters
[in]inputLightingBuffer

The InputLightingBuffer to query.

...

Write an AlbedoBuffer to a stream.

Parameters
[in]albedoBuffer

- The AlbedoBuffer to write.

[in]stream

- The Geo::IGeoStream to write.

...

Write an ClusterAlbedoWorkspaceMaterialData to a stream, ready to be loaded on the target platform.

Parameters
[in]materialData

- The ClusterAlbedoWorkspaceMaterialData to write.

[in]stream

- The Geo::IGeoStream to write to.

...

Write an ClusterAlbedoWorkspaceMaterialData to file, ready to be loaded on the target platform.

Parameters
[in]materialData

- The ClusterAlbedoWorkspaceMaterialData to write.

[in]filename

- The name of the file to write.

...

Write an DynamicMaterialWorkspace to a stream.

Parameters
[in]materialWorkspace

- The DynamicMaterialWorkspace to write.

[in]stream

- The Geo::IGeoStream to write.

...

Write an EmissiveBuffer to a stream.

Parameters
[in]emissiveBuffer

- The EmissiveBuffer to write.

[in]stream

- The Geo::IGeoStream to write.

...

Write an IncidentLightingBuffer to a stream.

Parameters
[in]incidentLightingBuffer

- The IncidentLightingBuffer to write.

[in]stream

- The Geo::IGeoStream to write.

...

Write an InputLightingBuffer to a stream.

Parameters
[in]inputLightingBuffer

- The InputLightingBuffer to write.

[in]stream

- The Geo::IGeoStream to write.

...

Fails if the system ids or sample counts do not match.

Parameters
[in]source

- The InputLightingBuffer to read.

[inout]destination

- The InputLightingBuffer to write.

...

Write an InputLightingBuffer to file.

Parameters
[in]inputLightingBuffer

- The InputLightingBuffer to write.

[in]filename

- The name of the file to write.

...

Write an InputWorkspace to a stream, ready to be loaded on the target platform.

Parameters
[in]inputWorkspace

- The InputWorkspace to write.

[in]stream

- The Geo::IGeoStream to write to.

...

Write an InputWorkspace to file, ready to be loaded on the target platform.

Parameters
[in]inputWorkspace

- The InputWorkspace to write.

[in]filename

- The name of the file to write.

...

Write a PrecomputedVisibilityData structure to a stream.

Parameters
[in]visibilityData

- The PrecomputedVisibilityData structure data to write.

[in]stream

- The Geo::IGeoStream to write.

...

Write a PrecomputedVisibilityData structure to a file.

Parameters
[in]visibilityData

- The PrecomputedVisibilityData structure data to write.

[in]filename

- The name of the file to write.

...

Write a RadCubeMapCore to a stream, ready to be loaded on the target platform.

Parameters
[in]cubeMapCore

- The RadCubeMapCore to write.

[in]stream

- The Geo::IGeoStream to write to.

...

Write a RadCubeMapCore to file, ready to be loaded on the target platform.

Parameters
[in]cubeMapCore

- The RadCubeMapCore to write.

[in]filename

- The name of the file to write.

...

Write run-time probeset data to a stream, ready to be loaded on the target platform.

Parameters
[in]probeSet

- The probe set data to write.

[in]stream

- The Geo::IGeoStream to write.

...

The data is written in little-endian format, so the loading code must handle this.

Parameters
[in]probeSet

- The probe set data to write.

[in]filename

- The name of the file to write.

...

Write a RadSystemCore to a stream, ready to be loaded on the target platform.

Parameters
[in]system

- The RadSystemCore to write.

[in]stream

- The Geo::IGeoStream to write to.

...

Write a RadSystemCore to file, ready to be loaded on the target platform.

Parameters
[in]system

- The RadSystemCore to write.

[in]filename

- The name of the file to write.

...

This will be the buffer that the GPU uses to read lights from.

Parameters
[in]sortedLights

A valid SortedLights buffer created though a call to CreateSortedLights()

[in]destMem

A pointer to memory where the CachedData of the sorted lights will be written to.

...