Versions Compared

Key

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

This module contains the interfaces/objects used when dealing with the Low Level API.

Classes

NameDescription
Enlighten::InstanceDescMinimal

Minimal description of an instance.

Enlighten::IPrecompBuildParameters

A class containing various parameters and dials for the system level precompute process.

Enlighten::IPrecompCubeMapBuildParameters

Precompute parameters for cube maps.

Enlighten::IPrecompCubeMapCore

A class containing a data block that is used by the run-time to generate cube maps.

Enlighten::IPrecompDepthCubeMap

Handle to the depth cube map data.

Enlighten::IPrecompGeneratedSystems

Result of the the IPrecompute::CreateSystemsByVoxelisation() call.

Enlighten::IPrecompInputCubeMap

A class representing a cube map object which the run-time can generate dynamically.

Enlighten::IPrecompInputGeometry

Handle to the InputGeometry.

Enlighten::IPrecompInputItemDependencies

A collection of item dependencies.

Enlighten::IPrecompInputMesh

The standard precompute mesh input class.

Enlighten::IPrecompInputProbeOctree

Represents a region of 3D space within which sets of probe positions are adaptively generated.

Enlighten::IPrecompInputProbeRegion

Represents a region of 3D space voxelized at various resolutions.

Enlighten::IPrecompInputProbeSet

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.

Enlighten::IPrecompInputSystem

Handle to the InputSystem.

Enlighten::IPrecompMeshValidation

An interface containing methods for analyzing meshes.

Enlighten::IPrecompOutputCubeMap

Handle to the precompute output data for cube maps.

Enlighten::IPrecompOutputProbeOctree

An octree of probe positions grouped into probe sets.

Enlighten::IPrecompOutputProbeSet

Handle to the LightTransport data for probesets.

Enlighten::IPrecompPackedGeometry

Handle to the PackedGeometry.

Enlighten::IPrecompPackedInstance

Handle to the PackedInstance.

Enlighten::IPrecompPackedSystem

Class encapsulating the geometry and additional data for a system, light-mapped or otherwise.

Enlighten::IPrecompProbeAtlasMaxima

Maximum values across the entire world, used to determine the resources required at runtime.

Enlighten::IPrecompProbeOctree

A class representing an octree which defines sets of probe positions within a volume.

Enlighten::IPrecompProbeOctreeLayout

The layout of an octree.

Enlighten::IPrecompProbeSetBuildParameters

A class defining parameters for SH sample probe building.

Enlighten::IPrecompProbeSetRadiosity

A class containing a set of data blocks that are used by the run-time to generate SH representations for the related IPrecompInputProbeSet.

Enlighten::IPrecompRadiosityNormalTexture

Handle to the radiosity normal texture.

Enlighten::IPrecompSystemClustering

Handle to the SystemClustering.

Enlighten::IPrecompSystemCompressedLightTransport

Handle to a compressed SystemLightTransport.

Enlighten::IPrecompSystemDependencies

Handle to the SystemDependencies.

Enlighten::IPrecompSystemDuster

Handle to the platform-agnostic input sample points (dusters).

Enlighten::IPrecompSystemLightTransport

Handle to the SystemLightTransport.

Enlighten::IPrecompSystemPreClustering

Handle to the SystemPreClustering.

Enlighten::IPrecompSystemRadiosity

Handle to the SystemRadiosity.

Enlighten::IPrecompSystemsDependencies

Holds IPrecompSystemDependencies for multiple systems.

Enlighten::IPrecompute

The Low Level Enlighten Precompute API.

Enlighten::IPrecompVolumeQuery

A class representing a region of 3D space which can be tested for intersection against an axis-aligned box.

Enlighten::PointProjectionOptions

Projection options for the point projection functionality.

Enlighten::PointProjectionSurface

A surface we can project points onto.

Enlighten::PointProjectionVersion

Description of the point projection of one instance to a set of surfaces.

Enlighten::PppiAtlasMaxima

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

Enlighten::PrecompInputFace

A face (triangle) in EnlightenPrecomp input geometry.

Enlighten::PrecompInputInstance

A simple class housing the data required with each stand-alone instance of some geometry.

Enlighten::PrecompInputVertex

A vertex in EnlightenPrecomp input geometry.

Enlighten::PrecompMeshIdentifier

Simple struct to identify an IPrecompInputMesh with the name and GUID of the geom and the index and GUID of the mesh.

Enlighten::PrecompMeshProperties

Properties of input meshes.

Enlighten::PrecompVolumeQueryBox

An example implementation of IPrecompVolumeQuery which defines a region of 3D space as a set of boxes.

Enlighten::SystemDependencies

A list of system dependencies.

Enlighten::SystemGrouping

A groupings of instances into systems.

Geo::IdentVertLinkBuilder

A utility for identifying pairs of "identical" vertices in a vertex buffer.

Geo::IdxLink

A link between two vertices.

Geo::TriGroupSelection

Utility for doing vertex-based chart identification.

Functions

NameDescription
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.

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.

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

Create an IPrecompGeneratedSystems object from inputSystem.

CreateDebugEnvironmentClustering(Geo::s32)

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

CreatePrecompute()

Create an instance of the Precompute.

CreateTriGroupsForPrecompInputMesh(const IPrecompInputMesh *)

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

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

Estimate the dependencies between a set of systems.

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

Estimate the dependencies between a set of systems.

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.

IsClosedMesh(Geo::StridedArrayView< PrecompIndex3 >)

Return true if the mesh is closed.

RepairHoles(Geo::StridedArrayView< PrecompIndex3 >)

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

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

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

Enums

NameDescription
eAutoSimpMode

The UV auto generation / simplification mode for a mesh.

eMeshClassificationLightingType

Enumeration for reporting results of the first step of Mesh Classification (lightmap-lit or probe-lit).

ePrecompCubeMapQuality

Quality levels for the raytracing in the cube map precompute.

ePrecompQuality

Quality levels for majority of raytracing in the precompute, except cube maps.

GeometryBuildResult

Enumeration for reporting geometry build success/fail.

ProbeOctreeResolution

The resolution at which probes should be placed.

VolumeQueryResult

The result of a volume query.

Typedefs

NameDescription
Geo::GeoPair< Geo::GeoGuid, Geo::u32 > MaterialGuidMapping

A mapping between a material GUID and a 32-bit material ID.

Geo::FixedSizeArray< Geo::s32, 3 > PrecompIndex3

An array of three indices.

Geo::u64 PrecompOctreeCode

Identifies a block within the octree.

Variables

NameDescription
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.


Anchor
a1e89f4ce79fbb58cf18ac08712de3c93
a1e89f4ce79fbb58cf18ac08712de3c93

void GEO_CALL Enlighten::CalculateUvScaleAndWorldOutputPixelSize

...

public: void GEO_CALL CalculateUvScaleAndWorldOutputPixelSize
(
    float geomOutputPixelSize,
    const Geo::Matrix & instanceTransform,
    bool scaleUvsWithInstanceSize,
    float instanceAdditionalUvScale,
    Geo::s32 & outUvScale,
    float & outWorldOutputPixelSize
)

...

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

This depends on the instance transform, the "ScaleUvsWithInstanceSize" flag on the instance, the "AdditionalUvScale" value on the instance and the output pixel size on the geom.

Parameters
[in]geomOutputPixelSize

The unscaled pixel size

[in]instanceTransform

The transform matrix for the instance

[in]scaleUvsWithInstanceSize

Should the scaling of the transform of the instance be taken into account when generating the per-instance lightmap UVs (i.e. should the output pixel size specified for this instance be in world units (true) or in local geometry units (false))

[in]instanceAdditionalUvScale

Specifies an additional scale that should be applied to the lightmap UVs for the geometry instance instance (to change the output pixel size). This is applied in addition to any scaling related to the ScaleUvsWithInstanceSize flag.

[out]outUvScale

The UV scale for that instance

[out]outWorldOutputPixelSize

The pixel size after instance UV scaling is applied


Anchor
a7417533118976840b037d23797a2e6fd
a7417533118976840b037d23797a2e6fd

PppiAtlasMaxima GEO_CALL Enlighten::ComputePppiAtlasMaxima

...

public: PppiAtlasMaxima GEO_CALL ComputePppiAtlasMaxima
(
    Geo::u32 probeSetCount,
    const PrecompOctreeCode * octreeCodes,
    const PppiAtlasFootprint * footprints
)

...

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

Parameters
[in]probeSetCount

The number of probe sets in the world.

[in]octreeCodes

The octree code associated with each probe set.

[in]footprints

The result of GetOctreePppiAtlasFootprint for each probe set.


Anchor
aeeb360ba0afb3c3b600c6c3e5c62c9f4
aeeb360ba0afb3c3b600c6c3e5c62c9f4

Geo::s32 GEO_CALL Enlighten::ConvertInputSystemToIPrecompGeneratedSystem

...

public: Geo::s32GEO_CALL ConvertInputSystemToIPrecompGeneratedSystem
(
    Enlighten::IPrecompInputSystem * inputSystem,
    const IPrecompInputGeometry *const * pInputGeoms,
    Geo::s32 numGeoms,
    Enlighten::IPrecompGeneratedSystems *& generatedSystem
)

...

Create an IPrecompGeneratedSystems object from inputSystem.

The generatedSystem object will have only one system in it (inputSystem) Note that the output object (generatedSystem) owns the input system, e.g. inputSystem will be destroyed when generatedSystem is destroyed.

Parameters
[in]inputSystem

InputSystem to be converted to PrecompGeneratedSystem

[in]pInputGeoms

array of geoms referenced by inputsystem

[in]numGeoms

num of geoms in pInputGeoms

[out]generatedSystem

IPrecompGeneratedSystems with one system in it.

Returns

0 if successful, otherwise a non-zero value.


Anchor
a7c1143303fe8ca284513db8f713b340f
a7c1143303fe8ca284513db8f713b340f

Enlighten::IClusteringOutput* GEO_CALL Enlighten::CreateDebugEnvironmentClustering

...

public: Enlighten::IClusteringOutput *GEO_CALL CreateDebugEnvironmentClustering
(
    Geo::s32 environmentResolution
)

...

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


Anchor
ab0666a027285be3cd385187965811ed1
ab0666a027285be3cd385187965811ed1

IPrecompute* Enlighten::CreatePrecompute

...

public: IPrecompute * CreatePrecompute()

...

Create an instance of the Precompute.


Anchor
a47cdac74e3b9540a7e634d156acd3636
a47cdac74e3b9540a7e634d156acd3636

Geo::TriGroupSelection* GEO_CALL Enlighten::CreateTriGroupsForPrecompInputMesh

...

public: Geo::TriGroupSelection *GEO_CALL CreateTriGroupsForPrecompInputMesh
(
    const IPrecompInputMesh * inputMesh
)

...

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

This can be used to generate the same tri groups the precompute will generate when given this mesh. The tri groups are determined by the connectivity in the index buffer (ie. shared vertices) and the links (Geo::IdxLink) specified or generated by the user.

Parameters
[in]inputMesh

The input mesh.

...

Returns

A valid tri group if successful, else null.


Anchor
a200a170680220b6df00fc78788184ad6
a200a170680220b6df00fc78788184ad6

Geo::s32 GEO_CALL Enlighten::EstimateSystemDependencies

...

public: Geo::s32GEO_CALL EstimateSystemDependencies
(
    const Enlighten::InstanceDescMinimal< IPrecompInputGeometry > * instances,
    Geo::s32 numInstances,
    const Enlighten::SystemGrouping * iSystemGrouping,
    Enlighten::SystemDependencies *& oSystemDependencies
)

...

Estimate the dependencies between a set of systems.

Uses the instance bounding boxes to determine the system bounding boxes, and a collection of bounding box/sphere intersection tests to determine the dependencies. The function can be given either IPrecompInputGeometry or IPrecompPackedGeometry. Results will be identical.

Parameters
[in]instances

The instances in the systems.

[in]numInstances

The number of instances.

[in]iSystemGrouping

A list of system groups. Each group contains indices into the input array of instances.

[out]oSystemDependencies

The system dependencies.

Returns

0 if successful, otherwise a non-zero value.


Anchor
ab8706166233fbbdf02410fdaede7d7ef
ab8706166233fbbdf02410fdaede7d7ef

Geo::s32 GEO_CALL Enlighten::EstimateSystemDependencies

...

public: Geo::s32GEO_CALL EstimateSystemDependencies
(
    const Enlighten::InstanceDescMinimal< IPrecompPackedGeometry > * instances,
    Geo::s32 numInstances,
    const Enlighten::SystemGrouping * iSystemGrouping,
    Enlighten::SystemDependencies *& oSystemDependencies
)

...

Estimate the dependencies between a set of systems.

Uses the instance bounding boxes to determine the system bounding boxes, and a collection of bounding box/sphere intersection tests to determine the dependencies. The function can be given either IPrecompInputGeometry or IPrecompPackedGeometry. Results will be identical.

Parameters
[in]instances

The instances in the systems.

[in]numInstances

The number of instances.

[in]iSystemGrouping

A list of system groups. Each group contains indices into the input array of instances.

[out]oSystemDependencies

The system dependencies.

Returns

0 if successful, otherwise a non-zero value.


Anchor
a8c1772fc5ccbad63bf00b992c18aeb92
a8c1772fc5ccbad63bf00b992c18aeb92

Geo::v128 GEO_CALL Enlighten::GetOctreeCodeWorldPositionAndSize

...

public: Geo::v128GEO_CALL GetOctreeCodeWorldPositionAndSize
(
    PrecompOctreeCode octreeCode,
    float voxelSize
)

...

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
a9cac2aadb8d5efe65d37b5d1ceefaa6a
a9cac2aadb8d5efe65d37b5d1ceefaa6a

bool Enlighten::IsClosedMesh

...

public: bool IsClosedMesh
(
    Geo::StridedArrayView< PrecompIndex3 > faces
)

...

Return true if the mesh is closed.


Anchor
a400579486da7c56a4872b02349cc8c4e
a400579486da7c56a4872b02349cc8c4e

Geo::GeoArray<PrecompIndex3> Enlighten::RepairHoles

...

public: Geo::GeoArray< PrecompIndex3 > RepairHoles
(
    Geo::StridedArrayView< PrecompIndex3 > faces
)

...

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

Each hole is filled with a triangle fan. The mesh cannot be repaired if any two holes share a common vertex.


Anchor
a233ad445bc3987244e86dd47e95ce375
a233ad445bc3987244e86dd47e95ce375

void GEO_CALL Enlighten::StoreTemporaryScaleAndTranslation

...

public: void GEO_CALL StoreTemporaryScaleAndTranslation
(
    Enlighten::PrecompOutputInstance * outputInstance,
    Geo::s32 uvScale,
    Geo::s32 precompBlockSize
)

...

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

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


Anchor
ad3ec85119b3a3b8484af937dec32ff8c
ad3ec85119b3a3b8484af937dec32ff8c

eAutoSimpMode

...

public: enum eAutoSimpMode
{
    ASM_NONE = 0,
    ASM_SIMPLIFY_NO_UVS,
    ASM_SIMPLIFY_USING_UVS,
    NUM_AUTO_SIMP_MODES
}

...

The UV auto generation / simplification mode for a mesh.

Used as part of PrecompMeshProperties.

enumerators
ASM_NONE

Switch AutoUV generation off.

ASM_SIMPLIFY_NO_UVS

Switch AutoUV generation on and use auto generated UVs for all charts.

ASM_SIMPLIFY_USING_UVS

Switch AutoUV generation on, use auto UV generated UVs only if they are better than the input UVs.

NUM_AUTO_SIMP_MODES


Anchor
ad0b8e334dcb191dafb6438dff848a60f
ad0b8e334dcb191dafb6438dff848a60f

eMeshClassificationLightingType

...

public: enum eMeshClassificationLightingType
{
    MCLT_LIGHTMAP,
    MCLT_PROBE
}

...

Enumeration for reporting results of the first step of Mesh Classification (lightmap-lit or probe-lit).

enumerators
MCLT_LIGHTMAP
MCLT_PROBE


Anchor
ae19fe634c10d879f688769a28611b271
ae19fe634c10d879f688769a28611b271

ePrecompCubeMapQuality

...

public: enum ePrecompCubeMapQuality
{
    PCMQ_LOW = 1,
    PCMQ_MEDIUM = 4,
    PCMQ_HIGH = 16,
    PCMQ_VERY_HIGH = 64
}

...

Quality levels for the raytracing in the cube map precompute.

Each levels correspond to a number of rays that get generated and cast per pixel.

Info
titleSee Also

ePrecompQuality

enumerators
PCMQ_LOW
PCMQ_MEDIUM

The default.

PCMQ_HIGH
PCMQ_VERY_HIGH


Anchor
aadae28c3efc13deeb8236d8faa19a310
aadae28c3efc13deeb8236d8faa19a310

ePrecompQuality

...

public: enum ePrecompQuality
{
    PCQ_DEBUG = 16,
    PCQ_DRAFT = 512,
    PCQ_LOW = 2048,
    PCQ_MEDIUM = 8192,
    PCQ_HIGH = 32768,
    PCQ_VERY_HIGH = 131072
}

...

Quality levels for majority of raytracing in the precompute, except cube maps.

Each levels correspond to a number of rays that get generated and than cast over the sphere and/or hemisphere. More rays result in a better approximation and therefore higher quality.

Info
titleSee Also

ePrecompCubeMapQuality

enumerators
PCQ_DEBUG
PCQ_DRAFT
PCQ_LOW
PCQ_MEDIUM
PCQ_HIGH
PCQ_VERY_HIGH


Anchor
a5c694ae3b9143a232ae843bc10bd4e01
a5c694ae3b9143a232ae843bc10bd4e01

GeometryBuildResult

...

public: enum GeometryBuildResult
{
    GEOM_BUILD_SUCCESS = 0,
    GEOM_BUILD_INVALID_MESH_INPUT = -1,
    GEOM_BUILD_INVALID_MESH_PROPERTIES = -2,
    GEOM_BUILD_PRECOMPUTE_FAILURE = -3,
    GEOM_BUILD_EMPTY = -4,
    GEOM_BUILD_USER_CANCELLED = -5,
    GEOM_BUILD_INVALID_TERRAIN = -6,
    GEOM_BUILD_INVALID_GEOM_PROPERTIES = -7
}

...

Enumeration for reporting geometry build success/fail.

enumerators
GEOM_BUILD_SUCCESS

The geometry was built successfully.

GEOM_BUILD_INVALID_MESH_INPUT

A mesh failed validation, or the geometry's output pixel size or atlas width/height was invalid.

GEOM_BUILD_INVALID_MESH_PROPERTIES

The flags and/or parameters of a mesh were invalid, or the geometry contained no input mesh or no output mesh.

GEOM_BUILD_PRECOMPUTE_FAILURE

An internal precompute error occurred. Contact Enlighten support.

GEOM_BUILD_EMPTY

The geometry contained no meshes.

GEOM_BUILD_USER_CANCELLED

The user cancelled the geometry build.

GEOM_BUILD_INVALID_TERRAIN

Geometry is marked up as terrain, but has invalid terrain properties.

GEOM_BUILD_INVALID_GEOM_PROPERTIES

Geometry has invalid properties.


Anchor
ac5e48bef6cf4e4f272309e8d05d55149
ac5e48bef6cf4e4f272309e8d05d55149

ProbeOctreeResolution

...

public: enum ProbeOctreeResolution
{
    PROBEOCTREERESOLUTION_FULL,
    PROBEOCTREERESOLUTION_HALF,
    PROBEOCTREERESOLUTION_QUARTER,
    PROBEOCTREERESOLUTION_EIGHTH,
    PROBEOCTREERESOLUTION_SIXTEENTH,
    PROBEOCTREERESOLUTION_1_IN_32,
    PROBEOCTREERESOLUTION_1_IN_64,
    PROBEOCTREERESOLUTION_1_IN_128,
    PROBEOCTREERESOLUTION_1_IN_256,
    PROBEOCTREERESOLUTIONCOUNT,
    PROBEOCTREERESOLUTION_NONE = PROBEOCTREERESOLUTIONCOUNT
}

...

The resolution at which probes should be placed.

enumerators
PROBEOCTREERESOLUTION_FULL
PROBEOCTREERESOLUTION_HALF
PROBEOCTREERESOLUTION_QUARTER
PROBEOCTREERESOLUTION_EIGHTH
PROBEOCTREERESOLUTION_SIXTEENTH
PROBEOCTREERESOLUTION_1_IN_32
PROBEOCTREERESOLUTION_1_IN_64
PROBEOCTREERESOLUTION_1_IN_128
PROBEOCTREERESOLUTION_1_IN_256
PROBEOCTREERESOLUTIONCOUNT
PROBEOCTREERESOLUTION_NONE


Anchor
af99b00013c87b1aa8651bdb110842a4d
af99b00013c87b1aa8651bdb110842a4d

VolumeQueryResult

...

public: enum VolumeQueryResult
{
    VOLUMEQUERYESULT_OUTSIDE,
    VOLUMEQUERYESULT_PARTIAL,
    VOLUMEQUERYESULT_INSIDE
}

...

The result of a volume query.

enumerators
VOLUMEQUERYESULT_OUTSIDE

Completely outside.

VOLUMEQUERYESULT_PARTIAL

Partly inside.

VOLUMEQUERYESULT_INSIDE

Completely inside.