Jogl、Jbullet、および OpenSimplexNoise (OSN) を使用して、無限にプレイ可能な世界を作成しようとしています。OSN でワールドを生成し、正常にレンダリングしていますが、それをワールド/コリジョン システムに追加する方法がわかりません。
btHeightfieldTerrainShape クラスを見つけましたが、Java で実装されていません。BvhTriangleMeshShape も使用しようとしましたが、その仕組みがわかりません。
私は世代の3つの値を持っています:
- int Smooth: 1 メートルの分割数
- int viewDistance: 1 つの軸に描画するチャンクの数
- int chunkSize: 1 つのチャンクのメーターの数
ハイトマップを生成するためにこのコードを使用しています:
/**
* Generate all height in the chunk p[cx][cy].
*/
private float[][] genPerlinMap(int[] p) {
float[][] pts = new float[chunkSize*smooth+1][chunkSize*smooth+1];
for(int i1=0;i1<chunkSize*smooth+1;i1++){
for(int i2=0;i2<chunkSize*smooth+1;i2++){
pts[i1][i2] = (float) (osp.eval(
(p[0]*chunkSize+i1/(float)(smooth))/(float) (mapSize),
(p[1]*chunkSize+i2/(float)(smooth))/(float) (mapSize)
)+1)*0.5f*mapSize;
}
}
return pts;
}
誰かがこれを追加する方法を知っていますか?