1

私は現在、ブール値の配列として保存されている世界のボリュームデータを持っています。次に、空の各ブロックをチェックし、空でない隣接ブロックがある場合は、面が描画されます。これにより、openglを使用して大量の顔をグラフィックカードに送信できなくなります。

現在、ブロックの挿入と削除に取り組んでいますが、これをすばやく行う方法がわかりません。ボリュームデータを変更するのは簡単ですが、誰かがブロックを挿入または削除するたびに、ボリュームデータからすべての頂点を再計算したくありません。既存の頂点データの最後にある頂点バッファーにブロックを追加するだけで思いついたのですが、ボリュームと頂点バッファーデータを相互に関連付ける方法がないため、ブロックを破棄する良い方法がありません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

Octreeは、変更されたばかりのブロックを再計算するのに役立つ場合があります。

于 2011-04-19T13:35:13.237 に答える
1

「algorithm」タグを追加することをお勧めします。実際のMinecraftの仕組みは、16x16x16のブロックを格納することであり、1つの小さなブロックが更新されるたびに、その大きなブロックの頂点情報が更新されるだけだと思います。

それは私の理解です、私は非常に間違っている可能性があります。これについては、インターネットやMinecraftフォーラムで詳しく知ることができると思います。あちらでたくさんのMinecraftアルゴが話します。

于 2011-04-21T05:47:05.123 に答える