Versions Compared

Key

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

class Enlighten::IBake

    └>Geo::IGeoReleasable

The Low Level Enlighten Baking API.

Functions

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

NonCopyable(NonCopyable &&)

Defaulted to allow move.

operator=(NonCopyable &&)

Defaulted to allow move.

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

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

X,Y coordinate of a debug pixel.

Enums

NameDescription
EStateDump

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


Anchor
a14c7c83d6410d3929f1ee60b1587188c
a14c7c83d6410d3929f1ee60b1587188c

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.


Anchor
a62a823cadc916e5577bbbafa8fa524cc
a62a823cadc916e5577bbbafa8fa524cc

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.


Anchor
a1f77e3d6077c87e78966666793bdadc6
a1f77e3d6077c87e78966666793bdadc6

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.


Anchor
a2cec9e6fb1d78e18657b127895e02ceb
a2cec9e6fb1d78e18657b127895e02ceb

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.


Anchor
af30a84d918057aeac29047bde8588375
af30a84d918057aeac29047bde8588375

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.


Anchor
a8ebdd1c8bfaf6d9e97084a54506317d5
a8ebdd1c8bfaf6d9e97084a54506317d5

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.


Anchor
af2272b5d884ad4b31c5de40de84c5171
af2272b5d884ad4b31c5de40de84c5171

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

...

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

...

Calculates the radiosity normal texture for a given system.

Each pixel encodes the normal that was used to calculate the Enlighten irradiance, but rescaled into the used baking UV space rather than the Enlighten UV space.

Parameters
[in]pSystem

The system of interest.

[in]pRuntime

The system runtime data from the Enlighten Precompute.

[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]oRadiosityNormal

The calculated indirect lighting.


Anchor
a3e57a86fe121ed3db11cc4fd825f054a
a3e57a86fe121ed3db11cc4fd825f054a

virtual Geo::s32 Enlighten::IBake::BakeSystemVisibility

...

public: Geo::s32 BakeSystemVisibility
(
    const IBakeInputSystem * pSystem,
    const IBakeVisibilityBuffer * pVisBuffer,
    const Geo::GeoGuid & lightId,
    const IBakeSystemResource * pSystemResource,
    const IBakeInputProperties * pBakeProperties,
    Geo::IGeoProgressProxy * progress,
    IBakeOutputSystemVisibility *& oVisibility
)

...

Calculates the visibility for a given light.

Parameters
[in]pSystem

The system of interest.

[in]pVisBuffer

The visibility buffer of the system of interest.

[in]lightId

The GUID of the light.

[in]pSystemResource

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

[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]oVisibility

The calculated visibility data.


Anchor
a5638b69135e64f4b0ea7a417ad940967
a5638b69135e64f4b0ea7a417ad940967

virtual Geo::s32 Enlighten::IBake::CreateRuntimeLighting

...

public: Geo::s32 CreateRuntimeLighting
(
    const IBakeInputSystem * pEnlightenSystem,
    const IPrecompSystemDuster * duster,
    const IPrecompPackedSystem * packedSystem,
    const CpuTextureElement * albedoTex,
    const CpuTextureElement * emissiveTex,
    float emissiveMax,
    const IBakeInputLighting * pLighting,
    IBakeRuntimeLighting *& oLighting
)

...

Creates the IBakeRuntimeLighting for a given Enlighten system.

This contains the runtime albedo and emissive textures for Enlighten, with the direct input lighting baked into the emissive texture.

Parameters
[in]pEnlightenSystem

The system of interest.

[in]duster

The precompute input sample point information, used to produce input lighting.

[in]packedSystem

The precompute packed system, used to extract the chart mask that will be used for dilation.

[in]albedoTex

(optional) Albedo information for the entire Enlighten system, if available.

[in]emissiveTex

(optional) Emissive information for the entire Enlighten system, if available.

[in]emissiveMax

(optional) Maximum encoded value in the RGBM emissive texture, if set.

[in]pLighting

Holds the emissive environment, usually calculated from a cube map. May be NULL.

[out]oLighting

The Enlighten runtime TextureAlbedo textures.


Anchor
a4c428f071b5022a11b138b4af22d6250
a4c428f071b5022a11b138b4af22d6250

virtual Geo::s32 Enlighten::IBake::CreateSystemResource

...

public: Geo::s32 CreateSystemResource
(
    const IBakeInputSystem *const * ppSystems,
    Geo::s32 numSystems,
    bool isEnlightenResource,
    Geo::IGeoProgressProxy * progress,
    IBakeSystemResource *& oSystemResource
)

...

Combines multiple IBakeInputSystem objects into a single IBakeSystemResource.

Each system may depend on other systems nearby; this function groups them together for the later baking steps.

Parameters
[in]ppSystems

The list of systems to include.

[in]numSystems

The number of systems in the above array.

[in]isEnlightenResource

Do the IBakeInputSystems represent Enlighten systems included in the radiosity computation.

[in]progress

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

[out]oSystemResource

The system resource, used by later stages to do baking.


Anchor
a30d30f3468ca0d285843b5ee07c3f709
a30d30f3468ca0d285843b5ee07c3f709

virtual Geo::s32 Enlighten::IBake::FinaliseRuntimeLighting

...

public: Geo::s32 FinaliseRuntimeLighting
(
    IBakeRuntimeLighting * ioLighting
)

...

Finalises the IBakeRuntimeLighting for a given Enlighten system.

When all lightmap data has been copied into the object (with UpdateRuntimeLighting) call this method.

Parameters
[inout]ioLighting

The Enlighten runtime TextureAlbedo textures.


Anchor
af54dd2c3d39c4b75ab0289a955ed0f02
af54dd2c3d39c4b75ab0289a955ed0f02

virtual DebugPixelCoordinates& Enlighten::IBake::GetDebugPixelCoordinates

...

public: DebugPixelCoordinates & GetDebugPixelCoordinates
(
    const IBakeInputSystem * pSystem
)

...

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


Anchor
a69eb61ba86e9f7bc862bf88cce584ad6
a69eb61ba86e9f7bc862bf88cce584ad6

virtual const DebugPixelCoordinates& Enlighten::IBake::GetDebugPixelCoordinates

...

public: const DebugPixelCoordinates & GetDebugPixelCoordinates
(
    const IBakeInputSystem * pSystem
) const

...

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


Anchor
adaed81b4c59f263dcb4e78c4126f4683
adaed81b4c59f263dcb4e78c4126f4683

Geo::NonCopyable::NonCopyable

...

public: NonCopyable
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a6abc781e23b8f4864e0b868806e0acbf
a6abc781e23b8f4864e0b868806e0acbf

NonCopyable& Geo::NonCopyable::operator=

...

public: NonCopyable & operator=
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
af6bdf30b42adde386c428e9dc2821eb9
af6bdf30b42adde386c428e9dc2821eb9

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)'


Anchor
ab5760c411c1eb9f3ab4dd9c0114c8c11
ab5760c411c1eb9f3ab4dd9c0114c8c11

virtual Geo::s32 Enlighten::IBake::RunEnlightenSolver

...

public: Geo::s32 RunEnlightenSolver
(
    const IBakeInputRuntime * pRuntime,
    const IBakeRuntimeLighting *const * pLitMaterials,
    Geo::IGeoProgressProxy * progress,
    IBakeSolvedRuntime *& oSolvedRuntime
)

...

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

Parameters
[in]pRuntime

Runtime data from the Enlighten Precompute.

[in]pLitMaterials

The material objects created from the CreateRuntimeMaterials call; emissive channel contains baked light data.

[in]progress

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

[out]oSolvedRuntime

The indirect lighting information from the Enlighten runtime.


Anchor
aa02c8b7358edd5bf360a9e25c178484c
aa02c8b7358edd5bf360a9e25c178484c

virtual void Enlighten::IBake::SetCpuGpuMode

...

public: void SetCpuGpuMode
(
    Geo::ECpuGpuMode mode
)

...

Sets the hardware mode for the Enlighten baking.


Anchor
a6004e886d6c3f1ca80b437866fed814b
a6004e886d6c3f1ca80b437866fed814b

virtual void Enlighten::IBake::SetCpuThreadMax

...

public: void SetCpuThreadMax
(
    Geo::s32 maxThreads
)

...

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


Anchor
a8685abe075a71f7d3f4bc5b30deda351
a8685abe075a71f7d3f4bc5b30deda351

virtual void Enlighten::IBake::SetMaxConcurrentRays

...

public: void SetMaxConcurrentRays
(
    Geo::s32 totalRays
)

...

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


Anchor
a16382f1b908666f398f2a3c2f1f5cfaf
a16382f1b908666f398f2a3c2f1f5cfaf

virtual bool Enlighten::IBake::SetRaySetDumpFolder

...

public: bool SetRaySetDumpFolder
(
    const char * folder
)

...

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


Anchor
a99b82b71f056dc3af1c292e24122a550
a99b82b71f056dc3af1c292e24122a550

virtual bool Enlighten::IBake::SetRootFolder

...

public: bool SetRootFolder
(
    const char * folder
)

...

Sets the root folder.


Anchor
a2755a5833726ef118afb1a82b45fa6e5
a2755a5833726ef118afb1a82b45fa6e5

virtual void Enlighten::IBake::SetStateDump

...

public: void SetStateDump
(
    EStateDump state
)

...

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


Anchor
ada1293645ecab55b3230b82824f538ce
ada1293645ecab55b3230b82824f538ce

virtual bool Enlighten::IBake::SetStateDumpFolder

...

public: bool SetStateDumpFolder
(
    const char * folder
)

...

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


Anchor
aaa758bda5af3801c648eb0a14d641eb7
aaa758bda5af3801c648eb0a14d641eb7

virtual Geo::s32 Enlighten::IBake::UpdateProbeVisibilityBuffer

...

public: Geo::s32 UpdateProbeVisibilityBuffer
(
    const IPrecompInputProbeSet * pProbes,
    const IBakeSystemResource * pSystemResource,
    const IBakeTextureManager * pTexMgr,
    const IBakeInputLighting * pLighting,
    const IBakeInputProperties * pBakeProperties,
    Geo::IGeoProgressProxy * progress,
    IBakeVisibilityBuffer *& ioVisBuffer
)

...

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

The return value is as follows: 0 if the buffer was correctly updated 1 if the visibility was already up to date 2 if there was a failure updating the buffer

If you want separate probe set values for each light, call this once for each light.

Parameters
[in]pProbes

The probe set of interest.

[in]pSystemResource

All systems in the baking.

[in]pTexMgr

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

[in]pLighting

The lights for this system.

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

[inout]ioVisBuffer

The calculated buffer. If you are updating an existing buffer, pass it in here.


Anchor
aed804310523e4ebc52669d08953777cc
aed804310523e4ebc52669d08953777cc

virtual Geo::s32 Enlighten::IBake::UpdateRuntimeLighting

...

public: Geo::s32 UpdateRuntimeLighting
(
    const IBakeInputSystem * pSystem,
    const IBakeTextureManager * pTexMgr,
    const IBakeVisibilityBuffer * pVisBuffer,
    const Geo::v128 * albedoDilatedPtr,
    const Geo::v128 * emissiveDilatedPtr,
    const IBakeInputProperties * pBakeProperties,
    Geo::IGeoProgressProxy * progress,
    IBakeRuntimeLighting * ioLighting
)

...

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

Parameters
[in]pSystem

The system of interest.

[in]pTexMgr

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

[in]pVisBuffer

The light visibility buffer, created from only the meshes included in the radiosity computation.

[in]albedoDilatedPtr

(optional) Additional albedo information, if not supplied we assume the material to be white, in gamma-2 format. This texture must have an alpha channel masking pixels that have geometry. The alpha values should be > 0.0 for rendered pixels and 0.0 for gutter pixels.

[in]emissiveDilatedPtr

(optional) Additional emissive information, if not supplied we assume the material to not be emissive. This texture must have an alpha channel masking pixels that have geometry. The alpha values should be > 0.0 for rendered pixels and 0.0 for gutter pixels.

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

[inout]ioLighting

The Enlighten runtime TextureAlbedo textures.


Anchor
a682af256a81deadcc256acc12cbef87b
a682af256a81deadcc256acc12cbef87b

virtual Geo::s32 Enlighten::IBake::UpdateVisibilityBuffer

...

public: Geo::s32 UpdateVisibilityBuffer
(
    const IBakeInputSystem * pSystem,
    const IBakeSystemResource * pSystemResource,
    const IBakeTextureManager * pTexMgr,
    const IBakeInputLighting * pLighting,
    const IBakeInputProperties * pBakeProperties,
    bool target,
    Geo::IGeoProgressProxy * progress,
    IBakeVisibilityBuffer *& ioVisBuffer
)

...

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

The return value is as follows: 0 if the buffer was correctly updated 1 if the visibility was already up to date 2 if there was a failure updating the buffer

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

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. opacity textures). Can be NULL.

[in]pLighting

The lights for this system.

[in]pBakeProperties

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

[in]target

Whether the system is included in the radiosity computation.

[in]progress

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

[inout]ioVisBuffer

The calculated buffer. If you are updating an existing buffer, pass it in here.


Anchor
a166af363200285390bb651e44ede587e
a166af363200285390bb651e44ede587e

EStateDump

...

public: enum EStateDump
{
    esdNone,
    esdInputsOnly,
    esdAll
}

...

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

enumerators
esdNone

Do not save any dump files.

esdInputsOnly

Save files containing the inputs provided by the user.

esdAll

Save files at the input to every task, including generated files.