1

我正在尝试使用 Jogl、Jbullet 和 OpenSimplexNoise (OSN) 创建一个无限可玩的世界。我正在使用 OSN 生成世界,并成功渲染它,但我不知道如何将其添加到世界/碰撞系统中。

我找到了 btHeightfieldTerrainShape 类,但它不是用 Java 实现的。我也尝试使用 BvhTriangleMeshShape,但我不明白它是如何工作的。

我有 3 个世代价值观:

  • int smooth:一米的分割数
  • int viewDistance: 在一个轴上绘制的块数
  • int chunkSize:一个块中仪表上的数字

我正在使用此代码生成高度图:

/**
 * 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

1

我找到了一个解决方案:使用https://github.com/bubblecloud/jbullet(来自 github 的 jbullet)和此处的代码:https ://github.com/bubblecloud/jbullet/commit/a5da8cdc679e998ef3a8605ee9b3cd5f94d71fee 。

感谢 gouessej 的 jbullet github 链接 :)

于 2015-08-14T20:50:19.067 回答