ボクセルスペースの解体:1990年代初期の地形を定義した2.5Dエンジン
1992年、コンピューティング環境は根本的に異なっていました。CPUは今日のプロセッサに比べて桁違いに遅く、GPUアクセラレーションの概念はほとんど存在せず、一般消費者にとっては手が届かないほど高価でした。当時のほとんどの3DゲームはCPUに平坦で単色のポリゴンを描画させており、鋭く角ばった環境が特徴でした。
このような中、NovaLogicはComancheをリリースしました。このゲームは時代を先取りしたもので、息を呑むほど詳細な山や谷、そして革命的と感じられる奥行きを提供しました。この視覚的忠実度の秘密は真の3Dポリゴンではなく、Voxel Spaceと呼ばれる手法でした。現代のボリュームピクセルと混同されがちですが、Voxel Spaceエンジンは本質的に高さマップとレイキャスティングの原理を組み合わせた2.5Dシステムで、3D世界をシミュレートしています。
基礎:高さマップとカラーマップ
その核心において、Voxel Spaceエンジンはリアルタイムで3Dジオメトリを計算する複雑さを回避します。その代わりに、地形を2つの主要な2D配列で表現します:
- Height Map(高さマップ): グリッド(例:1024x1024)で、各バイトがその座標の地形の標高を表します。
- Color Map(カラーマップ): 同サイズの対応するグリッドで、各地点の地形の色を格納します。
このアプローチは重要な制約を課します:各位置に対して高さは1つしか持てません。つまり、複数階建ての建物や洞窟、張り出した崖などの複雑構造は表現できません。しかし、この制限により驚異的な最適化が可能になります。カラーマップにシェーディングや影を「ベイク」できるのです。エンジンは動的に照明を計算するのではなく、マップから色を直接取得するだけなので、描画プロセスは軽量でありながら視覚的に豊かに見えます。
描画アルゴリズム
Voxel Spaceエンジンはこれらのマップをラスタライズし、画面に垂直線を描くことで動作します。基本的なプロセスは以下の手順です:
- Painter's Algorithm(ペインターのアルゴリズム): 遮蔽処理(遠くのオブジェクトが近くのものと重ならないように)を行うため、エンジンはシーンの背面から前面へと描画します。
- Perspective Projection(透視投影): エンジンは観測者からの特定の光学距離に対応するマップ上の線を決定し、視野角(FOV)を考慮して遠くのオブジェクトが小さく見えるようにします。
- Rasterization(ラスタライズ): その線を画面の列幅に合わせて分割します。
- Vertical Line Drawing(垂直線描画): 各セグメントについて、エンジンはマップから高さと色を取得し、高さ座標に透視投影を適用して垂直線を描画します。
回転の実装
プレイヤーが北以外の方向を見ることができるように、エンジンは三角関数による回転を組み込みます。視野角の正弦と余弦を計算することで($φ$)、エンジンは高さマップとカラーマップからサンプリングされる線の座標を回転させ、風景を360度全方向で閲覧できるようにします。
パフォーマンス最適化
1990年代初期のハードウェア制約を考慮すると、単純な実装だけでは不十分でした。プレイ可能なフレームレートを維持するために、いくつかの重要な最適化が行われました:
前方から後方へのレンダリングとYバッファ
Painter's Algorithm(背面から前面への描画)は直感的ですが、同じピクセルが何度も塗られる「オーバードロー」が大きくなります。より効率的な方法は前方から後方へのレンダリングです。遠くの地形が近くの地形を上書きしないように、Y-bufferが使用されます。このバッファは各列についてすでに描画された最高のY位置(地形の「上部」)を保持します。新しい線はY-bufferの現在の値より高い場合にのみ描画され、不要な描画を実質的に排除します。
詳細度レベル(LOD)
さらにサイクルを節約するために、エンジンはLevel of Detail(LOD)を実装できます。カメラからの距離が増すにつれてステップサイズ($dz$)を大きくすることで、遠景の詳細は減らしつつ、前景の高精度を維持します。
技術的視点と遺産
Voxel Space手法は開発者や愛好家の間で大きな議論を呼びました。この手法と真のボクセルとの違いはよく技術的に明確化されます。コミュニティメンバー @nine_k の指摘は次のとおりです:
"技術的にはこれはボクセル(いわゆる『ボリュームピクセル』)とは関係ありません。ボクセルは3次元空間を3軸すべてで均等に分割しますが、これは単なる高さマップであり、プリズムの集合です…すべてのプリズムは一定サイズの正方形の底面を持ちます。"
この手法には制限があるものの、影響はComancheを超えて広がりました。Magic Carpet(1994)などのタイトルでも類似のロジックが見られ、4kイントロシーンのMARS.EXEにも影響を与えました。この技術は、限られたハードウェアから「性能の最後の一滴まで絞り出す」黄金時代を象徴し、ルックアップテーブルやビットシフトを活用して80286のようなCPUの遅い浮動小数点演算を回避しました。
現在、1秒間に何百万もの真のポリゴンを描画できる力がある一方で、Voxel Spaceエンジンはアルゴリズム効率と視覚的近似の芸術における教科書的存在です。