NL3D::CTileMaterial Struct Reference

#include <tessellation.h>


Public Member Functions

void appendTileToEachRenderPass (uint patchNumRenderableFaces)
 CTileMaterial ()
void renderTile (uint pass)
void renderTilePassLightmap ()
void renderTilePassRGB0 ()

Data Fields

uint LightMapId
CRdrTileId Pass [NL3D_MAX_TILE_PASS]
CTessList< CTileFaceTileFaceList [NL3D_MAX_TILE_FACE]
uint32TileFaceVectors [NL3D_MAX_TILE_FACE]
uint8 TileS
uint8 TileT


Constructor & Destructor Documentation

NL3D::CTileMaterial::CTileMaterial  ) 
 

Definition at line 72 of file tessellation.cpp.

References NL3D_MAX_TILE_FACE, TileFaceVectors, and uint.

00073 {
00074         // By default, all pass are NULL.
00075         for(uint i=0; i<NL3D_MAX_TILE_FACE; i++)
00076         {
00077                 TileFaceVectors[i]= NULL;
00078         }
00079 }


Member Function Documentation

void NL3D::CTileMaterial::appendTileToEachRenderPass uint  patchNumRenderableFaces  ) 
 

Definition at line 83 of file tessellation.cpp.

References NL3D::CPatchRdrPass::appendRdrPatchTile(), NL3D_MAX_TILE_PASS, Pass, NL3D::CRdrTileId::PatchRdrPass, and uint.

Referenced by NL3D::CPatch::preRender().

00084 {
00085         for(uint i=0;i<NL3D_MAX_TILE_PASS;i++)
00086         {
00087                 // If RdrPass exist, add this Material Id
00088                 CPatchRdrPass   *rdrPass= Pass[i].PatchRdrPass;
00089                 if(rdrPass!=NULL)
00090                 {
00091                         /* enlarge the capacity of the pass so it can renders the tile faces of this patch.
00092                          *      NumRenderableFaces is really too big since the tile-material surely doesn't use all
00093                          *      faces of the patch (except if same texture...)
00094                          *      But doesn't matter. Even if all the visible Tile Surface (80m*80m) is in the same pass,
00095                          *      it leads to only 76K final in CLandscapeGlobals::PassTriArray:
00096                          *      80*80(Visible surface at 80m max) /4 (2m*2m) *2(triangles) *2 (over-estimate) *3*4(triSize)=
00097                          *      76800
00098                          */
00099                         rdrPass->appendRdrPatchTile(i, &Pass[i], patchNumRenderableFaces);
00100                 }
00101         }
00102 }

void NL3D::CTileMaterial::renderTile uint  pass  ) 
 

Definition at line 592 of file patch_render.cpp.

References NL3D_PROFILE_LAND_ADD_FACE_VECTOR, Pass, NL3D::CRdrTileId::PatchRdrPass, NL3D::ProfNRdrTile, NL3D::renderFaceVector(), TileFaceVectors, and uint.

Referenced by NL3D::CLandscape::render().

00593 {
00594         // because precisely inserted in preRender(), and correctly tested, this tile is to be rendered,
00595         // If the pass is enabled.
00596         if(Pass[pass].PatchRdrPass)
00597         {
00598                 // render tris of the good faceList.
00599                 renderFaceVector(TileFaceVectors[pass]);
00600 
00601                 // profile.
00602                 NL3D_PROFILE_LAND_ADD_FACE_VECTOR(ProfNRdrTile[pass], TileFaceVectors[pass]);
00603         }
00604 }

void NL3D::CTileMaterial::renderTilePassLightmap  ) 
 

Definition at line 620 of file patch_render.cpp.

References NL3D_PROFILE_LAND_ADD_FACE_VECTOR, NL3D_TILE_PASS_LIGHTMAP, NL3D_TILE_PASS_RGB0, nlassert, Pass, NL3D::ProfNRdrTile, NL3D::renderFaceVector(), and TileFaceVectors.

Referenced by NL3D::CLandscape::render().

00621 {
00622         // because precisely inserted in preRender(), and correctly tested, this tile is to be rendered,
00623         // this pass must be enabled!
00624         nlassert(Pass[NL3D_TILE_PASS_LIGHTMAP].PatchRdrPass);
00625         // render tris of the good faceList, ie the one of PassRGB0, because vertices are reused.
00626         renderFaceVector(TileFaceVectors[NL3D_TILE_PASS_RGB0]);
00627 
00628         // profile.
00629         NL3D_PROFILE_LAND_ADD_FACE_VECTOR(ProfNRdrTile[NL3D_TILE_PASS_LIGHTMAP], TileFaceVectors[NL3D_TILE_PASS_RGB0]);
00630 }

void NL3D::CTileMaterial::renderTilePassRGB0  ) 
 

Definition at line 607 of file patch_render.cpp.

References NL3D_PROFILE_LAND_ADD_FACE_VECTOR, NL3D_TILE_PASS_RGB0, nlassert, Pass, NL3D::ProfNRdrTile, NL3D::renderFaceVector(), and TileFaceVectors.

Referenced by NL3D::CLandscape::render().

00608 {
00609         // because precisely inserted in preRender(), and correctly tested, this tile is to be rendered,
00610         // this pass must be enabled!
00611         nlassert(Pass[NL3D_TILE_PASS_RGB0].PatchRdrPass);
00612         // render tris of the good faceList.
00613         renderFaceVector(TileFaceVectors[NL3D_TILE_PASS_RGB0]);
00614 
00615         // profile.
00616         NL3D_PROFILE_LAND_ADD_FACE_VECTOR(ProfNRdrTile[NL3D_TILE_PASS_RGB0], TileFaceVectors[NL3D_TILE_PASS_RGB0]);
00617 }


Field Documentation

uint NL3D::CTileMaterial::LightMapId
 

Definition at line 207 of file tessellation.h.

CRdrTileId NL3D::CTileMaterial::Pass[NL3D_MAX_TILE_PASS]
 

Definition at line 187 of file tessellation.h.

Referenced by NL3D::CPatch::appendFaceToTileRenderList(), appendTileToEachRenderPass(), NL3D::CTessFace::buildTileFaces(), NL3D::CTessFace::computeTileMaterial(), NL3D::CTessFace::deleteTileFaces(), NL3D::CPatch::removeFaceFromTileRenderList(), renderTile(), renderTilePassLightmap(), and renderTilePassRGB0().

CTessList<CTileFace> NL3D::CTileMaterial::TileFaceList[NL3D_MAX_TILE_FACE]
 

Definition at line 200 of file tessellation.h.

Referenced by NL3D::CPatch::appendFaceToTileRenderList(), NL3D::CTessBlock::createFaceVectorTile(), NL3D::CPatch::recreateTileUvs(), NL3D::CTessBlock::refillFaceVectorTile(), and NL3D::CPatch::removeFaceFromTileRenderList().

uint32* NL3D::CTileMaterial::TileFaceVectors[NL3D_MAX_TILE_FACE]
 

Definition at line 203 of file tessellation.h.

Referenced by CTileMaterial(), NL3D::CTessBlock::deleteFaceVectorTile(), renderTile(), renderTilePassLightmap(), and renderTilePassRGB0().

uint8 NL3D::CTileMaterial::TileS
 

Definition at line 185 of file tessellation.h.

Referenced by NL3D::CPatch::appendNearVertexToRenderList(), NL3D::CPatch::appendTileMaterialToRenderList(), NL3D::CTessFace::computeTileMaterial(), NL3D::CTessFace::initTileUvLightmap(), NL3D::CTessFace::releaseTileMaterial(), NL3D::CPatch::removeNearVertexFromRenderList(), and NL3D::CPatch::removeTileMaterialFromRenderList().

uint8 NL3D::CTileMaterial::TileT
 

Definition at line 185 of file tessellation.h.

Referenced by NL3D::CPatch::appendNearVertexToRenderList(), NL3D::CPatch::appendTileMaterialToRenderList(), NL3D::CTessFace::computeTileMaterial(), NL3D::CTessFace::initTileUvLightmap(), NL3D::CTessFace::releaseTileMaterial(), NL3D::CPatch::removeNearVertexFromRenderList(), and NL3D::CPatch::removeTileMaterialFromRenderList().


The documentation for this struct was generated from the following files:
Generated on Tue Mar 16 08:05:04 2004 for NeL by doxygen 1.3.6