23
次世代3Dレンダリング技術:ボクセルレイキャスティング

ちょっとした歴史

カーマック氏のボクセルに関する実験は昨年よりもさらに遡ります。実のところ、彼の関心は10年ほど前に遡ります。Quake/Quake IIエンジンとQuake IIIの間に、カーマック氏は新しいレンダリング技術を用いた実験をいくつも行いました。彼はこれらの研究すべてに「Trinity」というコードネームを付けました。多くのゲーマーは、これがid Softwareの将来の製品であり、新世代の3Dエンジンであると理解していました。しかし実際には、Quake IIIエンジンはごく従来型のものでした。これはカーマック氏自身が1998年の.planファイルで明らかにしています。

Quake3/Trinityエンジンの準備として研究した技術について、いくつかメモしておきます。当初は数ヶ月にわたってかなり広範囲にわたる研究を行いましたが、初期の研究はどれも最終的に私が決めた方向性とは全く関係がなかったことが判明しました。まあ、多くのことを学びましたし、きっと後々役に立つでしょう。

彼の実験の中には、ボクセル八分木の表示も含まれていました。Quake III のリリース直後、彼は次のように語っていました。

「Quake IIIの初期段階で、この2つのボクセルエンジンを開発しました。ソフトウェアでほぼ動作させられるのではないかと考えましたが、解像度がかなり低く、ハードウェアポリゴンで同じ速度で処理できるものと比べると、その場合、採算が取れませんでした」とカーマック氏は語る。「メモリアクセスパターンなど、様々な分析を行いました。現在、三角形ラスタライザに使用しているハードウェアよりもはるかに少ないハードウェアで、ボクセルレイトレーサーをハードウェアで実行できます。多くの場合、はるかに魅力的なビジュアル表現を実現できると考えています。」

この引用は、2000年初頭、つまり約10年前のFiringSquadでのインタビューから引用されたものです。つまり、ジョン・カーマックの頭の中では、このアイデアがかなり長い間温められてきたことは明らかです。

ボクセルについて語るなら、『Outcast』は外せません。10年以上前の1999年7月に初登場したこのゲームは、数々のクオリティに加え、3Dグラフィックカードがゲーマー向けPCの主流になり始めた当時としては異例の3Dエンジンを搭載していたことから、一世代のゲーマーに大きな影響を与えました。

Outcastは完全ソフトウェアレンダリングエンジンを採用していたため、特に電力消費量が多かった。最大解像度(驚異の512x384)でゲームをプレイするには、最先端のプロセッサは必要だったが、3Dグラフィックカードは不要だった。このエンジンが成功を収めた理由は、そのリソース消費量の大きさだけではない。ボクセル技術の採用も、このゲームのレンダリングを真にユニークなものにしていた。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

しかし、それを客観的に捉える必要がある。本作は(Novalogicのゲームと並んで)ボクセルベースレンダリングの旗手であり続けているものの、実際には風景にも用いられた、かなり簡略化された形式に過ぎなかった。すべてのオブジェクトとキャラクターは、ごく標準的なポリゴンモデルだった。風景は高さマップに基づいており、つまり環境内の各ポイントの高さは1つしか存在せず、アーチのような複雑な構造は不可能だったのだ。

この制限は致命的な問題ではありませんでした。なぜなら、物理法則の制約により、このような構造は自然界では非常に稀だからです。とはいえ、風景の表示は非常にシンプルで、列ごとに実現できました。各列には、Y値の最大値が(Yバッファに)保存されます。そして、該当する列のピクセルは、Y値がYバッファに保存されている値よりも大きい場合にのみ、画面下部から順に塗りつぶされました。このレンダリング方法により、シーンの見えない部分を削除するプロセスが非常に効率的かつ容易になりました。

少し過去を振り返った後は、ボクセルが将来私たちにとって何を意味するのかを考えてみましょう。