1

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;
}

誰かがこれを追加する方法を知っていますか?

4

1 に答える 1