« 専門演習「CGアニメーション」2023年度前期作品の紹介 | トップページ | 視点のすぐ近くは見えない »

3次元から2次元への計算

2023年11月20日 (月) 投稿者: メディア技術コース

 2年次後期の講義科目「CG数理の基礎」はCG技術の基本的な概念や手法を理解することを目的にしています。画素を塗りつぶす過程、頂点を変換する過程、など地味な内容です。数少ない3次元CGの話題として、先日の授業では投影変換を取り上げました。
 
 CGの場面を構成する部品(キャラクタ)は多くの場合、多数の三角形(3頂点)の組合せです。制作者の想像上の3次元空間に存在する各頂点が、最終表示に使う現実の2次元平面画面のどの場所に対応するかをコンピュータが計算します。
 
 部品(model)各頂点の(x_m, y_m, z_m)の数値は「ビューイングパイプライン」と呼ばれる4種類の行列の乗算を経て画面(screen)上の点(x_s, y_s)に変換されます。この過程で3次元から2次元に変わる本質的な変換が投影変換です。投影変換としてCGでよく使われる透視投影は次の図のように「カメラ座標系」から「正規化デバイス座標系」に変換します。
 
Projectionxform

 カメラ座標系ではビューボリューム(視界)という六面体をデザイナーが設定します。視界は最終的な表示画面の範囲に対応させる3次元の範囲です。原点から放射状に拡がるこの形状はフラスタム(四錐台)と呼ばれます。視界のことをビューフラスタムと呼ぶこともあります。
 
 カメラ座標系の原点はカメラ位置(視点)で-z方向が視線です。視点から離れると視界が段々拡がるのは直感的にも理解しやすいでしょう。そして変換後の正規化デバイス座標系では視界が立方体に変形します。カメラ座標系の各三角形(図には描いていない)は正規化デバイス座標系の三角形に変換されます。
 
 図aの視点に近い小さな長方形(前方クリッピング面)が図cで同じ向きの一辺が2の正方形に変形します。前方クリッピング面のちょうど反対側の大きな長方形(後方クリッピング面)も図c右奥の一辺2の正方形に縮小されます。これに伴い、視点に近い三角形は拡大され視点から遠い三角形は縮小されます。人間がものを見るときの結果と同じです。
 
 この投影変換により画面で表示される形に近いものになります。その証拠に、投影変換の次の段階「ビューポート変換」にはxy座標だけが送られz座標は無視されます。つまり大まかには投影変換により3次元形状が2次元形状になると思って構わないのです。
 
 この授業で履修生から次のような質問がありました。
 
---
後方クリッピング面があるのは無限に続くのを防ぐ目的であると理解できるのですが、前方クリッピング面はなぜあるのでしょうか? カメラの座標を原点とした四角錐型では不都合があるのでしょうか?
---
 
上下左右の範囲を視界として区切るのは直感的です。後方を区切るのはまだしも、手前まで区切るのは確かに人間の視界とは違いますね。この回答は次回紹介します。
 
メディア学部 柿本正憲


在学生向け」カテゴリの記事

授業紹介」カテゴリの記事

高校生向け」カテゴリの記事

おもしろメディア学」カテゴリの記事

« 専門演習「CGアニメーション」2023年度前期作品の紹介 | トップページ | 視点のすぐ近くは見えない »