Paging Scene Manager Option        
Print

Using setOption / getOption Mechanism, you can use the PLSM2 in a way more advanced way, here's the option documented :

setOption

Terrain Position

  • PositionX
  • PositionY
  • PositionZ

 

Terrain Selection

  • CurrentMap
  • InsertNewMap

 

Texture Mode Selection

  • CurrentTextureFormat

 

Terrain Modifications

Brush Setup

All terrain modification use the same Brush setup (Brush is a modification mask, like gimp/photoshop brushes)

  • BrushScale
  • BrushArray :array of floats. Delta you want to apply. Not the final height.
  • BrushArrayWidth : it's just the array width
  • BrushArrayHeight : same but for height.

 

deformation

The thing to notice is that DeformationCenter is a BrushArray Center (width/2 and height/2), so you may want to shift deformation center accordingly.

  • DeformationCenter

 

painting

  • PaintCenter
  • setPaintChannelValues

 
tuan kuranes said
It will be "PaintCenter" for all. (no more PaintColorCenter or PaintAlphaCenter) and "setPaintChannelValues" to specify factor. (no more channel selection before that.)

  • PaintAlphaCenter
  • PaintColorCenter
  • PaintChannel
  • PaintColor

 

erosion

  • fillBrushArray

 

Data Page handling

  • PageUpdate
  • LoadNow Preloads all possible tiles

 

Terrain Mesh Tile Getter

PageGetTileVertexData_2 : This is the optimized, yet a bit fuzzy implementation of the getVertexDataPatch

Usage: Pass in a std::vector<void*> Pointer to the getOption call containing at least 5 Elements :

  • [0](Ogre::uint*) = X Index of the Page to retrieve data from,
  • [1](Ogre::uint*) = Z Index of the Page to retrieve data from;
  • [2](Ogre::uint*) = X Index of the Tile within the Page to retrieve data from,
  • [3](Ogre::uint*) = Z Index of the Tile within the Page to retrieve data from,
  • [4](Ogre::uint*) = LodLevel to get the data at (note that level 0 means highest detail),

 
The getData call will then append 3 entries to the end of the vector.
In Detail(in order),

  • [End-2](Ogre::uint*) = Number of vertices returned,
  • [End-1] (Ogre::Vector3*) = The actual vertices, this is a array containing as many elements as returned in End-2,
  • [End] (Ogre::IndexData*) = The index data for the terrain polygons at the queried LodLevel.

 
Note that the caller is in charge of deleting the vector array and the integer with the number of vertices returned.

getOption

Terrain size

  • MapBoundaries : Ogre::AxisAlignedBox
  • GlobalToPage : Ogre::Vector3
  • getAreaSize
  • PositionX
  • PositionY
  • PositionZ
  • ScaleX
  • ScaleY
  • ScaleZ

 

Terrain debug

  • VisibilityMaterial

 

Terrain Option

  • MaxNumTiles
  • MaxNumRenderables

 

Paging Info

  • PagePreloadQueue
  • PageTextureloadQueue
  • PageLoadQueue
  • PreLoadedPages
  • TextureLoadedPages
  • LoadedPages
  • UnloadedPages
  • RenderableFree
  • TileFree
  • RenderableLoading
  • VisibleRenderables

 

Terrain Deformation

  • Impact
  • ImpactPageX
  • ImpactPageZ
  • ImpactTileX
  • ImpactTileZ
  • numModifiedTile
  • BrushSize
  • BrushScale

 

Texture Mode Selection

  • NextTextureFormat
  • CurrentTextureFormat

 

Terrain Selection

  • NextMap
  • PreviousMap
  • CurrentMap
  • CurrentMapFileName

 

Camera Info

  • CurrentCameraPageX : int
  • CurrentCameraPageZ : int
  • CurrentCameraTileX
  • CurrentCameraTileZ

 

Cull Info

  • NextCullMode
  • CullDebug
  • CurrentOptionCamera
  • getCullingMode

 

use cases

  • look at demo code

 

  • how to paint terrain
  • how to deform terrain
  • how to erode terrain
  • how to make splat
  • how to get a trimesh to feed newton, Ode, Opcode, AI polygon soup pathfinder.
  • how to change culling modes

 


Contributors to this page: jacmoe133512 points  and OgreWikiBot .
Page last modified on Monday 28 of December, 2009 01:15:07 UTC by jacmoe133512 points .


The content on this page is licensed under the terms of the Creative Commons Attribution-ShareAlike License.
As an exception, any source code contributed within the content is released into the Public Domain.