子弹物理-关于btHeightfieldTerrainShape的两个问题



首先,我搜索了关于btHeightfieldTerrainShape的信息,然后我意识到构造函数不需要任何普通数据。它是通过地形高度指数数据来计算法线的吗?

第二,参数void*heightfieldData有什么形式吗?我知道一定是heightDataType-array,但一定有x-z坐标之类的,但只有数组。这个有公式吗?

数组格式取决于PHY_ScalarType参数,并且将按此方式进行集成。

它可以是

  • 无符号字符(值*高度比例(
  • short(value*heightScale(
  • float(忽略heightScale(

Array是一个简单的";2d图像";其中每个值表示该点的高程,某种形式的虚拟网格/2d地图。

使用设置分辨率

int heightStickWidth, 
int heightStickLength,

在构造函数中。

所以你的数组的大小必须是heightStickWidth*HeightStick Length元素

在4x4网格的情况下,这在视觉上看起来像:

[0.0,-1.0,2.0,3.0,
0.0,2.0,-1.0,-2.0
5.0,10.0,-10.0,-2.0
5.0,10.0,-10.0,-2.0]

高程轴取决于构造函数中的upAxis参数(0=X,1=Y,2=Z iirc(

另外,不要忘记,该类型形状的项目符号不会复制您的数组,因此您需要确保在形状仍处于活动状态时不要删除它。

相关内容

  • 没有找到相关文章

最新更新