└>Geo::IGeoSerialisable
└>Geo::IGeoReleasable
A triangle list and GBuffer of the incoming system.
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). |
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.
[in] | pMeshInfo | Contains properties of the mesh to be added |
public: Geo::GeoBoundingBox ComputeBoundingBox() const
Lightmap UV debugging helpers.
public: IBakeInputSystem * Create()
Create a new IBakeInputSystem.
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.
public: bool DumpPixelUVLayoutStats() const
Various debugging helpers (can these be extracted into another API?)
public: bool DumpTriangleUVs
(
Geo::s32 debugFaceIndex
) const
Various debugging helpers (can these be extracted into another API?)
public: bool Finalise()
Create GBuffers after all geometry is added.
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.
public: bool GetBarycentricWeights
(
Geo::BaryWeights & triangleBarycentricWeights,
Geo::s32 faceIndex,
Geo::v128 position
) const
Lightmap UV debugging helpers.
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.
public: const char * GetFullName() const
Get the full name.
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.
public: Geo::GeoGuid GetId() const
The Guid for the IBakeInputSystem.
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.
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).
public: const Geo::GeoPoint2 * GetLightmapUVs
(
Geo::s32 bakeInstanceIdx
) const
Get the packed lightmap UVs for a geometry instance.
public: Geo::s32 GetNumInstances() const
Get the geometry instances information.
public: bool GetOutputIsIntensity() const
Is this BakeSystem stores output as intensity value of the average light direction.
public: EBakeType GetOutputType() const
The output type for the system.
public: bool GetPixelBarycentricWeights
(
Geo::s32 x,
Geo::s32 y,
PixelBarycentricWeights & out
) const
Extract barycentric weights for the pixel at this location.
[in] | x | X Coordinate. |
[in] | y | Y Coordinate. |
[out] | out | Mesh/Triangle identifier and the barycentric weights of the pixel center. |
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. |
public: bool GetPixelIndexForTriangle
(
Geo::s32 & pixelIndex,
Geo::s32 triangleIndex,
const Geo::BaryWeights & barycentricWeights
) const
Lightmap UV debugging helpers.
public: Geo::s32 GetTriangleForUVCoordinate
(
float u,
float v
) const
Lightmap UV debugging helpers.
public: bool GetUVCoordinateForTriangle
(
Geo::GeoPoint2 & uv,
Geo::s32 triangleIndex,
const Geo::BaryWeights & barycentricWeights
) const
Lightmap UV debugging helpers.
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.
public: bool LightMapHasBadUVFaces() const
Lightmap UV debugging helpers.
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.
public: NonCopyable
(
NonCopyable &&
)
Defaulted to allow move.
public: NonCopyable & operator=
(
NonCopyable &&
)
Defaulted to allow move.
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)'
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.
public: bool SaveChartUVLayoutEps
(
const char * filename,
Geo::s32 triangleIndex,
Geo::s32 pixelIndex
) const
Various debugging helpers (can these be extracted into another API?)
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?)
public: bool SavePixelTrianglesEps
(
const char * filename,
Geo::s32 pixelIndex
) const
Various debugging helpers (can these be extracted into another API?)
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?)
public: bool SaveTrianglePixelsEps
(
const char * filename,
Geo::s32 triangleIndex
) const
Various debugging helpers (can these be extracted into another API?)
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?)
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?)
public: bool SaveUVLayoutEps
(
const char * filename,
Geo::s32 triangleIndex,
Geo::s32 pixelIndex
) const
Various debugging helpers (can these be extracted into another API?)
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.
[in] | pProps | Baking properties to use. |
True if passed in valid properties, False if pProps is NULL or has an invalid Guid
public: void SetFullName
(
const char * name
)
Set a globally unique name.
public: void SetId
(
Geo::GeoGuid id
)
The Guid for the IBakeInputSystem.
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).