我正在努力寻找如何使用 JBullet 物理库中的 HeightfieldTerrainShape
。如我所见,有 2 个构造函数可用:
public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData,
float heightScale, float minHeight, float maxHeight, int upAxis, PHY_ScalarType heightDataType,
boolean flipQuadEdges)
和
public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData,
float maxHeight, int upAxis, boolean useFloatData, boolean flipQuadEdges)
heightScale
、minHeight
、maxHeight
和 upAxis
是不言自明的。但是“heightStick”到底是什么?我如何确定它的宽度和长度? heightfieldData 需要什么格式?我假设这只是 float 的字节缓冲区?
最佳答案
第一个函数
public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData, float heightScale, float minHeight, float maxHeight, int upAxis, PHY_ScalarType heightDataType, boolean flipQuadEdges)
通过文档(和 cpp 代码),它似乎代表您正在定义的表面(地形)的原子矩形表面的矩形尺寸。
例如,如果您的宽度和高度为 1,地形为 10 x 10(x 和 y),则将有 10 x 10 = 100 个这样的矩形代表您的地形。
关于java - 如何使用子弹HeightfieldTerrainShape,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56246243/