class Enlighten IBake

This is the documentation for Enlighten.

class Enlighten IBake

class Enlighten::IBake

    └>Geo::IGeoReleasable

The Low Level Enlighten Baking API.

Functions

Name

Description

Name

Description

BakeProbeSetDirect(const IPrecompInputProbeSet *, const IBakeVisibilityBuffer *, Geo::IGeoProgressProxy *, IBakeOutputProbeSet *&)

Calculates the direct light output for a given probe set and set of lights.

BakeProbeSetVisibility(const IPrecompInputProbeSet *, const IBakeVisibilityBuffer *, const Geo::GeoGuid &, Geo::IGeoProgressProxy *, IBakeOutputProbeSetVisibility *&)

Calculates the light mask for a direct light for a given probe set.

BakeSystemAO(const IBakeInputSystem *, const IBakeSystemResource *, const IBakeTextureManager *, const IBakeInputProperties *, Geo::IGeoProgressProxy *, IBakeOutputSystemAO *&)

Calculates the AO contribution for a given system.

BakeSystemDirect(const IBakeInputSystem *, const IBakeVisibilityBuffer *, const IBakeSystemResource *, const IBakeTextureManager *, const IBakeInputProperties *, Geo::IGeoProgressProxy *, IBakeOutputSystemDirect *&)

Calculates the direct light output for a given system and set of lights.

BakeSystemFinalGather(const IBakeInputSystem *, const IBakeSolvedRuntime *, const IBakeInputRayOriginPositions *, const IBakeSystemResource *, const IBakeTextureManager *, const IBakeInputProperties *, Geo::IGeoProgressProxy *, Geo::u32, const IBakeInputSystem *const *, const IBakeOutputSystemDirect *const *, const IBakeOutputSystemIndirect *const *, IBakeOutputSystemFinalGather *&)

Refines the indirect light output for a given system and set of lights using previously calculated direct and indirect output.

BakeSystemIndirect(const IBakeInputSystem *, const IBakeSolvedRuntime *, const IBakeInputRayOriginPositions *, const IBakeSystemResource *, const IBakeTextureManager *, const IBakeInputProperties *, Geo::IGeoProgressProxy *, IBakeOutputSystemIndirect *&)

Calculates the indirect light output for a given system and set of lights.

BakeSystemRadiosityNormal(const IBakeInputSystem *, const IBakeSolvedRuntime *, const IBakeInputProperties *, Geo::IGeoProgressProxy *, IBakeOutputSystemRadiosityNormal *&)

Calculates the radiosity normal texture for a given system.

BakeSystemVisibility(const IBakeInputSystem *, const IBakeVisibilityBuffer *, const Geo::GeoGuid &, const IBakeSystemResource *, const IBakeInputProperties *, Geo::IGeoProgressProxy *, IBakeOutputSystemVisibility *&)

Calculates the visibility for a given light.

CreateRuntimeLighting(const IBakeInputSystem *, const IPrecompSystemDuster *, const IPrecompPackedSystem *, const CpuTextureElement *, const CpuTextureElement *, float, const IBakeInputLighting *, IBakeRuntimeLighting *&)

Creates the IBakeRuntimeLighting for a given Enlighten system.

CreateSystemResource(const IBakeInputSystem *const *, Geo::s32, bool, Geo::IGeoProgressProxy *, IBakeSystemResource *&)

Combines multiple IBakeInputSystem objects into a single IBakeSystemResource.

FinaliseRuntimeLighting(IBakeRuntimeLighting *)

Finalises the IBakeRuntimeLighting for a given Enlighten system.

GetDebugPixelCoordinates(const IBakeInputSystem *)

Obtains reference to an array of debug pixel coordinates for a given system.

GetDebugPixelCoordinates(const IBakeInputSystem *)

Obtains reference to an array of debug pixel coordinates for a given system.

Release()

Free this object that was created within the Enlighten libraries.

RunEnlightenSolver(const IBakeInputRuntime *, const IBakeRuntimeLighting *const *, Geo::IGeoProgressProxy *, IBakeSolvedRuntime *&)

Runs the runtime radiosity solver for the IBakeInputRuntime, yielding data for the indirect baking.

SetCpuGpuMode(Geo::ECpuGpuMode)

Sets the hardware mode for the Enlighten baking.

SetCpuThreadMax(Geo::s32)

Sets the maximum number of threads that the Cpu mode will use.

SetMaxConcurrentRays(Geo::s32)

Sets the total number of rays that the baking will generate at one time. Set this only if you are concerned about memory pressure.

SetRaySetDumpFolder(const char *)

Sets the folder to dump traced per-pixel rays to.

SetRootFolder(const char *)

Sets the root folder.

SetStateDump(EStateDump)

Sets the level of reproduction data saved by the IBake tasks.

SetStateDumpFolder(const char *)

Sets the folder that shall contain reproduction data for the IBake tasks.

UpdateProbeVisibilityBuffer(const IPrecompInputProbeSet *, const IBakeSystemResource *, const IBakeTextureManager *, const IBakeInputLighting *, const IBakeInputProperties *, Geo::IGeoProgressProxy *, IBakeVisibilityBuffer *&)

Updates (or creates from scratch) a light visibility buffer for use with probe lighting.

UpdateRuntimeLighting(const IBakeInputSystem *, const IBakeTextureManager *, const IBakeVisibilityBuffer *, const Geo::v128 *, const Geo::v128 *, const IBakeInputProperties *, Geo::IGeoProgressProxy *, IBakeRuntimeLighting *)

Copies lighting information from a lightmap into the IBakeRuntimeLighting of an Enlighten system.

UpdateVisibilityBuffer(const IBakeInputSystem *, const IBakeSystemResource *, const IBakeTextureManager *, const IBakeInputLighting *, const IBakeInputProperties *, bool, Geo::IGeoProgressProxy *, IBakeVisibilityBuffer *&)

Updates (or creates from scratch) a light visibility buffer.

Typedefs

Name

Description

Name

Description

Geo::GeoArray< Geo::GeoPair< Geo::s32, Geo::s32 > > DebugPixelCoordinates

X,Y coordinate of a debug pixel.

Enums

Name

Description

Name

Description

EStateDump

Controls the amount of reproduction data saved by the IBake tasks.



virtual Geo::s32 Enlighten::IBake::BakeProbeSetDirect


public: Geo::s32 BakeProbeSetDirect
(
    const IPrecompInputProbeSet * pProbes,
    const IBakeVisibilityBuffer * pVisBuffer,
    Geo::IGeoProgressProxy * progress,
    IBakeOutputProbeSet *& oDirect
)


Calculates the direct light output for a given probe set and set of lights.

If you want separate textures for each light, call this once for each light.

Parameters

[in]

pProbes

The input probes

[in]

pVisBuffer

The light visibility buffer, created from the visible meshes.

[in]

progress

This object is updated during this function call to give feedback on progress.

[out]

oDirect

The calculated direct lighting.

 



virtual Geo::s32 Enlighten::IBake::BakeProbeSetVisibility


public: Geo::s32 BakeProbeSetVisibility
(
    const IPrecompInputProbeSet * pProbes,
    const IBakeVisibilityBuffer * pVisBuffer,
    const Geo::GeoGuid & lightId,
    Geo::IGeoProgressProxy * progress,
    IBakeOutputProbeSetVisibility *& oVisibility
)


Calculates the light mask for a direct light for a given probe set.

If you want separate textures for each light, call this once for each light.

Parameters

[in]

pProbes

The input probes

[in]

pVisBuffer

The light visibility buffer, created from the visible meshes.

[in]

lightId

The GUID of the light to get light mask from

[in]

progress

This object is updated during this function call to give feedback on progress.

[out]

oVisibility

The calculated visibility data.

 



virtual Geo::s32 Enlighten::IBake::BakeSystemAO


public: Geo::s32 BakeSystemAO
(
    const IBakeInputSystem * pSystem,
    const IBakeSystemResource * pSystemResource,
    const IBakeTextureManager * pTexMgr,
    const IBakeInputProperties * pBakeProperties,
    Geo::IGeoProgressProxy * progress,
    IBakeOutputSystemAO *& oAO
)


Calculates the AO contribution for a given system.

 

Parameters

[in]

pSystem

The system of interest.

[in]

pSystemResource

All systems in the baking.

[in]

pTexMgr

A texture manager that provides textures used in the visibility stage (eg. normal textures). Can be NULL.

[in]

pBakeProperties

Controls all options for the Bake API, including texture size, unit scale, etc.

[in]

progress

This object is updated during this function call to give feedback on progress.

[out]

oAO

The calculated AO data.

 



virtual Geo::s32 Enlighten::IBake::BakeSystemDirect


public: Geo::s32 BakeSystemDirect
(
    const IBakeInputSystem * pSystem,
    const IBakeVisibilityBuffer * pVisBuffer,
    const IBakeSystemResource * pSystemResource,
    const IBakeTextureManager * pTexMgr,
    const IBakeInputProperties * pBakeProperties,
    Geo::IGeoProgressProxy * progress,
    IBakeOutputSystemDirect *& oDirect
)


Calculates the direct light output for a given system and set of lights.

If you want separate textures for each light, call this once for each light.

Parameters

[in]

pSystem

The system of interest.

[in]

pVisBuffer

The light visibility buffer, created from the visible meshes.

[in]

pSystemResource

All systems in the baking. Can be NULL if the PostProcessingFilterSize property is 0.

[in]

pTexMgr

A texture manager that provides textures used in the visibility stage (e.g. normal textures). Can be NULL.

[in]

pBakeProperties

Controls all options for the Bake API, including texture size, unit scale, etc.

[in]

progress

This object is updated during this function call to give feedback on progress.

[out]

oDirect

The calculated direct lighting.

 



virtual Geo::s32 Enlighten::IBake::BakeSystemFinalGather


public: Geo::s32 BakeSystemFinalGather
(
    const IBakeInputSystem * pSystem,
    const IBakeSolvedRuntime * pRuntime,
    const IBakeInputRayOriginPositions * pRayOriginPositions,
    const IBakeSystemResource * pSystemResource,
    const IBakeTextureManager * pTexMgr,
    const IBakeInputProperties * pBakeProperties,
    Geo::IGeoProgressProxy * progress,
    Geo::u32 numInputSystems,
    const IBakeInputSystem *const * pSystems,
    const IBakeOutputSystemDirect *const * pOutputSystemsDirect,
    const IBakeOutputSystemIndirect *const * pOutputSystemsIndirect,
    IBakeOutputSystemFinalGather *& oIndirect
)


Refines the indirect light output for a given system and set of lights using previously calculated direct and indirect output.

 

Parameters

[in]

pSystem

The system of interest.

[in]

pRuntime

The system runtime data from the Enlighten Precompute.

[in]

pRayOriginPositions

The positions of all ray origins of all systems. If NULL no visibility aware upsampling takes place.

[in]

pSystemResource

All systems in the baking. If NULL no visibility aware upsampling takes place.

[in]

pTexMgr

A texture manager that provides textures used in the visibility stage (eg. normal textures). Can be NULL.

[in]

pBakeProperties

Controls all options for the Bake API, including texture size, unit scale, etc.

[in]

progress

This object is updated during this function call to give feedback on progress.

[in]

numInputSystems

Number of systems in the array of all systems.

[in]

pSystems

Array of all systems.

[in]

pOutputSystemsDirect

Array of the calculated direct lighting for all systems.

[in]

pOutputSystemsIndirect

Array of the calculated indirect lighting for all systems.

[out]

oIndirect

The calculated indirect lighting.

 



virtual Geo::s32 Enlighten::IBake::BakeSystemIndirect


public: Geo::s32 BakeSystemIndirect
(
    const IBakeInputSystem * pSystem,
    const IBakeSolvedRuntime * pRuntime,
    const IBakeInputRayOriginPositions * pRayOriginPositions,
    const IBakeSystemResource * pSystemResource,
    const IBakeTextureManager * pTexMgr,
    const IBakeInputProperties * pBakeProperties,
    Geo::IGeoProgressProxy * progress,
    IBakeOutputSystemIndirect *& oIndirect
)


Calculates the indirect light output for a given system and set of lights.

If you want separate textures for each light, call this once for each light.

Parameters

[in]

pSystem

The system of interest.

[in]

pRuntime

The system runtime data from the Enlighten Precompute.

[in]

pRayOriginPositions

The positions of all ray origins of all systems. If NULL no visibility aware upsampling takes place.

[in]

pSystemResource

All systems in the baking. If NULL no visibility aware upsampling takes place.

[in]

pTexMgr

A texture manager that provides textures used in the visibility stage (eg. normal textures). Can be NULL.

[in]

pBakeProperties

Controls all options for the Bake API, including texture size, unit scale, etc.

[in]

progress

This object is updated during this function call to give feedback on progress.

[out]

oIndirect

The calculated indirect lighting.

 



virtual Geo::s32 Enlighten::IBake::BakeSystemRadiosityNormal


public: Geo::s32 BakeSystemRadiosityNormal(    const IBakeInputSystem * pSystem,    const IBakeSolvedRuntime * pRuntime,    const IBakeInputProperties * pBakeProperties,    Geo::IGeoProgressProxy * progress,    IBakeOutputSystemRadiosityNormal *& oRadiosityNormal)