VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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.
virtual ~DtTileSpaceLightGrid ()
 DTOR.
const Vector2_uint32gridMaxDims (void) const
 Get the num of tiles in x and y for the current internal max resolution.
uint32 getGridMaxDimsFlattened (void) const
 Get the numTilesX * numTilesY.
void setTileSize (Vector2_uint32 tileSize)
 Tile Size getter/setter.
const Vector2_uint32tileSize (void) const
void update (const VectorLights &frustumVisibleLights, const Camera_64 *pCamera, const Vector2_uint32 &viewportSize)
 Update to bin lights affecting frustum into tiles.
void update (const VectorLights &frustumVisibleLights, const Matrix4_64 &view_projection_matrix, const Vector2_uint32 &viewportSize)
int tileLightCount (uint32 x, uint32 y) const
 Tile accessor functions. Returns tile data for an individual tile.
const inttileLightIndexList (uint32 x, uint32 y) const
const inttileDataPtr () const
 Grid data pointer accessors, used for uploading to GPU.
const inttileCountsDataPtr () const
const inttileLightIndexListsPtr () const
uint32 totalTileLightIndexListLength () const
void setScreenAreaCullSize (uint32 val)
 Rejects lights with screen space area less than this value.
uint32 screenAreaCullSize (void) const

Private Member Functions

void updateScreenSpaceRectangles (const VectorLights &frustumVisibleLights, const Matrix4_64 &view_projection_matrix, const Vector2_uint32 &viewportSize, const Vector2_uint32 &tileSize)
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
ConstVectorLights myViewSpaceLights
VectorScreenRectangles myScreenRects
VectorAreas myScreenRectAreas
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 ( Vector2_uint32  tileSize)

Tile Size getter/setter.

const Vector2_uint32& makVrv::DtTileSpaceLightGrid::tileSize ( 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 Camera_64 pCamera,
const Vector2_uint32 viewportSize 
)

Update to bin lights affecting frustum into tiles.

void makVrv::DtTileSpaceLightGrid::update ( const VectorLights &  frustumVisibleLights,
const Matrix4_64 view_projection_matrix,
const Vector2_uint32 viewportSize 
)
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 Matrix4_64 view_projection_matrix,
const Vector2_uint32 viewportSize,
const Vector2_uint32 tileSize 
)
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
ConstVectorLights makVrv::DtTileSpaceLightGrid::myViewSpaceLights
private
VectorScreenRectangles makVrv::DtTileSpaceLightGrid::myScreenRects
private
VectorAreas makVrv::DtTileSpaceLightGrid::myScreenRectAreas
private
uint32 makVrv::DtTileSpaceLightGrid::myRejectArea
private

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

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)