[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 03/03 11:09 / Filesize : 154 KB / Number-of Response : 657
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

3Dグラフィックスプログラミング



547 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 00:55:44 ]
行列による座標変換についての質問なのですが、
matを[行, 列]の4x4行列、vをXYZWの4次元の座標とするとき、
vをローカル座標からスクリーン座標へ変換する場合、

X = mat[0, 0] * v.X + mat[1, 0] * v.Y + mat[2, 0] * v.Z + mat[3, 0] * v.W
Y = mat[0, 1] * v.X + mat[1, 1] * v.Y + mat[2, 1] * v.Z + mat[3, 1] * v.W
Z = mat[0, 2] * v.X + mat[1, 2] * v.Y + mat[2, 2] * v.Z + mat[3, 2] * v.W
W = mat[0, 3] * v.X + mat[1, 3] * v.Y + mat[2, 3] * v.Z + mat[3, 3] * v.W
と一次変換した後、
・XYZをWで割る (この時点でZは0〜1になる)
・XYにスクリーンの高さと幅を掛ける

で合ってますでしょうか?
matはモデルビュー行列とプロジェクション行列を掛けた物なのですが、
行列を転置してOpenGLに突っ込んだときはちゃんと描画されるのに、上記の方法で
vを変換したときに、なぜかカメラの後ろにあるはずのポリゴンのZ座標が0未満にならず、
描画結果がおかしくなってしまいます orz






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<154KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef