|
|
|
|
Documentation |
|
Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages Search
NL3D::CLandscape Class ReferenceA landscape.
More...
#include <landscape.h>
Inheritance diagram for NL3D::CLandscape:
List of all members.
Accessors. |
CZone * | getZone (sint zoneId) |
| Get a zone pointer. More...
|
const CZone * | getZone (sint zoneId) const |
| Get a zone pointer. More...
|
void | getZoneList (std::vector< uint16 > &zoneIds) const |
| Return list of zone loaded. More...
|
void | buildZoneName (sint zoneId, std::string &zoneName) |
| From an Id, return the name of the zone, in the form "150_EM", without extension. More...
|
Allocators. |
CTessFace * | newTessFace () |
CTessVertex * | newTessVertex () |
CTessNearVertex * | newTessNearVertex () |
CTessFarVertex * | newTessFarVertex () |
CTileMaterial * | newTileMaterial () |
CTileFace * | newTileFace () |
void | deleteTessFace (CTessFace *f) |
void | deleteTessVertex (CTessVertex *v) |
void | deleteTessNearVertex (CTessNearVertex *v) |
void | deleteTessFarVertex (CTessFarVertex *v) |
void | deleteTileMaterial (CTileMaterial *tm) |
void | deleteTileFace (CTileFace *tf) |
CBlockMemory< CTessFace > | TessFaceAllocator |
CBlockMemory< CTessVertex > | TessVertexAllocator |
CBlockMemory< CTessNearVertex > | TessNearVertexAllocator |
CBlockMemory< CTessFarVertex > | TessFarVertexAllocator |
CBlockMemory< CTileMaterial > | TileMaterialAllocator |
CBlockMemory< CTileFace > | TileFaceAllocator |
CLandscapeFaceVectorManager | _FaceVectorManager |
CTessBlock | _TessBlockModificationRoot |
Visual Collision system. |
void | addTrianglesInBBox (const CPatchIdentEx &paIdEx, const CAABBox &bbox, std::vector< CTrianglePatch > &triangles, uint8 tileTessLevel) const |
| This method search only on the given patch. More...
|
void | addPatchBlocksInBBox (const CPatchIdentEx &paIdEx, const CAABBox &bbox, std::vector< CPatchBlockIdent > &paBlockIds) |
| private version of buildPatchBlocksInBBox, searching only for one patch. More...
|
CQuadGrid< CPatchIdentEx > | _PatchQuadGrid |
| The QuadGrid of patch. More...
|
const uint | _PatchQuadGridSize = 128 |
const float | _PatchQuadGridEltSize = 16 |
[NOHEADER] |
const CTileVegetableDesc & | getTileVegetableDesc (uint16 tileId) |
| For a given tile Id, look into tileSet, and get the tile vegetable descriptor. More...
|
CVegetableManager * | _VegetableManager |
| The VegetableManager. (ptr only for include speed). More...
|
bool | _VegetableManagerEnabled |
| Tells if the Vegetable Managemnt is enabled. More...
|
bool | _DriverOkForVegetable |
| Tells if the current dirver support vegetable. More...
|
CTessList< CLandscapeVegetableBlock > | _VegetableBlockList |
| List of VegetableBlock, to be tested for creation each frame. More...
|
UpdateLighting management |
void | linkPatchToNearUL (CPatch *patch) |
| Used by Patch to link/unlink from _ULRootNearPatch. More...
|
void | unlinkPatchFromNearUL (CPatch *patch) |
void | updateLightingTextureFar (float ratio) |
| Update All Far texture, given a ratio along total lumels. More...
|
void | updateLightingTextureNear (float ratio) |
| Update All Near texture, given a ratio along total lumels. More...
|
double | _ULPrecTime |
bool | _ULPrecTimeInit |
double | _ULTime |
float | _ULFrequency |
| Frequency of update. More...
|
sint | _ULTotalFarPixels |
| Far UpdateLighting. More...
|
float | _ULFarPixelsToUpdate |
| Current number of far pixels to update. If negative, I have some advance. More...
|
CTextureFar * | _ULRootTextureFar |
| The current TextureFar rendered. More...
|
uint | _ULFarCurrentPatchId |
| Current patch id in the current TextureFar processed. More...
|
sint | _ULTotalNearPixels |
| Near UpdateLighting. More...
|
float | _ULNearPixelsToUpdate |
| Current number of near pixels to update. If negative, I have some advance. More...
|
CPatch * | _ULRootNearPatch |
| The current patch rendered. More...
|
uint | _ULNearCurrentTessBlockId |
| Current tessBlock id in the current patch processed. More...
|
DynamicLighting management |
CTextureDLM * | getTextureDLM () const |
| for CPatch. More...
|
CPatchDLMContextList * | getPatchDLMContextList () const |
| for CPatch. More...
|
NLMISC::CSmartPtr< ITexture > | _TextureDLM |
| The dynamic lightmap Texture. More...
|
CPatchDLMContextList * | _PatchDLMContextList |
| List of DLM Context. More...
|
float | _DLMMaxAttEnd |
| Max AttEnd. More...
|
CRGBA | _DLMGlobalVegetableColor |
| an approximate value used to simulate diffuse material of vegetables. More...
|
CRGBA | _PointLightDiffuseMaterial |
| The diffuse material of landscape, used for StaticPointLights and DynamicPointLights. More...
|
Public Methods |
| CLandscape () |
| Constructor. More...
|
| ~CLandscape () |
| Destructor. clear(). More...
|
|
void | init () |
| init the landscape VBuffers, texture cache etc... More...
|
bool | addZone (const CZone &newZone) |
| Add a zone which should be builded (or loaded), but not compiled. More...
|
bool | removeZone (uint16 zoneId) |
| remove a zone by its unique Id. More...
|
void | clear () |
| Disconnect, and Delete all zones. More...
|
void | checkBinds () throw (EBadBind) |
| Verify the binding of patchs of all zones. throw EBadBind if error. More...
|
void | checkBinds (uint16 zoneId) throw (EBadBind) |
| Verify the binding of patchs of one zone. throw EBadBind if error. nop if zone not loaded. More...
|
bool | initTileBanks () |
| Build tileBank. More...
|
|
void | setTileNear (float tileNear) |
| Set tile near distance. Default 50.f. maximized to length of Far alpha transition). More...
|
float | getTileNear () const |
| Get tile near distance. More...
|
void | setThreshold (float thre) |
| Set threshold for subdivsion quality. The lower is threshold, the more the landscape is subdivided. Default: 0.001. More...
|
float | getThreshold () const |
| Get threshold. More...
|
void | setRefineMode (bool enabled) |
bool | getRefineMode () const |
void | setTileMaxSubdivision (uint tileDiv) |
| Set Maximum Tile subdivision. Valid values must be in [0..4] (assert). Default is 0 (for now :) ). More...
|
uint | getTileMaxSubdivision () |
| Get Maximum Tile subdivision. More...
|
void | setNoiseMode (bool enabled) |
| Enable the noise or not. NB: only new tesselation computed is modified, so you should call it only at init time. More...
|
bool | getNoiseMode () const |
|
void | setDriver (IDriver *drv) |
| A driver is needed for VB allocation. More...
|
void | clip (const CVector &refineCenter, const std::vector< CPlane > &pyramid) |
| Clip the landscape according to frustum. More...
|
void | refine (const CVector &refineCenter) |
| Refine/Geomorph the tesselation of the landscape. More...
|
void | render (const CVector &refineCenter, const CVector &frontVector, const CPlane pyramid[NL3D_TESSBLOCK_NUM_CLIP_PLANE], bool doTileAddPass=false) |
| Render the landscape. More...
|
void | refineAll (const CVector &refineCenter) |
| Refine/Geomorph ALL the tesselation of the landscape, from the view point refineCenter. Even if !RefineMode. More...
|
void | excludePatchFromRefineAll (sint zoneId, uint patch, bool exclude) |
| This is especially for Pacs. exlude a patch to be refineAll()ed. More...
|
void | averageTesselationVertices () |
| This is especially for Pacs. More...
|
|
void | buildCollideFaces (const CAABBoxExt &bbox, std::vector< CTriangle > &faces, bool faceSplit) |
| Build the set of faces of landscape, which are IN a bbox. More...
|
void | buildCollideFaces (sint zoneId, sint patch, std::vector< CTriangle > &faces) |
| Build the set of faces of landscape, from a certain patch. More...
|
void | buildTrianglesInBBox (const CAABBox &bbox, std::vector< CTrianglePatch > &triangles, uint8 tileTessLevel) |
| method relatively identical than buildCollideFaces(bbox....). More...
|
void | buildPatchBlocksInBBox (const CAABBox &bbox, std::vector< CPatchBlockIdent > &paBlockIds) |
| Same as buildTrianglesInBBox(), but fill blockId instead of raw triangles. More...
|
void | fillPatchQuadBlock (CPatchQuadBlock &quadBlock) const |
| Fill a CPatchQuadBlock, from its required PatchId. More...
|
CVector | getTesselatedPos (const CPatchIdent &patchId, const CUV &uv) const |
| From the current tesselation of a patch of landscape, and a UV in this patch, return tesselated position. More...
|
void | getTessellationLeaves (std::vector< const CTessFace * > &leaves) const |
| From the current tesselation of landscape, build the list of leaves faces. More...
|
|
void | flushTiles (IDriver *drv, uint16 tileStart, uint16 nbTiles) |
| Force a range of tiles to be loaded in the driver... More...
|
void | releaseTiles (uint16 tileStart, uint16 nbTiles) |
| Force a range of tiles to be loaded in the driver... More...
|
NLMISC::CSmartPtr< ITexture > | getTileTexture (uint16 tileId, CTile::TBitmap bitmapType, CVector &uvScaleBias) |
| Return the texture for a tile Id. UseFull for Tile edition. More...
|
CTileElement * | getTileElement (const CPatchIdent &patchId, const CUV &uv) |
| Return the tile element for a patch at specific UV. UseFull for getting surface data. Return NULL if not found. More...
|
|
void | setupStaticLight (const CRGBA &diffuse, const CRGBA &ambiant, float multiply) |
| Setup the light color use for static illumination. More...
|
const CRGBA * | getStaticLight () const |
| Get the light color by shading table. More...
|
void | setPointLightDiffuseMaterial (CRGBA diffuse) |
| Setup the equivalent material diffuse component used for both Static and Dynamic PointLights. More...
|
CRGBA | getPointLightDiffuseMaterial () const |
void | enableAutomaticLighting (bool enable) |
| Enable automatic near lightmap computing. More...
|
void | setupAutomaticLightDir (const CVector &lightDir) |
| For automatic near lightmap computing (if enabled): setup the lightdir. More...
|
bool | getAutomaticLighting () const |
| return true if AutomaticLighting is enabled. More...
|
const CVector & | getAutomaticLightDir () const |
| return the light direction setuped in enableAutomaticLighting(). More...
|
void | removeAllPointLights () |
| This method remove all PointLights in all Zones, and hence reset TileLightInfluences. More...
|
void | setPointLightFactor (const std::string &lightGroupName, NLMISC::CRGBA nFactor) |
| set the Light factor for all pointLights in All zones with LightGroupName= "lightGroupName". More...
|
|
CVector | getHeightFieldDeltaZ (float x, float y) const |
| return the HeightField DeltaZ for the 2D position. (0,0,dZ) is returned. More...
|
void | setHeightField (const CHeightMap &hf) |
| set the HeightField data. More...
|
|
void | createVegetableBlendLayersModels (CScene *scene) |
| init the vegetable layer models in the CScene (see CVegetableManager). More...
|
void | setVegetableTime (double time) |
| set the vegetable manager Time (in seconds) NB: MOT stuff (called by CLandscapeModel), don't use it. More...
|
void | setVegetableUpdateLightingTime (double time) |
| set the vegetable manager System Time (in seconds) for update lighting NB: MOT stuff (called by CLandscapeModel), don't use it. More...
|
void | enableVegetable (bool enable) |
| enable the vegetable management in landscape. More...
|
bool | isVegetableActive () const |
| return if the vegetable management is actually activated: actually return _VerexShaderOk && _VegetableEnabled. More...
|
void | loadVegetableTexture (const std::string &textureFileName) |
| load a texture for the vegetable, lookup in CPath. More...
|
void | setupVegetableLighting (const CRGBA &ambient, const CRGBA &diffuse, const CVector &directionalLight) |
| setup lighting ambient and diffuse for vegetable. More...
|
void | setVegetableWind (const CVector &windDir, float windFreq, float windPower, float windBendMin) |
| set the vegetable Wind for animation. More...
|
uint | getNumVegetableFaceRendered () const |
| return the number of faces displayed in Driver with the vegetable manager. More...
|
void | setVegetableUpdateLightingFrequency (float freq) |
| set the frequency of Vegetable lighting update. More...
|
void | setupColorsFromTileFlags (const NLMISC::CRGBA colors[4]) |
| Debug purpose only : setup the colors of the patch of all the currently loaded zones so that it shows which tiles have vegetable disabled, or are above, below water. More...
|
|
uint8 | getLumel (const CPatchIdent &patchId, const CUV &uv) const |
| Get the lumel under the position. return 255 if invalid patchId. More...
|
void | appendTileLightInfluences (const CPatchIdent &patchId, const CUV &uv, std::vector< CPointLightInfluence > &pointLightList) const |
| Append lights under the position to pointLightList. Do nothing if invalid patchId. More...
|
|
void | setPZBModelPosition (const CVector &pos) |
| Set the ModelPosition (for Precision ZBuffer purpose). More...
|
const CVector & | getPZBModelPosition () const |
| -
See also:
-
setPZBModelPosition().
More...
|
|
void | updateLighting (double time) |
| update the lighting of patch, within a certain amount of time. More...
|
void | setUpdateLightingFrequency (float freq) |
| set the frequency of lighting update. More...
|
void | updateLightingAll () |
| update the lighting of ALL patch (slow method). More...
|
|
void | computeDynamicLighting (const std::vector< CPointLight * > &pls) |
| Compute dynamic lightmaps. More...
|
uint | getDynamicLightingMemoryLoad () const |
| For bench only. More...
|
void | setDynamicLightingMaxAttEnd (float maxAttEnd) |
| Set PointLight Max Attenuation End landscape support. More...
|
float | getDynamicLightingMaxAttEnd () const |
| see setDynamicLightingMaxAttEnd(). More...
|
void | setDLMGlobalVegetableColor (CRGBA gvc) |
| For Vegetable Dynamic ligthing only: this is an approximate color of all vegetables. More...
|
CRGBA | getDLMGlobalVegetableColor () const |
| see setDLMGlobalVegetableColor(). More...
|
Public Attributes |
CTileBank | TileBank |
CTileFarBank | TileFarBank |
Private Types |
typedef NLMISC::CRefPtr< ITexture > | RPTexture |
typedef std::map< std::string,
RPTexture > | TTileTextureMap |
typedef TTileTextureMap::iterator | ItTileTextureMap |
typedef std::set< CPatchRdrPass > | TTileRdrPassSet |
typedef TTileRdrPassSet::iterator | ItTileRdrPassSet |
typedef NLMISC::CSmartPtr<
CPatchRdrPass > | TSPRenderPass |
typedef std::set< TSPRenderPass > | TSPRenderPassSet |
typedef TSPRenderPassSet::iterator | ItSPRenderPassSet |
typedef std::vector< TSPRenderPassSet > | TSPRdrPassSetVector |
typedef std::map< std::string,
NLMISC::CRGBA > | TLightGroupColorMap |
typedef TLightGroupColorMap::iterator | ItLightGroupColorMap |
Private Methods |
CPatchRdrPass * | getFarRenderPass (CPatch *pPatch, uint farIndex, float &far1UScale, float &far1VScale, float &far1UBias, float &far1VBias, bool &bRot) |
void | freeFarRenderPass (CPatch *pPatch, CPatchRdrPass *pass, uint farIndex) |
CPatchRdrPass * | getTileRenderPass (uint16 tileId, bool additiveRdrPass) |
void | getTileUvScaleBiasRot (uint16 tileId, CTile::TBitmap bitmapType, CVector &uvScaleBias, uint8 &rotAlpha) |
void | resetRenderFarAndDeleteVBFV () |
void | forceMergeAtTileLevel () |
| For changing TileMaxSubdivision. force tesselation to be under tile. More...
|
void | updateGlobalsAndLockBuffers (const CVector &refineCenter) |
void | lockBuffers () |
void | unlockBuffers () |
void | synchronizeATIVBHards () |
void | updateTessBlocksFaceVector () |
void | eraseFarRenderPassFromSet (CPatchRdrPass *pass) |
bool | eraseTileFarIfNotGood (uint tileNumber, uint sizeOrder0, uint sizeOrder1, uint sizeOrder2) |
void | addPatch () |
void | removePatch () |
void | loadTile (uint16 tileId) |
void | releaseTile (uint16 tileId) |
ITexture * | findTileTexture (const std::string &textName) |
CPatchRdrPass * | findTileRdrPass (const CPatchRdrPass &pass) |
void | checkZoneBinds (CZone &curZone, EBadBind &bindError) |
|
uint | getTileLightMap (CRGBA map[NL_TILE_LIGHTMAP_SIZE *NL_TILE_LIGHTMAP_SIZE], CPatchRdrPass *&lightmapRdrPass) |
void | getTileLightMapUvInfo (uint tileLightMapId, CVector &uvScaleBias) |
void | releaseTileLightMap (uint tileLightMapId) |
void | refillTileLightMap (uint tileLightMapId, CRGBA map[NL_TILE_LIGHTMAP_SIZE *NL_TILE_LIGHTMAP_SIZE]) |
Static Private Methods |
uint | getRdrPassIndexWithSize (uint width, uint height) |
Private Attributes |
TZoneMap | Zones |
float | _TileDistNear |
float | _Threshold |
bool | _RefineMode |
float | _FarTransition |
uint | _TileMaxSubdivision |
float | _VPThresholdChange |
TTileTextureMap | TileTextureMap |
TTileRdrPassSet | TileRdrPassSet |
std::vector< CTileInfo * > | TileInfos |
std::vector< TSPRenderPass > | _TextureNears |
uint | _NFreeLightMaps |
CMaterial | TileMaterial |
CMaterial | FarMaterial |
TSPRenderPassSet | _FarRdrPassSet |
TSPRdrPassSetVector | _FarRdrPassSetVectorFree |
bool | _FarInitialized |
CRGBA | _LightValue [256] |
bool | _AutomaticLighting |
CVector | _AutomaticLightDir |
TLightGroupColorMap | _LightGroupColorMap |
CHeightField | _HeightField |
|
CRefPtr< IDriver > | _Driver |
CLandscapeVBAllocator | _Far0VB |
CLandscapeVBAllocator | _Far1VB |
CLandscapeVBAllocator | _TileVB |
bool | _VertexShaderOk |
bool | _RenderMustRefillVB |
|
bool | _NoiseEnabled |
|
CTessFacePriorityList | _SplitPriorityList |
| The priority list of faces which may need to split. More...
|
CTessFacePriorityList | _MergePriorityList |
| The priority list of faces which may need to merge. More...
|
CVector | _OldRefineCenter |
| OldRefineCenter setuped in prec refine(). More...
|
bool | _OldRefineCenterSetuped |
CTessFacePListNode | _RootNewLeaves |
| newTessFace() append the face to _RootNewLeaves. More...
|
|
CVector | _PZBModelPosition |
| -
See also:
-
setPZBModelPosition().
More...
|
Friends |
class | CTessFace |
class | CPatch |
class | CZone |
Detailed Description
A landscape.
Use CZone to build zone, and use landscape to dynamically add/remove them, for render.
Limits:
- 65535 zones max in whole world (16 bits ZoneId ).
- 65535 patchs max by zone.
- patch order 2x2 minimum.
- patch order 16x16 maximum.
- connectivity on a edge: 1/1, 1/2, or 1/4.
- connectivity on a edge of a zone: 1/1 only.
- The value of Noise amplitude is global and cannot go over 1 meter (+- 1m). Sorry, this is a FIXED (for ever) value which should NEVER change (because of Gfx database).
If you use the tiles mapped on the patches, load the near bank file (.bank) and the far bank file (.farbank) by seralizing TileBank and TileFarBank with those files. Then call initTileBanks.
-
Author:
-
Lionel Berenguier , Nevrax France
-
Date:
-
2000
Definition at line 138 of file landscape.h.
Member Typedef Documentation
typedef TLightGroupColorMap::iterator NL3D::CLandscape::ItLightGroupColorMap [private]
|
|
typedef TSPRenderPassSet::iterator NL3D::CLandscape::ItSPRenderPassSet [private]
|
|
typedef TTileRdrPassSet::iterator NL3D::CLandscape::ItTileRdrPassSet [private]
|
|
typedef TTileTextureMap::iterator NL3D::CLandscape::ItTileTextureMap [private]
|
|
typedef std::map<std::string, NLMISC::CRGBA> NL3D::CLandscape::TLightGroupColorMap [private]
|
|
typedef std::vector<TSPRenderPassSet> NL3D::CLandscape::TSPRdrPassSetVector [private]
|
|
typedef std::set<TSPRenderPass> NL3D::CLandscape::TSPRenderPassSet [private]
|
|
typedef std::set<CPatchRdrPass> NL3D::CLandscape::TTileRdrPassSet [private]
|
|
typedef std::map<std::string, RPTexture> NL3D::CLandscape::TTileTextureMap [private]
|
|
Constructor & Destructor Documentation
NL3D::CLandscape::CLandscape |
( |
|
) |
|
|
|
Constructor.
Definition at line 177 of file landscape.cpp.
References _AutomaticLightDir, _AutomaticLighting, _DLMGlobalVegetableColor, _DLMMaxAttEnd, _DriverOkForVegetable, _FarInitialized, _FarRdrPassSetVectorFree, _FarTransition, _MergePriorityList, _NFreeLightMaps, _NoiseEnabled, _OldRefineCenter, _OldRefineCenterSetuped, _PatchDLMContextList, _PointLightDiffuseMaterial, _PZBModelPosition, _RefineMode, _RenderMustRefillVB, _SplitPriorityList, _TextureDLM, _Threshold, _TileDistNear, _TileMaxSubdivision, _ULFarCurrentPatchId, _ULFarPixelsToUpdate, _ULFrequency, _ULNearCurrentTessBlockId, _ULNearPixelsToUpdate, _ULPrecTimeInit, _ULRootNearPatch, _ULRootTextureFar, _ULTotalFarPixels, _ULTotalNearPixels, _VegetableManager, _VegetableManagerEnabled, _VertexShaderOk, _VPThresholdChange, getRdrPassIndexWithSize, NL3D_LANDSCAPE_DLM_HEIGHT, NL3D_LANDSCAPE_DLM_WIDTH, NL3D_LANDSCAPE_VEGETABLE_MAX_AGP_VERTEX_LIGHTED, NL3D_LANDSCAPE_VEGETABLE_MAX_AGP_VERTEX_UNLIT, NL3D_REFINE_PLIST_DIST_MAX_MOD, NL3D_REFINE_PLIST_DIST_STEP, NL3D_REFINE_PLIST_NUM_ENTRIES, NL3D_REFINE_PLIST_SPLIT_NUMQUADRANT, NL3D_TESS_ALLOC_BLOCKSIZE, NL3D_TESSRDR_ALLOC_BLOCKSIZE, NL_MAX_SIZE_OF_TEXTURE_EDGE, setupStaticLight, and TileInfos. |
NL3D::CLandscape::~CLandscape |
( |
|
) |
|
|
Member Function Documentation
void NL3D::CLandscape::addPatch |
( |
|
) |
[private] |
|
void NL3D::CLandscape::addPatchBlocksInBBox |
( |
const CPatchIdentEx & |
paIdEx, |
|
|
const CAABBox & |
bbox, |
|
|
std::vector< CPatchBlockIdent > & |
paBlockIds |
|
) |
[private] |
|
void NL3D::CLandscape::addTrianglesInBBox |
( |
const CPatchIdentEx & |
paIdEx, |
|
|
const CAABBox & |
bbox, |
|
|
std::vector< CTrianglePatch > & |
triangles, |
|
|
uint8 |
tileTessLevel |
|
) |
const [private] |
|
|
This method search only on the given patch.
NB: this method use a convex hull subdivion to search in O(logn) what part of the patch to insert. -
Parameters:
-
bbox |
the bbox to test against. |
triangles |
array to be filled (no clear performed, elements added). |
tileTessLevel |
0,1 or 2 size of the triangles (2*2m, 1*1m or 0.5*0.5m). Level of subdivision of a tile. |
Definition at line 2277 of file landscape.cpp.
References CPatch.
Referenced by buildTrianglesInBBox. |
bool NL3D::CLandscape::addZone |
( |
const CZone & |
newZone |
) |
|
|
|
Add a zone which should be builded (or loaded), but not compiled.
CLandscape compile it. The contents of newZone are copied into the landscape. -
Parameters:
-
-
Returns:
-
true if OK, false otherwise. As example, Fail if newZone is already connected.
Definition at line 387 of file landscape.cpp.
References _LightGroupColorMap, _PatchQuadGrid, CPatch, CZone, ItLightGroupColorMap, nlassert, unlockBuffers, updateGlobalsAndLockBuffers, updateTessBlocksFaceVector, and Zones. |
void NL3D::CLandscape::appendTileLightInfluences |
( |
const CPatchIdent & |
patchId, |
|
|
const CUV & |
uv, |
|
|
std::vector< CPointLightInfluence > & |
pointLightList |
|
) |
const |
|
void NL3D::CLandscape::averageTesselationVertices |
( |
|
) |
|
|
void NL3D::CLandscape::buildCollideFaces |
( |
sint |
zoneId, |
|
|
sint |
patch, |
|
|
std::vector< CTriangle > & |
faces |
|
) |
|
|
|
Build the set of faces of landscape, from a certain patch.
Usefull for collisions. Triangles are built first in S then T order. There is two triangles by tiles. So the number of triangles for a patch is 2*OrderS*OrderT.
Definition at line 2439 of file landscape.cpp.
References CPatch, NL3D::ItZoneMap, nlassert, x, y, and Zones. |
void NL3D::CLandscape::buildCollideFaces |
( |
const CAABBoxExt & |
bbox, |
|
|
std::vector< CTriangle > & |
faces, |
|
|
bool |
faceSplit |
|
) |
|
|
|
Build the set of faces of landscape, which are IN a bbox.
Usefull for collisions. The faces are builded at Tile level (2m*2m). -
Parameters:
-
bbox |
the bbox where faces are searched. |
faces |
the result of the build. |
faceSplit |
if true, Only faces which are IN or partialy IN the bbox are returned. Else the clipping is done on patch level. Worst, but faster. |
Definition at line 2363 of file landscape.cpp.
References CPatch, NL3D::ItZoneMap, x, y, and Zones. |
void NL3D::CLandscape::buildPatchBlocksInBBox |
( |
const CAABBox & |
bbox, |
|
|
std::vector< CPatchBlockIdent > & |
paBlockIds |
|
) |
|
|
|
Same as buildTrianglesInBBox(), but fill blockId instead of raw triangles.
NB: this method use first a quadgrid to locate patchs of interest, then for each patch, it uses a convex hull subdivion to search in O(logn) what part of the patch to insert. -
Parameters:
-
bbox |
the bbox to test against. NB: you should modify your bbox according to heighfield. |
paBlockIds |
array to be filled (no clear performed, elements added). |
Definition at line 2323 of file landscape.cpp.
References _PatchQuadGrid, and addPatchBlocksInBBox. |
void NL3D::CLandscape::buildTrianglesInBBox |
( |
const CAABBox & |
bbox, |
|
|
std::vector< CTrianglePatch > & |
triangles, |
|
|
uint8 |
tileTessLevel |
|
) |
|
|
|
method relatively identical than buildCollideFaces(bbox....).
Differences below: NB: this method use first a quadgrid to locate patchs of interest, then for each patch, it uses a convex hull subdivion to search in O(logn) what part of the patch to insert. -
Parameters:
-
bbox |
the bbox to test against. NB: you should modify your bbox according to heighfield. |
triangles |
array to be filled (array first cleared, then elements added). |
tileTessLevel |
0,1 or 2 size of the triangles (2*2m, 1*1m or 0.5*0.5m). Level of subdivision of a tile. |
Definition at line 2290 of file landscape.cpp.
References _PatchQuadGrid, and addTrianglesInBBox. |
void NL3D::CLandscape::buildZoneName |
( |
sint |
zoneId, |
|
|
std::string & |
zoneName |
|
) |
[static] |
|
|
From an Id, return the name of the zone, in the form "150_EM", without extension.
Definition at line 516 of file landscape.cpp.
References x, and y. |
void NL3D::CLandscape::checkBinds |
( |
|
) |
throw (EBadBind) |
|
void NL3D::CLandscape::checkZoneBinds |
( |
CZone & |
curZone, |
|
|
EBadBind & |
bindError |
|
) |
[private] |
|
void NL3D::CLandscape::clear |
( |
|
) |
|
|
|
Disconnect, and Delete all zones.
Definition at line 525 of file landscape.cpp.
References _Driver, _Far0VB, _Far1VB, _FarRdrPassSet, _FarRdrPassSetVectorFree, _PatchQuadGrid, _TileVB, eraseFarRenderPassFromSet, getZoneList, ItSPRenderPassSet, nlverify, and removeZone.
Referenced by ~CLandscape. |
void NL3D::CLandscape::clip |
( |
const CVector & |
refineCenter, |
|
|
const std::vector< CPlane > & |
pyramid |
|
) |
|
|
void NL3D::CLandscape::computeDynamicLighting |
( |
const std::vector< CPointLight * > & |
pls |
) |
|
|
void NL3D::CLandscape::createVegetableBlendLayersModels |
( |
CScene * |
scene |
) |
|
|
void NL3D::CLandscape::deleteTessFace |
( |
CTessFace * |
f |
) |
[private] |
|
void NL3D::CLandscape::deleteTessFarVertex |
( |
CTessFarVertex * |
v |
) |
[private] |
|
void NL3D::CLandscape::deleteTessNearVertex |
( |
CTessNearVertex * |
v |
) |
[private] |
|
void NL3D::CLandscape::deleteTessVertex |
( |
CTessVertex * |
v |
) |
[private] |
|
void NL3D::CLandscape::deleteTileFace |
( |
CTileFace * |
tf |
) |
[private] |
|
void NL3D::CLandscape::deleteTileMaterial |
( |
CTileMaterial * |
tm |
) |
[private] |
|
void NL3D::CLandscape::enableAutomaticLighting |
( |
bool |
enable |
) |
|
|
void NL3D::CLandscape::enableVegetable |
( |
bool |
enable |
) |
|
|
void NL3D::CLandscape::eraseFarRenderPassFromSet |
( |
CPatchRdrPass * |
pass |
) |
[private] |
|
bool NL3D::CLandscape::eraseTileFarIfNotGood |
( |
uint |
tileNumber, |
|
|
uint |
sizeOrder0, |
|
|
uint |
sizeOrder1, |
|
|
uint |
sizeOrder2 |
|
) |
[private] |
|
void NL3D::CLandscape::excludePatchFromRefineAll |
( |
sint |
zoneId, |
|
|
uint |
patch, |
|
|
bool |
exclude |
|
) |
|
|
void NL3D::CLandscape::fillPatchQuadBlock |
( |
CPatchQuadBlock & |
quadBlock |
) |
const |
|
ITexture * NL3D::CLandscape::findTileTexture |
( |
const std::string & |
textName |
) |
[private] |
|
void NL3D::CLandscape::forceMergeAtTileLevel |
( |
|
) |
[private] |
|
const CVector& NL3D::CLandscape::getAutomaticLightDir |
( |
|
) |
const [inline] |
|
bool NL3D::CLandscape::getAutomaticLighting |
( |
|
) |
const [inline] |
|
CRGBA NL3D::CLandscape::getDLMGlobalVegetableColor |
( |
|
) |
const [inline] |
|
float NL3D::CLandscape::getDynamicLightingMaxAttEnd |
( |
|
) |
const [inline] |
|
uint NL3D::CLandscape::getDynamicLightingMemoryLoad |
( |
|
) |
const |
|
CPatchRdrPass * NL3D::CLandscape::getFarRenderPass |
( |
CPatch * |
pPatch, |
|
|
uint |
farIndex, |
|
|
float & |
far1UScale, |
|
|
float & |
far1VScale, |
|
|
float & |
far1UBias, |
|
|
float & |
far1VBias, |
|
|
bool & |
bRot |
|
) |
[private] |
|
CVector NL3D::CLandscape::getHeightFieldDeltaZ |
( |
float |
x, |
|
|
float |
y |
|
) |
const |
|
|
return the HeightField DeltaZ for the 2D position. (0,0,dZ) is returned.
Definition at line 2707 of file landscape.cpp.
References _HeightField, NL3D::CLandscape::CHeightField::Height, NL3D::CLandscape::CHeightField::OOSizeX, NL3D::CLandscape::CHeightField::OOSizeY, NL3D::CLandscape::CHeightField::OriginX, NL3D::CLandscape::CHeightField::OriginY, NL3D::CLandscape::CHeightField::Width, x, y, and NL3D::CLandscape::CHeightField::ZPatchs. |
uint8 NL3D::CLandscape::getLumel |
( |
const CPatchIdent & |
patchId, |
|
|
const CUV & |
uv |
|
) |
const |
|
bool NL3D::CLandscape::getNoiseMode |
( |
|
) |
const |
|
uint NL3D::CLandscape::getNumVegetableFaceRendered |
( |
|
) |
const |
|
CRGBA NL3D::CLandscape::getPointLightDiffuseMaterial |
( |
|
) |
const [inline] |
|
const CVector& NL3D::CLandscape::getPZBModelPosition |
( |
|
) |
const [inline] |
|
uint NL3D::CLandscape::getRdrPassIndexWithSize |
( |
uint |
width, |
|
|
uint |
height |
|
) |
[static, private] |
|
bool NL3D::CLandscape::getRefineMode |
( |
|
) |
const [inline] |
|
const CRGBA* NL3D::CLandscape::getStaticLight |
( |
|
) |
const [inline] |
|
|
Get the light color by shading table.
-
Returns:
-
a CRGBA[256] array. It give the static light color for a shading value.
Definition at line 358 of file landscape.h.
References _LightValue. |
CVector NL3D::CLandscape::getTesselatedPos |
( |
const CPatchIdent & |
patchId, |
|
|
const CUV & |
uv |
|
) |
const |
|
void NL3D::CLandscape::getTessellationLeaves |
( |
std::vector< const CTessFace * > & |
leaves |
) |
const |
|
|
From the current tesselation of landscape, build the list of leaves faces.
Warning: ptrs are only valid between 2 tesselation (2 calls of Scene::render() or 2 calls of refine*() etc...)
Definition at line 2908 of file landscape.cpp.
References CPatch, and Zones. |
CTextureDLM* NL3D::CLandscape::getTextureDLM |
( |
|
) |
const [inline, private] |
|
float NL3D::CLandscape::getThreshold |
( |
|
) |
const [inline] |
|
|
Return the tile element for a patch at specific UV. UseFull for getting surface data. Return NULL if not found.
Definition at line 1837 of file landscape.cpp.
References CPatch, nlassert, and Zones. |
uint NL3D::CLandscape::getTileLightMap |
( |
CRGBA |
map[NL_TILE_LIGHTMAP_SIZE *NL_TILE_LIGHTMAP_SIZE], |
|
|
CPatchRdrPass *& |
lightmapRdrPass |
|
) |
[private] |
|
void NL3D::CLandscape::getTileLightMapUvInfo |
( |
uint |
tileLightMapId, |
|
|
CVector & |
uvScaleBias |
|
) |
[private] |
|
uint NL3D::CLandscape::getTileMaxSubdivision |
( |
|
) |
|
|
float NL3D::CLandscape::getTileNear |
( |
|
) |
const [inline] |
|
CPatchRdrPass * NL3D::CLandscape::getTileRenderPass |
( |
uint16 |
tileId, |
|
|
bool |
additiveRdrPass |
|
) |
[private] |
|
void NL3D::CLandscape::getTileUvScaleBiasRot |
( |
uint16 |
tileId, |
|
|
CTile::TBitmap |
bitmapType, |
|
|
CVector & |
uvScaleBias, |
|
|
uint8 & |
rotAlpha |
|
) |
[private] |
|
|
For a given tile Id, look into tileSet, and get the tile vegetable descriptor.
-
Parameters:
-
tileId |
the tile [0..65535] to get the list of vegetable to create. |
Definition at line 3152 of file landscape.cpp.
References TileBank. |
const CZone * NL3D::CLandscape::getZone |
( |
sint |
zoneId |
) |
const |
|
|
Get a zone pointer.
-
Parameters:
-
zoneId |
the zone of the update. |
-
Returns:
-
Return a zone pointer. NULL if the zone doesn't exist or isn't loaded.
Definition at line 2201 of file landscape.cpp.
References Zones. |
CZone * NL3D::CLandscape::getZone |
( |
sint |
zoneId |
) |
|
|
void NL3D::CLandscape::getZoneList |
( |
std::vector< uint16 > & |
zoneIds |
) |
const |
|
void NL3D::CLandscape::init |
( |
|
) |
|
|
bool NL3D::CLandscape::initTileBanks |
( |
|
) |
|
|
bool NL3D::CLandscape::isVegetableActive |
( |
|
) |
const |
|
void NL3D::CLandscape::linkPatchToNearUL |
( |
CPatch * |
patch |
) |
[private] |
|
void NL3D::CLandscape::loadTile |
( |
uint16 |
tileId |
) |
[private] |
|
void NL3D::CLandscape::loadVegetableTexture |
( |
const std::string & |
textureFileName |
) |
|
|
|
load a texture for the vegetable, lookup in CPath.
|
void NL3D::CLandscape::lockBuffers |
( |
|
) |
[private] |
|
CTessFace * NL3D::CLandscape::newTessFace |
( |
|
) |
[private] |
|
CTessVertex * NL3D::CLandscape::newTessVertex |
( |
|
) |
[private] |
|
CTileFace * NL3D::CLandscape::newTileFace |
( |
|
) |
[private] |
|
void NL3D::CLandscape::refillTileLightMap |
( |
uint |
tileLightMapId, |
|
|
CRGBA |
map[NL_TILE_LIGHTMAP_SIZE *NL_TILE_LIGHTMAP_SIZE] |
|
) |
[private] |
|
void NL3D::CLandscape::refine |
( |
const CVector & |
refineCenter |
) |
|
|
|
Refine/Geomorph the tesselation of the landscape.
Definition at line 611 of file landscape.cpp.
References _MergePriorityList, _OldRefineCenter, _OldRefineCenterSetuped, _RefineMode, _RootNewLeaves, _SplitPriorityList, _VegetableBlockList, _VegetableManager, CTessFace, H_AUTO, NL3D_PROFILE_LAND_ADD, NL3D_PROFILE_LAND_SET, NL3D::OptFastFloorBegin, NL3D::OptFastFloorEnd, NL3D::ProfNMerges, NL3D::ProfNRefineComputeFaces, NL3D::ProfNRefineFaces, NL3D::ProfNRefineInTileTransition, NL3D::ProfNRefineLeaves, NL3D::ProfNRefineWithLowDistance, NL3D::ProfNSplits, NL3D::ProfNSplitsPass, unlockBuffers, updateGlobalsAndLockBuffers, and updateTessBlocksFaceVector. |
void NL3D::CLandscape::refineAll |
( |
const CVector & |
refineCenter |
) |
|
|
void NL3D::CLandscape::releaseTile |
( |
uint16 |
tileId |
) |
[private] |
|
void NL3D::CLandscape::releaseTileLightMap |
( |
uint |
tileLightMapId |
) |
[private] |
|
void NL3D::CLandscape::releaseTiles |
( |
uint16 |
tileStart, |
|
|
uint16 |
nbTiles |
|
) |
|
|
void NL3D::CLandscape::removeAllPointLights |
( |
|
) |
|
|
void NL3D::CLandscape::removePatch |
( |
|
) |
[private] |
|
bool NL3D::CLandscape::removeZone |
( |
uint16 |
zoneId |
) |
|
|
void NL3D::CLandscape::render |
( |
const CVector & |
refineCenter, |
|
|
const CVector & |
frontVector, |
|
|
const CPlane |
pyramid[NL3D_TESSBLOCK_NUM_CLIP_PLANE], |
|
|
bool |
doTileAddPass = false |
|
) |
|
|
|
Render the landscape.
A more precise clip is made on TessBlocks. pyramid should be the same as one passed to clip(). For optimisation, this pyramid should contains only the Left/Right and Top/Bottom clip planes, in this order. -
Parameters:
-
refineCenter |
should be the position of the camera |
frontVector |
should be the J vector of the camera |
Definition at line 945 of file landscape.cpp.
References _DLMGlobalVegetableColor, _Driver, _Far0VB, _Far1VB, _FarRdrPassSet, _PatchDLMContextList, _PointLightDiffuseMaterial, _PZBModelPosition, _RenderMustRefillVB, _TextureDLM, _TextureNears, _TileVB, _VegetableManager, _VertexShaderOk, _VPThresholdChange, CPatch, NL3D::drawPassTriArray, FarMaterial, NL3D::initPassTriArray, isVegetableActive, ItSPRenderPassSet, ItTileRdrPassSet, NL3D::ItZoneMap, lockBuffers, min, NL3D::NL3D_LandscapeGlobals_PassNTri, NL3D_MAX_TILE_PASS, NL3D_PROFILE_LAND_SET, NL3D_TESSBLOCK_NUM_CLIP_PLANE, NL3D_TILE_PASS_ADD, NL3D_TILE_PASS_LIGHTMAP, NL3D_TILE_PASS_RGB0, NL3D_TILE_PASS_RGB1, NL3D_TILE_PASS_RGB2, nlassert, nlstop, NL3D::ProfNRdrFar0, NL3D::ProfNRdrFar1, NL3D::ProfNRdrTile, synchronizeATIVBHards, TileMaterial, TileRdrPassSet, unlockBuffers, updateGlobalsAndLockBuffers, v, and Zones. |
void NL3D::CLandscape::resetRenderFarAndDeleteVBFV |
( |
|
) |
[private] |
|
void NL3D::CLandscape::setDLMGlobalVegetableColor |
( |
CRGBA |
gvc |
) |
|
|
void NL3D::CLandscape::setDriver |
( |
IDriver * |
drv |
) |
|
|
void NL3D::CLandscape::setDynamicLightingMaxAttEnd |
( |
float |
maxAttEnd |
) |
|
|
|
Set PointLight Max Attenuation End landscape support.
Every pointLight AttEnd is clamped to this value. Default is 30.f.
Definition at line 3514 of file landscape.cpp.
References _DLMMaxAttEnd. |
void NL3D::CLandscape::setHeightField |
( |
const CHeightMap & |
hf |
) |
|
|
|
set the HeightField data.
NB: take lot of place in memory. only one is possible. You should setup this heightfield around the zones which will be loaded. It is applied only when a zone is loaded, so you should setup it 2km around the user, each time you move too far from a previous place (eg 160m from last setup).
Definition at line 2793 of file landscape.cpp.
References _HeightField, NL3D::CLandscape::CHeightField::Height, NL3D::CLandscape::CHeightField::OOSizeX, NL3D::CLandscape::CHeightField::OOSizeY, NL3D::CLandscape::CHeightField::OriginX, NL3D::CLandscape::CHeightField::OriginY, NL3D::CLandscape::CHeightField::SizeX, NL3D::CLandscape::CHeightField::SizeY, v, w, NL3D::CLandscape::CHeightField::Width, x, y, and NL3D::CLandscape::CHeightField::ZPatchs. |
void NL3D::CLandscape::setNoiseMode |
( |
bool |
enabled |
) |
|
|
|
Enable the noise or not. NB: only new tesselation computed is modified, so you should call it only at init time.
Definition at line 3034 of file landscape.cpp.
References _NoiseEnabled. |
void NL3D::CLandscape::setPointLightDiffuseMaterial |
( |
CRGBA |
diffuse |
) |
|
|
void NL3D::CLandscape::setPointLightFactor |
( |
const std::string & |
lightGroupName, |
|
|
NLMISC::CRGBA |
nFactor |
|
) |
|
|
void NL3D::CLandscape::setPZBModelPosition |
( |
const CVector & |
pos |
) |
|
|
|
Set the ModelPosition (for Precision ZBuffer purpose).
NB: the model Pos may be floor-ed (for greater float precision). Should be setup to the camera position each frame.
NB: if vertexProgram is used, it is as faster as before (because of geomorph done each frame, and because of VP MAD instruction). NB: if vertexProgram is not used, it is a little slower, because of the substraction.
Definition at line 2929 of file landscape.cpp.
References _PZBModelPosition. |
void NL3D::CLandscape::setRefineMode |
( |
bool |
enabled |
) |
[inline] |
|
void NL3D::CLandscape::setThreshold |
( |
float |
thre |
) |
|
|
void NL3D::CLandscape::setTileMaxSubdivision |
( |
uint |
tileDiv |
) |
|
|
void NL3D::CLandscape::setTileNear |
( |
float |
tileNear |
) |
|
|
void NL3D::CLandscape::setupAutomaticLightDir |
( |
const CVector & |
lightDir |
) |
|
|
|
For automatic near lightmap computing (if enabled): setup the lightdir.
-
Parameters:
-
lightDir |
is the direction of the light vector used for the lighting. NB: the vector is normalized. |
Definition at line 2699 of file landscape.cpp.
References _AutomaticLightDir. |
void NL3D::CLandscape::setupColorsFromTileFlags |
( |
const NLMISC::CRGBA |
colors[4] |
) |
|
|
|
Debug purpose only : setup the colors of the patch of all the currently loaded zones so that it shows which tiles have vegetable disabled, or are above, below water.
User provides a table with 4 colors for each state : color 0 = above water color 1 = underwater color 2 = intersect water color 3 = vegetable disabled
Definition at line 3172 of file landscape.cpp.
References Zones. |
void NL3D::CLandscape::setUpdateLightingFrequency |
( |
float |
freq |
) |
|
|
|
set the frequency of lighting update.
If freq==1, ALL patchs are updated each second. e.g: if 1/20, then every 20 seconds, all patchs are updated. If you set 0, no update will be done at all (this is the default setup!!).
Definition at line 3323 of file landscape.cpp.
References _ULFrequency. |
void NL3D::CLandscape::setupStaticLight |
( |
const CRGBA & |
diffuse, |
|
|
const CRGBA & |
ambiant, |
|
|
float |
multiply |
|
) |
|
|
|
Setup the light color use for static illumination.
-
Parameters:
-
diffuse |
is the color of the diffuse componante of the lighting. |
ambiant |
is the color of the ambiante componante of the lighting. |
multiply |
is the multiply factor. Final color is (diffuse*multiply*shading+ambiant*(1.0-shading)) |
Definition at line 2660 of file landscape.cpp.
References _LightValue, NLMISC::clamp, and r.
Referenced by CLandscape. |
void NL3D::CLandscape::setupVegetableLighting |
( |
const CRGBA & |
ambient, |
|
|
const CRGBA & |
diffuse, |
|
|
const CVector & |
directionalLight |
|
) |
|
|
void NL3D::CLandscape::setVegetableTime |
( |
double |
time |
) |
|
|
void NL3D::CLandscape::setVegetableUpdateLightingFrequency |
( |
float |
freq |
) |
|
|
|
set the frequency of Vegetable lighting update.
If freq==1, ALL lighted igs are updated each second. e.g: if 1/20, then every 20 seconds, all Igs are updated. If you set 0, no update will be done at all (this is the default setup!!).
Definition at line 3166 of file landscape.cpp.
References _VegetableManager. |
void NL3D::CLandscape::setVegetableUpdateLightingTime |
( |
double |
time |
) |
|
|
void NL3D::CLandscape::setVegetableWind |
( |
const CVector & |
windDir, |
|
|
float |
windFreq, |
|
|
float |
windPower, |
|
|
float |
windBendMin |
|
) |
|
|
|
set the vegetable Wind for animation.
All thoses variables may be modified each frame without penalty. -
Parameters:
-
windDir |
is the direction of the wind. NB: only XY direction is kept. |
windFreq |
is the frequency for the animation (speed) |
windPower |
is the power of the wind, and is a factor (0..1) of Bend |
windBendMin |
is a value in (0..1) which indicate how much the vegetables are bended at minimum (for very powerfull wind) |
Definition at line 3122 of file landscape.cpp.
References _VegetableManager. |
void NL3D::CLandscape::synchronizeATIVBHards |
( |
|
) |
[private] |
|
void NL3D::CLandscape::unlinkPatchFromNearUL |
( |
CPatch * |
patch |
) |
[private] |
|
void NL3D::CLandscape::unlockBuffers |
( |
|
) |
[private] |
|
|
Definition at line 883 of file landscape.cpp.
References _Far0VB, _Far1VB, _TileVB, and _VegetableManager.
Referenced by addZone, averageTesselationVertices, clip, computeDynamicLighting, refine, refineAll, removeZone, render, and updateLightingAll. |
void NL3D::CLandscape::updateGlobalsAndLockBuffers |
( |
const CVector & |
refineCenter |
) |
[private] |
|
|
Definition at line 805 of file landscape.cpp.
References _Driver, _Far0VB, _Far1VB, _FarTransition, _PZBModelPosition, _Threshold, _TileDistNear, _TileMaxSubdivision, _TileVB, _VegetableManager, lockBuffers, and NLMISC::sqr.
Referenced by addZone, averageTesselationVertices, clip, computeDynamicLighting, refine, refineAll, removeZone, render, and updateLightingAll. |
void NL3D::CLandscape::updateLighting |
( |
double |
time |
) |
|
|
void NL3D::CLandscape::updateLightingAll |
( |
|
) |
|
|
void NL3D::CLandscape::updateLightingTextureFar |
( |
float |
ratio |
) |
[private] |
|
void NL3D::CLandscape::updateLightingTextureNear |
( |
float |
ratio |
) |
[private] |
|
void NL3D::CLandscape::updateTessBlocksFaceVector |
( |
|
) |
[private] |
|
Friends And Related Function Documentation
friend class CPatch [friend]
|
|
|
Definition at line 594 of file landscape.h.
Referenced by addPatchBlocksInBBox, addTrianglesInBBox, addZone, appendTileLightInfluences, buildCollideFaces, computeDynamicLighting, enableVegetable, fillPatchQuadBlock, getLumel, getTesselatedPos, getTessellationLeaves, getTileElement, removeAllPointLights, render, and updateTessBlocksFaceVector. |
friend class CTessFace [friend]
|
|
friend class CZone [friend]
|
|
Member Data Documentation
CVector NL3D::CLandscape::_AutomaticLightDir [private]
|
|
bool NL3D::CLandscape::_AutomaticLighting [private]
|
|
CRGBA NL3D::CLandscape::_DLMGlobalVegetableColor [private]
|
|
float NL3D::CLandscape::_DLMMaxAttEnd [private]
|
|
CRefPtr<IDriver> NL3D::CLandscape::_Driver [private]
|
|
bool NL3D::CLandscape::_DriverOkForVegetable [private]
|
|
bool NL3D::CLandscape::_FarInitialized [private]
|
|
float NL3D::CLandscape::_FarTransition [private]
|
|
CRGBA NL3D::CLandscape::_LightValue[256] [private]
|
|
uint NL3D::CLandscape::_NFreeLightMaps [private]
|
|
bool NL3D::CLandscape::_NoiseEnabled [private]
|
|
CVector NL3D::CLandscape::_OldRefineCenter [private]
|
|
bool NL3D::CLandscape::_OldRefineCenterSetuped [private]
|
|
const float NL3D::CLandscape::_PatchQuadGridEltSize = 16 [static, private]
|
|
const uint NL3D::CLandscape::_PatchQuadGridSize = 128 [static, private]
|
|
CRGBA NL3D::CLandscape::_PointLightDiffuseMaterial [private]
|
|
CVector NL3D::CLandscape::_PZBModelPosition [private]
|
|
bool NL3D::CLandscape::_RefineMode [private]
|
|
bool NL3D::CLandscape::_RenderMustRefillVB [private]
|
|
CTessBlock NL3D::CLandscape::_TessBlockModificationRoot [private]
|
|
std::vector<TSPRenderPass> NL3D::CLandscape::_TextureNears [private]
|
|
float NL3D::CLandscape::_Threshold [private]
|
|
float NL3D::CLandscape::_TileDistNear [private]
|
|
uint NL3D::CLandscape::_TileMaxSubdivision [private]
|
|
uint NL3D::CLandscape::_ULFarCurrentPatchId [private]
|
|
float NL3D::CLandscape::_ULFarPixelsToUpdate [private]
|
|
float NL3D::CLandscape::_ULFrequency [private]
|
|
uint NL3D::CLandscape::_ULNearCurrentTessBlockId [private]
|
|
float NL3D::CLandscape::_ULNearPixelsToUpdate [private]
|
|
double NL3D::CLandscape::_ULPrecTime [private]
|
|
bool NL3D::CLandscape::_ULPrecTimeInit [private]
|
|
CPatch* NL3D::CLandscape::_ULRootNearPatch [private]
|
|
CTextureFar* NL3D::CLandscape::_ULRootTextureFar [private]
|
|
double NL3D::CLandscape::_ULTime [private]
|
|
sint NL3D::CLandscape::_ULTotalFarPixels [private]
|
|
sint NL3D::CLandscape::_ULTotalNearPixels [private]
|
|
|
List of VegetableBlock, to be tested for creation each frame.
Definition at line 894 of file landscape.h.
Referenced by refine. |
|
The VegetableManager. (ptr only for include speed).
Definition at line 886 of file landscape.h.
Referenced by CLandscape, createVegetableBlendLayersModels, enableVegetable, getNumVegetableFaceRendered, initTileBanks, lockBuffers, refine, render, setupVegetableLighting, setVegetableTime, setVegetableUpdateLightingFrequency, setVegetableUpdateLightingTime, setVegetableWind, unlockBuffers, updateGlobalsAndLockBuffers, updateLightingAll, and ~CLandscape. |
bool NL3D::CLandscape::_VegetableManagerEnabled [private]
|
|
bool NL3D::CLandscape::_VertexShaderOk [private]
|
|
float NL3D::CLandscape::_VPThresholdChange [private]
|
|
CMaterial NL3D::CLandscape::FarMaterial [private]
|
|
CBlockMemory<CTessFace> NL3D::CLandscape::TessFaceAllocator [private]
|
|
CBlockMemory<CTessFarVertex> NL3D::CLandscape::TessFarVertexAllocator [private]
|
|
CBlockMemory<CTessNearVertex> NL3D::CLandscape::TessNearVertexAllocator [private]
|
|
CBlockMemory<CTessVertex> NL3D::CLandscape::TessVertexAllocator [private]
|
|
CBlockMemory<CTileFace> NL3D::CLandscape::TileFaceAllocator [private]
|
|
std::vector<CTileInfo*> NL3D::CLandscape::TileInfos [private]
|
|
CMaterial NL3D::CLandscape::TileMaterial [private]
|
|
CBlockMemory<CTileMaterial> NL3D::CLandscape::TileMaterialAllocator [private]
|
|
TZoneMap NL3D::CLandscape::Zones [private]
|
|
|
Definition at line 663 of file landscape.h.
Referenced by addZone, appendTileLightInfluences, averageTesselationVertices, buildCollideFaces, clip, enableVegetable, excludePatchFromRefineAll, fillPatchQuadBlock, forceMergeAtTileLevel, getLumel, getTesselatedPos, getTessellationLeaves, getTileElement, getZone, getZoneList, refineAll, removeAllPointLights, removeZone, render, resetRenderFarAndDeleteVBFV, setPointLightFactor, and setupColorsFromTileFlags. |
The documentation for this class was generated from the following files:
|
|