消失点とn点透視

draft CG画像処理

透視投影 で写した像では、実際には平行に伸びている直線が、1点へ向かって集まっていきます。
像にこの点がいくつ現れるかは、物体をどちらから写すかで変わります。
ここでは、この点の求め方と、点の数による透視図の分け方を見ていきます。

消失点
CG画像処理

まっすぐな廊下を正面から写した写真では、天井と壁の境目、床と壁の境目が、奥へ行くほど互いに近づいていきます。
これらの境目は実際には平行に伸びていて、空間の中で交わることはありません。それでも像の上で近づいていくのは、横へ同じだけずれた点であっても、奥にあるものほど像が中心の近くにできるためです。

平行な直線を奥へたどっていくと、その像の位置は、ある1点へ収束します。この点を消失点といい、消点とも呼ばれます。

奥行き方向へ伸びる平行な2直線を透視投影する様子の図。投影中心・投影面・2直線を横から見た配置で、直線上の点をいくつか取ってそれぞれの投射線と像を描き、奥の点ほど像が1点へ近づいていくことと、投影中心を通って2直線と同じ向きに引いた直線が投影面と交わる位置が消失点になることを示す

投影中心を通り、2直線と同じ向きに引いた直線が投影面と交わる位置が、そのまま消失点になっていることがわかります。
この作図には、2直線が空間のどこを通っているかが出てきません。消失点の位置を決めているのは直線の向きだけで、向きさえ同じであれば、何本の直線であっても像は同じ1点へ集まります。

消失点が現れるのは、投射線が1点に集まる透視投影に限られます。投射線が互いに平行な平行投影 では、平行な直線の像も平行なままです。

消失点の位置
CG画像処理

消失点が向きだけで決まることは、投影の式からも確かめられます。

投影中心を原点に置き、奥行きの向きをz軸にとります。投影面は、投影中心から焦点距離 fだけ離れた位置に、z軸と垂直に置きます。
像の位置は、z軸が投影面と交わる画像中心を原点にとった画像座標(u, v)で表すことにします。

空間の点(x, y, z)とその像は、投影中心から見て同じ向きにあります。奥行きがzからfへ縮む割合f / zが、そのまま横方向と縦方向の位置にもかかります。

直線は、その上を通る1(x, y, z)と、伸びる向き(a, b, c)で表せます。直線上の点は、tを実数として(x + ta, y + tb, z + tc)と書けるので、その像の位置は次のようになります。

分母と分子をtで割ると、通過点の座標はx / ty / tz / tという形で現れます。直線を奥へたどるほどtは大きくなり、これらは0に近づいていくので、残るのは向きの成分だけです。

ここで注目したいのは、この式に通過点(x, y, z)が残っていないという点です。直線が空間のどこを通っていても、向き(a, b, c)が同じであれば、像は同じ消失点へ収束します。

向きが投影面に平行な場合、つまり奥行きの成分c0の場合は、この式で消失点を求められません。tを大きくすると分母が0に近づき、像は投影面の上をどこまでも遠ざかっていきます。投影面に平行な直線は、消失点をもたないのです。

消失点は、平行な直線どうしがたどり着く無限遠点 が、投影面に写った像だと捉えることもできます。
無限遠点が位置ではなく向きで決まる点であることが、消失点が向きだけで決まることに対応しています。

n点透視
CG

直方体を透視投影で写す場面を考えてみます。直方体の稜線は互いに直交する3つの向きに分かれるので、現れる消失点は多くても3つです。

投影面に平行な向きの稜線には、消失点がありません。そのため、投影面に平行になる向きが2つあるか、1つだけか、1つもないかによって、像に現れる消失点の数は1個から3個の間で変わります。

この数によって、透視図は1点透視・2点透視・3点透視に分けられ、まとめてn点透視と呼ばれます。
CGでは消失点の数を直接指定することはなく、カメラをどこへ向けるかがそのままnを決めます。

同じ直方体を3通りの向きで透視投影した像を並べる図。それぞれについて、消失点へ収束していく稜線と、投影面に平行なまま残る稜線を描き分け、1点透視・2点透視・3点透視の違いを示す

1点透視

稜線の3方向のうち2方向が投影面に平行になる向き。正面を向いた面は形をそのまま保ち、奥行き方向の稜線だけが1つの消失点へ収束する。

2点透視

投影面に平行なのは1方向だけ。多くは鉛直方向を平行に保ち、水平な2方向の稜線がそれぞれの消失点へ収束する。建物を斜め前から見た構図。

3点透視

どの向きも投影面に平行でない置き方。見上げや見下ろしの構図がこれにあたり、鉛直の稜線も収束して消失点が3つ現れる。