Voxel Space
ウェブデモ: Voxel Spaceエンジン
歴史
- 1992年当時、CPUは現在よりも1000倍遅く、GPUアクセラレーションはあまり知られていないか高価だった。
- 3DゲームはCPUでのみ計算され、レンダリングエンジンは単色のポリゴンをレンダリングしていた。
- 1991年にMicroProseのゲーム『Gunship 2000』と、1992年にNovaLogicのゲーム『Comanche』が発売された。
- Comancheは当時としては驚くほどのグラフィックを提供し、テクスチャ、シェーディング、影を表示した。
レンダリングアルゴリズム
- ComancheはVoxel Spaceという技術を使用しており、これはレイキャスティングと似た考え方に基づいている。
- Voxel Spaceエンジンは2.5Dエンジンで、一般的な3Dエンジンが提供するすべての自由度を提供していない。
高さマップとカラー マップ
- 地形を表現する最も簡単な方法は、高さマップとカラーマップを使用することだ。
- Comancheゲームでは、1024 * 1024サイズの1バイト高さマップとカラーマップを使用していた。
- このようなマップは周期的で、複雑な構造物は表現できないが、カラー マップにはすでにシェーディングと影が含まれており、レンダリング処理でライティングを計算する必要がない。
基本アルゴリズム
- 3Dエンジンのレンダリングアルゴリズムは非常にシンプルである。
- Voxel Spaceエンジンは高さマップとカラーマップをラスタライズして垂直線を描画する。
- 画面をクリアし、後方から前方へのレンダリングで隠れを保証する。
- 視点からの光学的距離に相当するマップのラインを決定する。
- そのラインをラスタライズして画面の列数に合わせる。
- 2Dマップでラインセグメントに対応する高さと色を取得する。
- 高さ座標に対して透視投影を実行する。
- 透視投影から得られた高さとその色で垂直線を描画する。
回転を追加
- 上記アルゴリズムでは北向きしか見えない。
- 別の角度を見るには、座標を回転させる数行のコードが必要になる。
パフォーマンス向上
- パフォーマンスを上げるためのいくつかのトリックがある。
- 背面から前面へ描画する代わりに、前面から背面へ描画できる。
- 隠れた面を保証するために追加のy-バッファが必要となる。
- 詳細レベルを調整して、近い場所では多めのディテール、遠くでは少なめのディテールをレンダリングする。
リンク
- ウェブプロジェクトのデモページ
- Voxel地形エンジンの紹介
- 個人ウェブサイト
マップ
ライセンス
- ソフトウェア部分はMITライセンスの下にある。
- Voxel Space技術は、一部の国では依然特許が存在する可能性がある。
- カラー マップと高さマップはゲームComancheからリバースエンジニアリングされたもので、ライセンスの対象外。
1件のコメント
Hacker Newsのコメント