|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectcom.jme3.scene.Spatial
com.jme3.scene.Geometry
com.jme3.terrain.geomipmap.TerrainPatch
public class TerrainPatch
A terrain patch is a leaf in the terrain quad tree. It has a mesh that can change levels of detail (LOD) whenever the view point, or camera, changes. The actual terrain mesh is created by the LODGeomap class. That uses a geo-mipmapping algorithm to change the index buffer of the mesh. The mesh is a triangle strip. In wireframe mode you might notice some strange lines, these are degenerate triangles generated by the geoMipMap algorithm and can be ignored. The video card removes them at almost no cost. Each patch needs to know its neighbour's LOD so it can seam its edges with them, in case the neighbour has a different LOD. If this doesn't happen, you will see gaps. The LOD value is most detailed at zero. It gets less detailed the higher the LOD value until you reach maxLod, which is a mathematical limit on the number of times the 'size' of the patch can be divided by two. However there is a -1 to that for now until I add in a custom index buffer calculation for that max level, the current algorithm does not go that far. You can supply a LodThresholdCalculator for use in determining when the LOD should change. It's API will no doubt change in the near future. Right now it defaults to just changing LOD every two patch sizes. So if a patch has a size of 65, then the LOD changes every 130 units away.
入れ子のクラスの概要 |
---|
クラス com.jme3.scene.Spatial から継承された入れ子のクラス/インタフェース |
---|
Spatial.CullHint |
フィールドの概要 |
---|
クラス com.jme3.scene.Spatial から継承されたフィールド |
---|
queueDistance |
コンストラクタの概要 | |
---|---|
TerrainPatch()
|
|
TerrainPatch(java.lang.String name)
|
|
TerrainPatch(java.lang.String name,
int size)
|
|
TerrainPatch(java.lang.String name,
int size,
Vector3f stepScale,
float[] heightMap,
Vector3f origin)
Constructor instantiates a new TerrainPatch object. |
|
TerrainPatch(java.lang.String name,
int size,
Vector3f stepScale,
float[] heightMap,
Vector3f origin,
int totalSize,
Vector2f offset,
float offsetAmount)
Constructor instantiates a new TerrainPatch object. |
メソッドの概要 | |
---|---|
TerrainPatch |
clone()
This version of clone is a shallow clone, in other words, the same mesh is referenced as the original geometry. |
int |
collideWith(Collidable other,
CollisionResults results)
Check collision with another Collidable. |
void |
generateLodEntropies()
This calculation is slow, so don't use it often. |
Triangle[] |
getGridTriangles(float x,
float z)
Get the triangles at the specified grid point. |
java.nio.FloatBuffer |
getHeightmap()
|
float |
getHeightmapHeight(float x,
float z)
|
int |
getLod()
|
LodCalculator |
getLodCalculator()
|
float[] |
getLodEntropies()
|
int |
getMaxLod()
The maximum lod supported by this terrain patch. |
Vector2f |
getOffset()
Returns the current offset amount. |
float |
getOffsetAmount()
Returns the offset amount this terrain patch uses for textures. |
int |
getPreviousLod()
|
short |
getQuadrant()
|
int |
getSize()
Returns the size of this terrain patch. |
Vector3f |
getStepScale()
Returns the step scale that stretches the height map. |
Vector2f |
getTex(float x,
float z,
Vector2f store)
|
int |
getTotalSize()
Returns the total size of the terrain. |
Triangle |
getTriangle(float x,
float z)
Get the triangle of this geometry at the specified local coordinate. |
void |
lockMesh()
Locks the mesh (sets it static) to improve performance. |
void |
read(JmeImporter im)
|
void |
setLod(int lod)
|
void |
setLodCalculator(LodCalculator lodCalculator)
|
void |
setLodCalculator(LodCalculatorFactory lodCalculatorFactory)
|
void |
setOffset(Vector2f offset)
Sets the value for the current offset amount to use when building texture coordinates. |
void |
setOffsetAmount(float offsetAmount)
Sets the offset of this terrain texture map. |
void |
setPreviousLod(int previousLod)
|
void |
setQuadrant(short quadrant)
|
void |
setSize(int size)
Sets the size of this terrain patch. |
void |
setStepScale(Vector3f stepScale)
Sets the step scale of this terrain patch's height map. |
void |
setTotalSize(int totalSize)
Sets the total size of the terrain . |
void |
unlockMesh()
Unlocks the mesh (sets it dynamic) to make it editable. |
void |
write(JmeExporter ex)
|
クラス com.jme3.scene.Geometry から継承されたメソッド |
---|
clone, computeWorldMatrix, deepClone, depthFirstTraversal, getLodLevel, getMaterial, getMesh, getModelBound, getTriangleCount, getVertexCount, getWorldMatrix, isIgnoreTransform, setIgnoreTransform, setLodLevel, setMaterial, setMesh, setModelBound, updateModelBound |
クラス java.lang.Object から継承されたメソッド |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
public TerrainPatch()
public TerrainPatch(java.lang.String name)
public TerrainPatch(java.lang.String name, int size)
public TerrainPatch(java.lang.String name, int size, Vector3f stepScale, float[] heightMap, Vector3f origin)
TerrainPatch
object. The
parameters and heightmap data are then processed to generate a
TriMesh
object for rendering.
name
- the name of the terrain patch.size
- the size of the heightmap.stepScale
- the scale for the axes.heightMap
- the height data.origin
- the origin offset of the patch.public TerrainPatch(java.lang.String name, int size, Vector3f stepScale, float[] heightMap, Vector3f origin, int totalSize, Vector2f offset, float offsetAmount)
TerrainPatch
object. The
parameters and heightmap data are then processed to generate a
TriMesh
object for renderering.
name
- the name of the terrain patch.size
- the size of the patch.stepScale
- the scale for the axes.heightMap
- the height data.origin
- the origin offset of the patch.totalSize
- the total size of the terrain. (Higher if the patch is part of
a TerrainQuad
tree.offset
- the offset for texture coordinates.offsetAmount
- the total offset amount. Used for texture coordinates.メソッドの詳細 |
---|
public void generateLodEntropies()
public float[] getLodEntropies()
public java.nio.FloatBuffer getHeightmap()
public int getMaxLod()
public Vector2f getTex(float x, float z, Vector2f store)
public float getHeightmapHeight(float x, float z)
public Triangle getTriangle(float x, float z)
gridX
- local to the terrain patchgridY
- local to the terrain patch
public Triangle[] getGridTriangles(float x, float z)
gridX
- local to the terrain patchgridY
- local to the terrain patch
public void lockMesh()
public void unlockMesh()
public float getOffsetAmount()
public Vector3f getStepScale()
public int getTotalSize()
public int getSize()
public Vector2f getOffset()
public void setOffset(Vector2f offset)
offset
- The new texture offset.public void setSize(int size)
size
- The new size.public void setTotalSize(int totalSize)
totalSize
- The new total size.public void setStepScale(Vector3f stepScale)
stepScale
- The new step scale.public void setOffsetAmount(float offsetAmount)
offsetAmount
- The new texture offset.public short getQuadrant()
public void setQuadrant(short quadrant)
quadrant
- The quadrant to set.public int getLod()
public void setLod(int lod)
public int getPreviousLod()
public void setPreviousLod(int previousLod)
public LodCalculator getLodCalculator()
public void setLodCalculator(LodCalculator lodCalculator)
public void setLodCalculator(LodCalculatorFactory lodCalculatorFactory)
public int collideWith(Collidable other, CollisionResults results) throws UnsupportedCollisionException
Collidable
の記述:
Collidable
内の collideWith
Geometry
内の collideWith
other
- The object to check collision againstresults
- Will contain the list of CollisionResult
s.
UnsupportedCollisionException
public void write(JmeExporter ex) throws java.io.IOException
Savable
内の write
Geometry
内の write
java.io.IOException
public void read(JmeImporter im) throws java.io.IOException
Savable
内の read
Geometry
内の read
java.io.IOException
public TerrainPatch clone()
Geometry
の記述:
Geometry
内の clone
Mesh.cloneForAnim()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |