This is the documentation for Enlighten.
class Enlighten IBakeInputSystem
class Enlighten::IBakeInputSystem
└>Geo::IGeoSerialisable
└>Geo::IGeoReleasable
A triangle list and GBuffer of the incoming system.
Functions
Name | Description |
---|---|
AddMesh(const BakeInputMeshInfo &) | Call this for each mesh you want added, ensuring that the invisible meshes are not included in the standard lightmap, and that non-target meshes are not included in the Enlighten lightmap. |
ComputeBoundingBox() | Lightmap UV debugging helpers. |
Create() | Create a new IBakeInputSystem. |
DilateTexture(Geo::GeoFp16Texture *) | Expand and dilate a provided albedo/emissive texture. |
DumpPixelUVLayoutStats() | Various debugging helpers (can these be extracted into another API?) |
DumpTriangleUVs(Geo::s32) | Various debugging helpers (can these be extracted into another API?) |
Finalise() | Create GBuffers after all geometry is added. |
GetBakePropertiesGuid() | Retrieves the GUID of the IBakeInputProperties passed into one of this class's methods. |
GetBarycentricWeights(Geo::BaryWeights &, Geo::s32, Geo::v128) | Lightmap UV debugging helpers. |
GetFaceIndex(const Geo::GeoGuid &, const Geo::s32 &, const Geo::s32 &, Geo::s32) | Map a mesh face index to a global bakesystem index. |
GetFullName() | Get the full name. |
GetHeight() | Returns the width and height of the internal GBuffer. |
GetId() | The Guid for the IBakeInputSystem. |
GetInstance(Geo::s32, Geo::GeoGuid &, Geo::s32 &, Geo::s32 &, Geo::s32 &, Geo::s32 &) | Get the geometry instances information. |
GetIsUserLightmap() | Is this BakeSystem a user-defined lightmap (if not then it is an Enlighten system, used only for sampling indirect light). |
GetLightmapUVs(Geo::s32) | Get the packed lightmap UVs for a geometry instance. |
GetNumInstances() | Get the geometry instances information. |
GetOutputIsIntensity() | Is this BakeSystem stores output as intensity value of the average light direction. |
GetOutputType() | The output type for the system. |
GetPixelBarycentricWeights(Geo::s32, Geo::s32, PixelBarycentricWeights &) | Extract barycentric weights for the pixel at this location. |
GetPixelIndexForTriangle(Geo::s32 &, Geo::s32, const Geo::BaryWeights &) | Lightmap UV debugging helpers. |
GetTriangleForUVCoordinate(float, float) | Lightmap UV debugging helpers. |
GetUVCoordinateForTriangle(Geo::GeoPoint2 &, Geo::s32, const Geo::BaryWeights &) | Lightmap UV debugging helpers. |
GetWidth() | Returns the width and height of the internal GBuffer. |
LightMapHasBadUVFaces() | Lightmap UV debugging helpers. |
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. |
SaveChartUVLayoutEps(const char *, Geo::s32, Geo::s32) | Various debugging helpers (can these be extracted into another API?) |
SaveLightmapUVDebuggingRaySets(const char *, const Geo::v128 &, const Geo::v128 &) | Various debugging helpers (can these be extracted into another API?) |
SavePixelTrianglesEps(const char *, Geo::s32) | Various debugging helpers (can these be extracted into another API?) |
SavePixelTrianglesRaySet(const char *, Geo::s32, const Geo::v128 &, const Geo::v128 &) | Various debugging helpers (can these be extracted into another API?) |
SaveTrianglePixelsEps(const char *, Geo::s32) | Various debugging helpers (can these be extracted into another API?) |
SaveTrianglePixelsRaySet(const char *, Geo::s32, const Geo::v128 &, const Geo::v128 &) | Various debugging helpers (can these be extracted into another API?) |
SaveUVDebuggingRaySet(const char *, const Geo::v128 &, const Geo::v128 &) | Various debugging helpers (can these be extracted into another API?) |
SaveUVLayoutEps(const char *, Geo::s32, Geo::s32) | Various debugging helpers (can these be extracted into another API?) |
SetBakeProperties(const IBakeInputProperties *) | Set the baking properties for this system. |
SetFullName(const char *) | Set a globally unique name. |
SetId(Geo::GeoGuid) | The Guid for the IBakeInputSystem. |
SetIsUserLightmap(bool) | Is this BakeSystem a user-defined lightmap (if not then it is an Enlighten system, used only for sampling indirect light). |
virtual bool Enlighten::IBakeInputSystem::AddMesh
public: bool AddMesh
(
const BakeInputMeshInfo & pMeshInfo
)
Call this for each mesh you want added, ensuring that the invisible meshes are not included in the standard lightmap, and that non-target meshes are not included in the Enlighten lightmap.
In order to use this method the bake properties must be set first.
Parameters
[in] | pMeshInfo | Contains properties of the mesh to be added |
virtual Geo::GeoBoundingBox Enlighten::IBakeInputSystem::ComputeBoundingBox
public: Geo::GeoBoundingBox ComputeBoundingBox() const
Lightmap UV debugging helpers.
static IBakeInputSystem* Enlighten::IBakeInputSystem::Create
public: IBakeInputSystem * Create()
Create a new IBakeInputSystem.
virtual Geo::v128* Enlighten::IBakeInputSystem::DilateTexture
public: Geo::v128 * DilateTexture
(
Geo::GeoFp16Texture * texture
) const
Expand and dilate a provided albedo/emissive texture.
This should be done to the albedo and emissive textures used in UpdateRuntimeLighting to ensure that the texture sampling handles border pixels well.
virtual bool Enlighten::IBakeInputSystem::DumpPixelUVLayoutStats
public: bool DumpPixelUVLayoutStats() const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::DumpTriangleUVs
public: bool DumpTriangleUVs
(
Geo::s32 debugFaceIndex
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::Finalise
public: bool Finalise()
Create GBuffers after all geometry is added.
virtual Geo::GeoGuid Enlighten::IBakeInputSystem::GetBakePropertiesGuid
public: Geo::GeoGuid GetBakePropertiesGuid()
Retrieves the GUID of the IBakeInputProperties passed into one of this class's methods.
Return the Invalid GUID if hasn't been set yet.
virtual bool Enlighten::IBakeInputSystem::GetBarycentricWeights
public: bool GetBarycentricWeights
(
Geo::BaryWeights & triangleBarycentricWeights,
Geo::s32 faceIndex,
Geo::v128 position
) const
Lightmap UV debugging helpers.
virtual Geo::s32 Enlighten::IBakeInputSystem::GetFaceIndex
public: Geo::s32 GetFaceIndex
(
const Geo::GeoGuid & sys,
const Geo::s32 & instIdx,
const Geo::s32 & meshIdx,
Geo::s32 meshFaceIndex
) const
Map a mesh face index to a global bakesystem index.
virtual const char* Enlighten::IBakeInputSystem::GetFullName
public: const char * GetFullName() const
Get the full name.
virtual Geo::s32 Enlighten::IBakeInputSystem::GetHeight
public: Geo::s32 GetHeight() const
Returns the width and height of the internal GBuffer.
Note that this value is derived from the properties passed into the Finalise() method.
virtual Geo::GeoGuid Enlighten::IBakeInputSystem::GetId
public: Geo::GeoGuid GetId() const
The Guid for the IBakeInputSystem.
virtual bool Enlighten::IBakeInputSystem::GetInstance
public: bool GetInstance
(
Geo::s32 idx,
Geo::GeoGuid & oSys,
Geo::s32 & oInstIdx,
Geo::s32 & oMeshIdx,
Geo::s32 & oNumFaces,
Geo::s32 & oNumVerts
) const
Get the geometry instances information.
virtual bool Enlighten::IBakeInputSystem::GetIsUserLightmap
public: bool GetIsUserLightmap() const
Is this BakeSystem a user-defined lightmap (if not then it is an Enlighten system, used only for sampling indirect light).
virtual const Geo::GeoPoint2* Enlighten::IBakeInputSystem::GetLightmapUVs
public: const Geo::GeoPoint2 * GetLightmapUVs
(
Geo::s32 bakeInstanceIdx
) const
Get the packed lightmap UVs for a geometry instance.
virtual Geo::s32 Enlighten::IBakeInputSystem::GetNumInstances
public: Geo::s32 GetNumInstances() const
Get the geometry instances information.
virtual bool Enlighten::IBakeInputSystem::GetOutputIsIntensity
public: bool GetOutputIsIntensity() const
Is this BakeSystem stores output as intensity value of the average light direction.
virtual EBakeType Enlighten::IBakeInputSystem::GetOutputType
public: EBakeType GetOutputType() const
The output type for the system.
virtual bool Enlighten::IBakeInputSystem::GetPixelBarycentricWeights
public: bool GetPixelBarycentricWeights
(
Geo::s32 x,
Geo::s32 y,
PixelBarycentricWeights & out
) const
Extract barycentric weights for the pixel at this location.
Parameters
[in] | x | X Coordinate. |
[in] | y | Y Coordinate. |
[out] | out | Mesh/Triangle identifier and the barycentric weights of the pixel center. |
Note
Enlighten converts all incoming meshes to CCW winding order; this means that the Barycentric coordinates created here may require reinterpretation when applied back to the source mesh. Unity and Unreal are examples of engines that would require flipping the order of weights, as they store meshes in CW winding order.
virtual bool Enlighten::IBakeInputSystem::GetPixelIndexForTriangle
public: bool GetPixelIndexForTriangle
(
Geo::s32 & pixelIndex,
Geo::s32 triangleIndex,
const Geo::BaryWeights & barycentricWeights
) const
Lightmap UV debugging helpers.
virtual Geo::s32 Enlighten::IBakeInputSystem::GetTriangleForUVCoordinate
public: Geo::s32 GetTriangleForUVCoordinate
(
float u,
float v
) const
Lightmap UV debugging helpers.
virtual bool Enlighten::IBakeInputSystem::GetUVCoordinateForTriangle
public: bool GetUVCoordinateForTriangle
(
Geo::GeoPoint2 & uv,
Geo::s32 triangleIndex,
const Geo::BaryWeights & barycentricWeights
) const
Lightmap UV debugging helpers.
virtual Geo::s32 Enlighten::IBakeInputSystem::GetWidth
public: Geo::s32 GetWidth() const
Returns the width and height of the internal GBuffer.
Note that this value is derived from the properties passed into the Finalise() method.
virtual bool Enlighten::IBakeInputSystem::LightMapHasBadUVFaces
public: bool LightMapHasBadUVFaces() const
Lightmap UV debugging helpers.
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 bool Enlighten::IBakeInputSystem::SaveChartUVLayoutEps
public: bool SaveChartUVLayoutEps
(
const char * filename,
Geo::s32 triangleIndex,
Geo::s32 pixelIndex
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::SaveLightmapUVDebuggingRaySets
public: bool SaveLightmapUVDebuggingRaySets
(
const char * filenamePrefix,
const Geo::v128 & scale,
const Geo::v128 & offset
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::SavePixelTrianglesEps
public: bool SavePixelTrianglesEps
(
const char * filename,
Geo::s32 pixelIndex
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::SavePixelTrianglesRaySet
public: bool SavePixelTrianglesRaySet
(
const char * filename,
Geo::s32 pixelIndex,
const Geo::v128 & scale,
const Geo::v128 & offset
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::SaveTrianglePixelsEps
public: bool SaveTrianglePixelsEps
(
const char * filename,
Geo::s32 triangleIndex
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::SaveTrianglePixelsRaySet
public: bool SaveTrianglePixelsRaySet
(
const char * filename,
Geo::s32 triangleIndex,
const Geo::v128 & scale,
const Geo::v128 & offset
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::SaveUVDebuggingRaySet
public: bool SaveUVDebuggingRaySet
(
const char * filename,
const Geo::v128 & scale,
const Geo::v128 & offset
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::SaveUVLayoutEps
public: bool SaveUVLayoutEps
(
const char * filename,
Geo::s32 triangleIndex,
Geo::s32 pixelIndex
) const
Various debugging helpers (can these be extracted into another API?)
virtual bool Enlighten::IBakeInputSystem::SetBakeProperties
public: bool SetBakeProperties
(
const IBakeInputProperties * pProps
)
Set the baking properties for this system.
This properties should be set in order to add meshes to this system.
Parameters
[in] | pProps | Baking properties to use. |
Returns
True if passed in valid properties, False if pProps is NULL or has an invalid Guid
virtual void Enlighten::IBakeInputSystem::SetFullName
public: void SetFullName
(
const char * name
)
Set a globally unique name.
virtual void Enlighten::IBakeInputSystem::SetId
public: void SetId
(
Geo::GeoGuid id
)
The Guid for the IBakeInputSystem.
virtual void Enlighten::IBakeInputSystem::SetIsUserLightmap
public: void SetIsUserLightmap
(
bool v
)
Is this BakeSystem a user-defined lightmap (if not then it is an Enlighten system, used only for sampling indirect light).