This is the documentation for Enlighten.
class Enlighten IPrecompInputProbeSet
class Enlighten::IPrecompInputProbeSet
└>Geo::IGeoSerialisable
└>Geo::IGeoReleasable
A class representing a set of sample points for which the run-time can generate spherical harmonic representations of the diffuse light incident on each sample point.
Functions
Name | Description |
---|---|
Create() | Create a new empty IPrecompInputProbeSet. |
Create(const IPrecompInputProbeSet *const *, Geo::s32) | Create a new octree IPrecompInputProbeSet as a union of the specified octree probe set objects. |
GetBoundingBoxBasisX() | Get the first basis vector of the non-axis aligned bounding box. |
GetBoundingBoxBasisY() | Get the second basis vector of the non-axis aligned bounding box. |
GetBoundingBoxBasisZ() | Get the third basis vector of the non-axis aligned bounding box. |
GetBoundingBoxOrigin() | Get the origin of the non-axis aligned bounding box. |
GetBuildParameters() | Edit the build parameters for this probe set. |
GetBuildParameters() | Read only access to the build parameters for this probe set. |
GetEmbeddedProbeCount() | Return the number of probes that are embedded in surfaces. |
GetEmbeddedProbePositions() | Return the positions of probes that are embedded in surfaces. |
GetId() | Return the unique ID of this light probe set. |
GetInvalidProbeCount() | Return the number of probes that see invalid faces. |
GetInvalidProbePositions() | Return the positions of probes that see invalid faces. |
GetName() | Get the full name. |
GetNumProbes() | Return the number of probes contained in this probe set. |
GetOctreeLevel() | Returns the level of this probe set within the octree. |
GetOctreeVoxelSize() | Returns the size of a leaf voxel within the octree. |
GetProbePositions() | Access the light probe positions. |
GetRegularGridResolutionX() | Get the resolution of the regular grid in the direction of the first bounding box basis vector. |
GetRegularGridResolutionY() | Get the resolution of the regular grid in the direction of the second bounding box basis vector. |
GetRegularGridResolutionZ() | Get the resolution of the regular grid in the direction of the third bounding box basis vector. |
IsOctree() | Returns true if this probe set was generated for a probe octree. |
IsRegularGrid() | Returns if this probe set is a probe grid. |
Load(IGeoInputStream &, Geo::u32) | Load an instance of this class from an IGeoInputStream. |
NonCopyable(NonCopyable &&) | Defaulted to allow move. |
operator=(NonCopyable &&) | Defaulted to allow move. |
Release() | Free this object that was created within the Enlighten libraries. |
Save(IGeoStream &, Geo::u32) | Save an instance of this class to an IGeoStream. |
SetId(Geo::GeoGuid) | Set the unique ID of this light probe set. |
SetName(const char *) | Set a globally unique name. |
SetProbePositions(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 *, const Geo::v128 *) | Copy light probe position values between [begin, end) into this object. |
SetRandomProbePositions(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::s32, const Geo::s32 &) | Create an random set of light probes within a non axis aligned bounding box. |
SetRegularGridProbePositions(const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::v128 &, const Geo::s32, const Geo::s32, const Geo::s32) | Create light probes based on a regular grid. |
static IPrecompInputProbeSet* Enlighten::IPrecompInputProbeSet::Create
public: IPrecompInputProbeSet * Create()
Create a new empty IPrecompInputProbeSet.
static IPrecompInputProbeSet* Enlighten::IPrecompInputProbeSet::Create
public: IPrecompInputProbeSet * Create
(
const IPrecompInputProbeSet *const * others,
Geo::s32 count
)
Create a new octree IPrecompInputProbeSet as a union of the specified octree probe set objects.
All probe sets must be coincident.
virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxBasisX
public: const Geo::v128 & GetBoundingBoxBasisX() const
Get the first basis vector of the non-axis aligned bounding box.
virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxBasisY
public: const Geo::v128 & GetBoundingBoxBasisY() const
Get the second basis vector of the non-axis aligned bounding box.
virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxBasisZ
public: const Geo::v128 & GetBoundingBoxBasisZ() const
Get the third basis vector of the non-axis aligned bounding box.
virtual const Geo::v128& Enlighten::IPrecompInputProbeSet::GetBoundingBoxOrigin
public: const Geo::v128 & GetBoundingBoxOrigin() const
Get the origin of the non-axis aligned bounding box.
virtual IPrecompProbeSetBuildParameters* Enlighten::IPrecompInputProbeSet::GetBuildParameters
public: IPrecompProbeSetBuildParameters * GetBuildParameters()
Edit the build parameters for this probe set.
virtual const IPrecompProbeSetBuildParameters* Enlighten::IPrecompInputProbeSet::GetBuildParameters
public: const IPrecompProbeSetBuildParameters * GetBuildParameters() const
Read only access to the build parameters for this probe set.
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetEmbeddedProbeCount
public: Geo::s32 GetEmbeddedProbeCount() const
Return the number of probes that are embedded in surfaces.
virtual const Geo::v128* Enlighten::IPrecompInputProbeSet::GetEmbeddedProbePositions
public: const Geo::v128 * GetEmbeddedProbePositions() const
Return the positions of probes that are embedded in surfaces.
virtual Geo::GeoGuid Enlighten::IPrecompInputProbeSet::GetId
public: Geo::GeoGuid GetId() const
Return the unique ID of this light probe set.
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetInvalidProbeCount
public: Geo::s32 GetInvalidProbeCount() const
Return the number of probes that see invalid faces.
virtual const Geo::v128* Enlighten::IPrecompInputProbeSet::GetInvalidProbePositions
public: const Geo::v128 * GetInvalidProbePositions() const
Return the positions of probes that see invalid faces.
virtual const char* Enlighten::IPrecompInputProbeSet::GetName
public: const char * GetName() const
Get the full name.
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetNumProbes
public: Geo::s32 GetNumProbes() const
Return the number of probes contained in this probe set.
virtual Geo::u32 Enlighten::IPrecompInputProbeSet::GetOctreeLevel
public: Geo::u32 GetOctreeLevel() const
Returns the level of this probe set within the octree.
virtual float Enlighten::IPrecompInputProbeSet::GetOctreeVoxelSize
public: float GetOctreeVoxelSize() const
Returns the size of a leaf voxel within the octree.
virtual const Geo::v128* Enlighten::IPrecompInputProbeSet::GetProbePositions
public: const Geo::v128 * GetProbePositions() const
Access the light probe positions.
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetRegularGridResolutionX
public: Geo::s32 GetRegularGridResolutionX() const
Get the resolution of the regular grid in the direction of the first bounding box basis vector.
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetRegularGridResolutionY
public: Geo::s32 GetRegularGridResolutionY() const
Get the resolution of the regular grid in the direction of the second bounding box basis vector.
virtual Geo::s32 Enlighten::IPrecompInputProbeSet::GetRegularGridResolutionZ
public: Geo::s32 GetRegularGridResolutionZ() const
Get the resolution of the regular grid in the direction of the third bounding box basis vector.
virtual bool Enlighten::IPrecompInputProbeSet::IsOctree
public: bool IsOctree() const
Returns true if this probe set was generated for a probe octree.
virtual bool Enlighten::IPrecompInputProbeSet::IsRegularGrid
public: bool IsRegularGrid() const
Returns if this probe set is a probe grid.
This is only true if the probe positions form a single fully occupied regular grid and there are no duplicates or probe positions outside of the grid.
virtual bool Geo::IGeoSerialisable::Load
public: bool Load
(
IGeoInputStream & stream,
Geo::u32 section
)
Load an instance of this class from an IGeoInputStream.
The stream must be ready to read from. You can load sections of an object by passing a bitmask representing the desired sections rather than Iff::AllSectionsMask, which will load all sections. It is also safe to call this method on an object multiple times with different section arguments to load multiple parts.
Geo::NonCopyable::NonCopyable
public: NonCopyable
(
NonCopyable &&
)
Defaulted to allow move.
NonCopyable& Geo::NonCopyable::operator=
public: NonCopyable & operator=
(
NonCopyable &&
)
Defaulted to allow move.
virtual void Geo::IGeoReleasable::Release
public: void Release()
Free this object that was created within the Enlighten libraries.
Expect this to behave in a similar way to calling 'delete(this)'
virtual bool Geo::IGeoSerialisable::Save
public: bool Save
(
IGeoStream & stream,
Geo::u32 section
) const
Save an instance of this class to an IGeoStream.
The stream must be ready to write to. You can save sections of an object by passing a bitmask representing the desired sections rather than Iff::AllSectionsMask, which will save all sections that are available.
virtual void Enlighten::IPrecompInputProbeSet::SetId
public: void SetId
(
Geo::GeoGuid id
)
Set the unique ID of this light probe set.
virtual void Enlighten::IPrecompInputProbeSet::SetName
public: void SetName
(
const char * name
)
Set a globally unique name.
virtual bool Enlighten::IPrecompInputProbeSet::SetProbePositions
public: bool SetProbePositions
(
const Geo::v128 & origin,
const Geo::v128 & basisX,
const Geo::v128 & basisY,
const Geo::v128 & basisZ,
const Geo::v128 * begin,
const Geo::v128 * end
)
Copy light probe position values between [begin, end) into this object.
Previous positions are deleted. The bounding box is defined by a set of orthogonal basis vectors and their origin. The basis vectors are required to be orthogonal. The lengths of the basis vectors define the size of the bounding box.
Parameters
[in] | origin | Origin of the basis vectors. |
[in] | basisX | First basis vector. |
[in] | basisY | Second basis vector. |
[in] | basisZ | third basis vector. |
[in] | begin | A pointer to the first element to be added |
[in] | end | A pointer to an element one past the last entity (as standard STL syntax) |
Returns
True if the operation succeeded, false if there was not enough memory to satisfy the request or if the bounding box either has zero volume or its basis vectors are not orthogonal.
virtual bool Enlighten::IPrecompInputProbeSet::SetRandomProbePositions
public: bool SetRandomProbePositions
(
const Geo::v128 & origin,
const Geo::v128 & basisX,
const Geo::v128 & basisY,
const Geo::v128 & basisZ,
const Geo::s32 numProbes,
const Geo::s32 & seed
)
Create an random set of light probes within a non axis aligned bounding box.
Previous positions are deleted. The bounding box is defined by a set of orthogonal basis vectors and their origin. The basis vectors are required to be orthogonal. The lengths of the basis vectors define the size of the bounding box. A defined number of probes in the range [1..65536] are placed randomly within the bounding box.
Parameters
[in] | origin | Origin of the basis vectors. |
[in] | basisX | First basis vector. |
[in] | basisY | Second basis vector. |
[in] | basisZ | Third basis vector. |
[in] | numProbes | Number of probes placed in the bounding box. |
[in] | seed | A seed value to ensure consistency between invocations. |
Returns
True if the operation succeeded, false if there was not enough memory to satisfy the request or if the bounding box either has zero volume or its basis vectors are not orthogonal.
virtual bool Enlighten::IPrecompInputProbeSet::SetRegularGridProbePositions
public: bool SetRegularGridProbePositions
(
const Geo::v128 & origin,
const Geo::v128 & basisX,
const Geo::v128 & basisY,
const Geo::v128 & basisZ,
const Geo::s32 resolutionX,
const Geo::s32 resolutionY,
const Geo::s32 resolutionZ
)
Create light probes based on a regular grid.
Previous positions are deleted. The regular grid is defined by a set of orthogonal basis vectors and their origin as well as the resolution in each basis vector direction. The basis vectors are required to be orthogonal and the resolution must be in the range [1..65536] otherwise this function will return false. The lengths of the basis vectors define the size of the regular grid. Based on the resolutions, the regular grid is split up into cells, and at the center of each cell a probe gets placed. This means that a regular grid with a resolution of 1 in each basis vector direction will have its single probe placed in the center of the grid and not
at the basis vector origin.
Parameters
[in] | origin | Origin of the basis vectors. |
[in] | basisX | First basis vector. |
[in] | basisY | Second basis vector. |
[in] | basisZ | third basis vector. |
[in] | resolutionX | Number of probes in the direction of the first basis vector. |
[in] | resolutionY | Number of probes in the direction of the second basis vector. |
[in] | resolutionZ | Number of probes in the direction of the third basis vector. |
Returns
True if the operation succeeded, false if there was not enough memory to satisfy the request or if the bounding box either has zero volume or its basis vectors are not orthogonal.