btHeightfieldTerrainShape 构造函数参数不明确
btHeightfieldTerrainShape constructor arguments not clear
我很难理解 btHeightfieldTerrainShape 的构造函数参数以及应该如何设置高度场数据。
前两个参数heightStickField和widthStickField。他们代表什么?是整个地形的宽度和高度,以便缩放高度场以适应内部?或者它是否代表每个高度的“瓷砖”总数,以便线性高度场数据可以分解为每个瓷砖的高度?还有高度图的顺序是什么?
我这样生成我的地形高度。这会匹配 btHeightfieldTerrainShape 的高度字段吗?
for (int i = 0; i <= mHeight; i++) {
for (int j = 0; j <= mWidth; j++) {
double _noiseX = j + _xOffset;
double _noiseZ = i + _zOffset;
//float _height = 0.2f + ((float)mPerlinNoiseGenerator.GetValue(_noiseX, _noiseZ, 0.0) * 2);
float _height = (float)mPerlinNoiseGenerator.GetValue(_noiseX, _noiseZ, 0.0);
if (!i && !j) {
_terrainData->mMaxHeight = _height;
_terrainData->mMinHeight = _height;
}else {
_terrainData->mMaxHeight = std::max(_terrainData->mMaxHeight, _height);
_terrainData->mMinHeight = std::min(_terrainData->mMinHeight, _height);
}
_terrainData->mHeightMap.push_back(_height);
}
}
我到处找了找,没能找到任何关于 btHeightfieldTerrainShape 使用的明确解释。感谢任何帮助。
谢谢!
想通了。对于那些想知道顺序是 -x 到 +x 和 z+ 到 z- 的人。因此,如下所示的 for 循环将使您获得正确的顺序。
这里的宽度和高度是根据每个 row/column
的 tiles/height 值的数量
for (int i = 0; i < mHeight; i++) {
for (int j = 0; j < mWidth; j++) {}}
我很难理解 btHeightfieldTerrainShape 的构造函数参数以及应该如何设置高度场数据。
前两个参数heightStickField和widthStickField。他们代表什么?是整个地形的宽度和高度,以便缩放高度场以适应内部?或者它是否代表每个高度的“瓷砖”总数,以便线性高度场数据可以分解为每个瓷砖的高度?还有高度图的顺序是什么?
我这样生成我的地形高度。这会匹配 btHeightfieldTerrainShape 的高度字段吗?
for (int i = 0; i <= mHeight; i++) {
for (int j = 0; j <= mWidth; j++) {
double _noiseX = j + _xOffset;
double _noiseZ = i + _zOffset;
//float _height = 0.2f + ((float)mPerlinNoiseGenerator.GetValue(_noiseX, _noiseZ, 0.0) * 2);
float _height = (float)mPerlinNoiseGenerator.GetValue(_noiseX, _noiseZ, 0.0);
if (!i && !j) {
_terrainData->mMaxHeight = _height;
_terrainData->mMinHeight = _height;
}else {
_terrainData->mMaxHeight = std::max(_terrainData->mMaxHeight, _height);
_terrainData->mMinHeight = std::min(_terrainData->mMinHeight, _height);
}
_terrainData->mHeightMap.push_back(_height);
}
}
我到处找了找,没能找到任何关于 btHeightfieldTerrainShape 使用的明确解释。感谢任何帮助。
谢谢!
想通了。对于那些想知道顺序是 -x 到 +x 和 z+ 到 z- 的人。因此,如下所示的 for 循环将使您获得正确的顺序。 这里的宽度和高度是根据每个 row/column
的 tiles/height 值的数量for (int i = 0; i < mHeight; i++) {
for (int j = 0; j < mWidth; j++) {}}