概要
- Voxel Spaceエンジン は、1992年に登場した革新的なレンダリング技術
- Comanche などのゲームで、当時としては非常に高精細な地形表現を実現
- 高さマップ と カラーマップ を利用し、シンプルなアルゴリズムで高速描画
- パフォーマンス向上 のための工夫や回転処理も実装可能
- MITライセンス で公開されているが、一部データは除外
Voxel Spaceエンジンの歴史と特徴
- 1992年当時、 CPU性能は現在の1000分の1、GPU加速は一般的でなかった時代背景
- 3Dゲームは全てCPUで計算され、 単色ポリゴン描画 が主流
- 1992年、NovaLogicが Comanche をリリースし、圧倒的なグラフィック表現で話題に
- 山や谷に テクスチャ や シャドウ を初めて表現し、他のゲームより3年先を行く技術
- 全体的に ピクセル化 されているが、当時のゲームの標準的表現
Voxel Spaceのレンダリングアルゴリズム
- Voxel Space は、レイキャスティングに基づく 2.5Dエンジン
- 通常の3Dエンジンのような自由度はないが、高速かつ美しい地形描写が可能
- 地形表現は 高さマップ(height map) と カラーマップ(color map) で実現
- 1024×1024バイトの高さマップとカラーマップを使用
- 各座標ごとに1つの高さのみ表現でき、建物や木などの複雑な形状は不可
- カラーマップには既に 陰影や影 が含まれており、描画時の照明計算が不要
基本的な描画手法
- 描画は 後方から前方へ 順に行い、 ペインターズアルゴリズム を採用
- 視野角や遠近法を考慮し、地図上のラインをスクリーンの列数に合わせてラスタライズ
- 2Dマップから高さと色を取得し、 縦線(vertical line) として描画
- コアアルゴリズムは 数行のコード で実装可能(Python例あり)
視点回転の実装
- 上記アルゴリズムでは北方向のみ描画可能
- sin/cos を使い、座標を回転させることで任意の角度からの視点を実現
- 回転後も同様に高さと色を取得し、縦線で描画
パフォーマンス向上の工夫
- 前方から後方へ 描画することで、不要な描画を省略可能
- 各列ごとに yバッファ を持ち、既に描画した最も高い位置を記録
- 新しい線が見えるのは、直前の線より高い場合のみ
- レベル・オブ・ディテール(LOD) :近景は詳細に、遠景は粗く描画
- コード例では、描画距離が遠くなるほどステップサイズを大きくし、効率化
データとライセンス
- ソフトウェア部分は MITライセンス で公開
- カラーマップ・高さマップは Comanche からリバースエンジニアリングされたもので、ライセンス対象外
- 一部国では Voxel Space技術 に特許が残っている可能性あり
参考リンク・リソース
- Webプロジェクトデモページ
- Voxel terrain engine入門記事
- パーソナルウェブサイト
- カラーマップ・高さマップ各種
- 詳細はリポジトリのライセンスファイルを参照
このように、 Voxel Spaceエンジン はシンプルなアルゴリズムと高度な工夫で、当時の技術水準を大きく超える表現力を実現した歴史的なゲームエンジンです。