ゲームプログラマになる前に覚えておきたい技術
という本で質問です
p402の「画角の導入」
というところで
透視変換とズーム(拡大縮小?)の式
qx = (px * s) / -pz
qx 変換後のx座標
px 変換前のx座標
pz 変換前のz座標
s ズーム係数(x座標を何倍するか?)
が
あり
sを視野から求めたい
(
例えば、視野が90度だとs = 1
視野が45度だとs = 0.4142...
)
のです
この本でこのsを視野から求める為の式
s = 1 / tan(0.5*θ)
を
求めているのですが
この本での
求め方がよくわかりません
本では以下の様にかかれてありました
透視変換のxの式を思い出してみると
qx = (px * s) / -pz
となる
このsをθ(視野の角度)から求める方法を考えるわけだ
まず、sイコールの形に直してみよう
s = (-pz * qx) / px
そして、
ここではプラスを使おう
s = -px / px
つまり、sというのはz/xのことである
だから、xを底辺、zを高さとする直角三角形があれば
タンジェントからsが求まるはずだ視界ギリギリのことを考える
視界ギリギリにおいてqxは1か-1になる
透視変換後の座標の範囲は-1から1だからだ
(中略)
px / -pz = tan(0.5*θ)
これは逆数を取れば、まさにsイコールの式の右辺に一致し、
-pz / px = 1 / tan(0.5*θ) = s
となる
これでめでたく角度からズーム係数sが求まった
なぜqxに1(か-1)を代入しているのかが
(意味が)わかりません
(
qxに1を代入して得られるのは
任意の頂点?px
を1にするようなsが求められるだけではないのですか
)
回答お願いします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/05 10:56
2016/09/05 11:11
2016/09/05 11:53
2016/09/05 12:14
2016/09/05 12:55
2016/09/05 13:48
2016/09/05 13:57
2016/09/06 00:24
2016/09/06 01:43
2016/09/06 01:58
2016/09/06 02:29
2016/09/06 03:55
2016/09/06 04:55 編集
2016/09/06 11:07 編集
2016/09/06 13:56 編集
2016/09/07 00:21
2016/09/07 00:54