
3Dゲームではキャラクターも建物も
原則として立体的な3Dモデルとして作られている。

たとえばこういう3Dモデルの場合、

小さな板をつなぎ合わせて各部が表現されており、

その最小単位は「ポリゴン」と呼ばれる三角形だ。
ポリゴンがたくさんあるほど
綺麗な曲面や複雑な形が表現できるが、
枚数が増えるにしたがって処理が重くなる。
そこで、いかにゲームを遊んでいる人にバレないよう
描画するポリゴン数を減らすかが勝負になる。
これには先人たちが編み出したいろいろな工夫が詰まっているので
代表的でわかりやすいものを紹介してみよう。

立体物を眺めるとき、背後にある面は見えない。
手前に見えている面だけを見て
「きっと向こう側にも同じような面があるんだろう」と思うわけだ。

通常、立体物はポリゴンで覆われた「閉じた状態」にあるので
どの方向から眺めても外側の面が見える。

手前のポリゴンを取り除けば内側の面が見えるが、
これらのポリゴンは普段は隠れているわけだ。
そこで3D空間を眺めるカメラに対して
内側(正確には裏側)を見せているポリゴンは
描画しないようにする。これを「隠面消去」などと呼ぶ。

どうせカメラからは特定の方向しか見えないわけだから
隠面消去すれば描画が必要なポリゴン数は半分ほどになる。
シンプルな割に効果的な手法だ。
遠くて見えないモデルはサボる

ポリゴンを豊富に使ったモデルは「ハイポリ」と呼ばれ、
見た目は滑らかで美しいが、描画したときの負荷が高い。

対して少ないポリゴン数で作った「ローポリ」は
描画するための処理は軽いが、見た目が貧相になる。

しかしカメラに対して遠くに表示されていれば
ローポリとハイポリの違いはほとんどわからない。
そこで遠くにあるときはローポリを描画し、
ある程度カメラが近づいたらハイポリに差し替えるのだ。
これを「Level of Detail」、略して「LOD」と呼ぶ。
とりあえず最初に高精細のハイポリを作っておき、
ツールの機能などを利用してローポリに変換すれば
それほど大きな手間をかけずに両方がそろう。
これも非常によく使われる定番の手法だ。
視界の外で見えないモデルはサボる
3D空間の中には敵や建物、植物やアイテムなど
世界を形成するたくさんのものが存在しているが、
カメラの視界に入っていなければ画面に映ることはない。

遠い景色ほど広く見渡せるわけだから
カメラが見ている範囲は奥の面が大きい台形のような形になる。
直方体を変形させたようなこの立体は
四角錐台(しかくすいだい)というものだが、
視界を表す四角錐台は特に「視錐台(しすいだい)」と呼ぶ。
この視錐台に接していないモデルは画面に映らないわけだから
描画しなくてもなんの影響もない。

たとえば水平方向の視野角が90度だとすると、
カメラを取り巻く360度の世界のうち
わずか4分の1しか見えていないわけで、
大半の描画を省略するチャンスがある。
この方法は「視錐台カリング」と呼ばれ、
視界の外にあるものを描画しないことで
大幅な処理軽減をすることができる。
まとめ

最近の3Dゲームでは他にもいろいろな工夫がされているが、
とにかく「バレないように処理をサボる」ところがポイントで、
現実世界と同様に描かれているように見えて
実はさまざまなところで手抜きをしているのだ。
そういった視点でゲームを遊んでみるのもまた面白い。