最近ボクセルエンジンの開発を開始しました。私が必要とするのは、テクスチャのないカラフルなボクセルだけですが、非常に大量(ミニクラフトよりもはるかに小さい)です。そして、そのシーンを非常に速く描く方法が問題です。私はc#/ xnaを使用していますが、これは私の意見ではこの場合はあまり重要ではありませんが、一般的なケースについて話しましょう。これら二つのゲームを見てください:ボクセルエンジンと最適化
特に私は、ビデオ番号2は、彼らが達成どのように(私はGFXカードがちょうど×64 192×192で窒息開始)偉大な最適化手法を表して考えますこの?
私がどうなるかをエンジンに持っている:
- 多く、多くのボクセルをテクスチャなし
- カラフルボクセルが、影付き、512×512×128は、ビデオ#2のような何かを達成するために最低限言います
- 影(滑らかな陰影が大きくなりますが、これは必要ではない)
- オプション:(ボクセル構造の近くに点灯フライング火の玉、から例えば)動的照明
- フレームレート最低40 FPS
- カメラ自由の3つ(X軸移動、Z軸に移動、Y軸方向に移動する)、いかなるカメラ回転が
- は最終的に任意の特徴は、深さとすることができる必要はありませんを有します
- はボクセル構造体の内部に存在する目に見えないボクセル(カバー FRを削除:私はすでに知っているどのような最適化フィールド(それは甘い^^なります)
他のボクセルによるOM 6つの方向)
- ボクセルの目に見えない顔を削除する - 私たちは、垂直カットして、画面 を分割する場合は、左のボクセルと右のボクセルが表示されますので、カメラは、何の回転を持っていないし、常にTPPのゲームのように前方斜めに見えるので、わずか3面
- 代わりに3次元配列の辞書内のボクセルを保つ - サイズのアレイ512×512×128を介してジャンプする 許容不可能であるミリ秒を要する - しかし辞書INT:INTがパック 3D位置がはるかに高速で説明した色
- 使用インスタンス化適用可能な場合
- 閉塞?誰かが私に上または記載されている既存の最適化を改善するためにどのようにヒントを与える場合、私は非常に感謝するでしょう(これを行う方法?)
- スペース分割/ octtree(それは良いアイデアです?)
新しい改善のアイデアを共有することができます。ありがとう
両方のビデオにローテーションをサポートしていないエンジンがあることに注意してください。また、2番目のビデオは、ボクセルオブジェクトではなく、フォーカスが外れているオブジェクトのためにおそらくビルボードを使用しています。 – Skizz