Open GLの射影変換について
coskx
OpenGLの射影変換では,図1の点Pを,z=qx を通りxy平面に並行な平面に透過射影してQを求め,さらに正規平面(-1,-1)-(1,1)の点Qに変換します。
そして,z座標も前後関係を損なわない形で変換し,正規座標系の点Sに変換します。
図1 変換対象の点Pと射影された点Q
図2 正規変換された点S
ここで用いる座標系と,見える範囲を規定するニアクリップ面(射影面),ファークリップ面を図3に島します。
ニアクリップ面とファークリップ面で囲まれた四角錐台が見える範囲となります。
図3 座標系
最初に,図1の点Pを点Qに射影しますが,図4に示すように三角形の相似則により,透視変換の射影が求まります。
図4 三角形の相似則による透視変換
qz = - near として考えると次のようになる。
この変換が終わった後,元のz座標は符号反転してw座標として保持されている。
もともとz座標は負だったので,w座標は正の値を持っている。