VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
makVrv::DtTileSpaceLightGrid Class Reference

Class doing all the heavy lifting in regards of forward+ lighting. More...

Public Member Functions

 DtTileSpaceLightGrid ()
 CTOR. More...
 
virtual ~DtTileSpaceLightGrid ()
 DTOR. More...
 
const Vector2_uint32gridMaxDims (void) const
 Get the num of tiles in x and y for the current internal max resolution. More...
 
uint32 getGridMaxDimsFlattened (void) const
 Get the numTilesX * numTilesY. More...
 
void setTileSize (const Vector2_uint32 &tileSize)
 Tile Size getter/setter. More...
 
const Vector2_uint32tileSize (void) const
 
const Vector2_uint32 tileSizeLog2 (void) const
 
void update (const VectorLights &frustumVisibleLights, const std::vector< Matrix4_64 > &view_projection_matrix, const Vector3_64 &vWorldEye, const Vector3_64 &vWorldCenter, const Vector3_64 &vWorldUp, const Vector2_uint32 &viewportSize)
 Update to bin lights affecting frustum into tiles view_projection_matrix is a vector because it can have different values per multiview. More...
 
int tileLightCount (uint32 x, uint32 y) const
 Tile accessor functions. Returns tile data for an individual tile. More...
 
const inttileLightIndexList (uint32 x, uint32 y) const
 
const inttileDataPtr () const
 Grid data pointer accessors, used for uploading to GPU. More...
 
const inttileCountsDataPtr () const
 
const inttileLightIndexListsPtr () const
 
uint32 totalTileLightIndexListLength () const
 
void setScreenAreaCullSize (uint32 val)
 Rejects lights with screen space area less than this value. More...
 
uint32 screenAreaCullSize (void) const
 

Private Member Functions

void updateScreenSpaceRectangles (const VectorLights &frustumVisibleLights, const DtLightScreenSpacePerViewData &perViewData)
 
void updateToAccountForScreenRes (const Vector2_uint32 &viewport_size)
 
intGridOffset (int x, int y)
 
intGridCount (int x, int y)
 

Private Attributes

Vector2_uint32 myTileSize
 
Vector2_uint32 myCurrentMaxScreenResolution
 
Vector2_uint32 myGridMaxDims
 
int32myGridOffsets
 
int32myGridCounts
 
std::vector< intmyTileLightIndexLists
 
uint32 myMaxTileLightCount
 
std::vector
< DtLightScreenSpaceDataVector
myScreenSpaceData
 
uint32 myRejectArea
 

Static Private Attributes

static const Vector2_uint32 m_InitialMaxScreenResolution
 

Detailed Description

Class doing all the heavy lifting in regards of forward+ lighting.

Constructor & Destructor Documentation

makVrv::DtTileSpaceLightGrid::DtTileSpaceLightGrid ( )

CTOR.

virtual makVrv::DtTileSpaceLightGrid::~DtTileSpaceLightGrid ( )
virtual

DTOR.

Member Function Documentation

void makVrv::DtTileSpaceLightGrid::setTileSize ( const Vector2_uint32 tileSize)

Tile Size getter/setter.

const Vector2_uint32& makVrv::DtTileSpaceLightGrid::tileSize ( void  ) const
const Vector2_uint32 makVrv::DtTileSpaceLightGrid::tileSizeLog2 ( void  ) const
const Vector2_uint32& makVrv::DtTileSpaceLightGrid::gridMaxDims ( void  ) const

Get the num of tiles in x and y for the current internal max resolution.

uint32 makVrv::DtTileSpaceLightGrid::getGridMaxDimsFlattened ( void  ) const

Get the numTilesX * numTilesY.

void makVrv::DtTileSpaceLightGrid::update ( const VectorLights &  frustumVisibleLights,
const std::vector< Matrix4_64 > &  view_projection_matrix,
const Vector3_64 vWorldEye,
const Vector3_64 vWorldCenter,
const Vector3_64 vWorldUp,
const Vector2_uint32 viewportSize 
)

Update to bin lights affecting frustum into tiles view_projection_matrix is a vector because it can have different values per multiview.

int makVrv::DtTileSpaceLightGrid::tileLightCount ( uint32  x,
uint32  y 
) const

Tile accessor functions. Returns tile data for an individual tile.

const int* makVrv::DtTileSpaceLightGrid::tileLightIndexList ( uint32  x,
uint32  y 
) const
const int* makVrv::DtTileSpaceLightGrid::tileDataPtr ( ) const
inline

Grid data pointer accessors, used for uploading to GPU.

const int* makVrv::DtTileSpaceLightGrid::tileCountsDataPtr ( ) const
inline
const int* makVrv::DtTileSpaceLightGrid::tileLightIndexListsPtr ( ) const
inline
uint32 makVrv::DtTileSpaceLightGrid::totalTileLightIndexListLength ( ) const
inline
void makVrv::DtTileSpaceLightGrid::setScreenAreaCullSize ( uint32  val)

Rejects lights with screen space area less than this value.

uint32 makVrv::DtTileSpaceLightGrid::screenAreaCullSize ( void  ) const
void makVrv::DtTileSpaceLightGrid::updateScreenSpaceRectangles ( const VectorLights &  frustumVisibleLights,
const DtLightScreenSpacePerViewData perViewData 
)
private
void makVrv::DtTileSpaceLightGrid::updateToAccountForScreenRes ( const Vector2_uint32 viewport_size)
private
int& makVrv::DtTileSpaceLightGrid::GridOffset ( int  x,
int  y 
)
inlineprivate
int& makVrv::DtTileSpaceLightGrid::GridCount ( int  x,
int  y 
)
inlineprivate

Member Data Documentation

Vector2_uint32 makVrv::DtTileSpaceLightGrid::myTileSize
private
const Vector2_uint32 makVrv::DtTileSpaceLightGrid::m_InitialMaxScreenResolution
staticprivate
Vector2_uint32 makVrv::DtTileSpaceLightGrid::myCurrentMaxScreenResolution
private
Vector2_uint32 makVrv::DtTileSpaceLightGrid::myGridMaxDims
private
int32* makVrv::DtTileSpaceLightGrid::myGridOffsets
private
int32* makVrv::DtTileSpaceLightGrid::myGridCounts
private
std::vector<int> makVrv::DtTileSpaceLightGrid::myTileLightIndexLists
private
uint32 makVrv::DtTileSpaceLightGrid::myMaxTileLightCount
private
std::vector< DtLightScreenSpaceDataVector > makVrv::DtTileSpaceLightGrid::myScreenSpaceData
private
uint32 makVrv::DtTileSpaceLightGrid::myRejectArea
private

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)