我正在努力找出如何使用 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 需要什么格式?我假设这只是浮点数的字节缓冲区?
第一个功能
public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData, float heightScale, float minHeight, float maxHeight, int upAxis, PHY_ScalarType heightDataType, boolean flipQuadEdges)
根据文档https://pybullet.org/Bullet/BulletFull/classbtHeightfieldTerrainShape.html#a90d823ba5f44871a0bcfce0174177223,是首选。
浏览文档(和cpp代码),它似乎是代表您定义的表面(地形)的原子矩形表面的矩形尺寸。
例如,如果宽度和高度为 1,地形为 10 x 10(x 和 y),则将有 10 x 10 = 100 个这样的矩形代表您的地形。
如何将其应用于球体(地圈或常规)?