[過去ログ]
ゲームプログラミング相談室【Part5】 (970レス)
ゲームプログラミング相談室【Part5】 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
12: 名前は開発中のものです。 [] 02/11/08 13:56 ID:mLnGgDjl わたしも 3D座標をスクリーン座標に変換する方法が知りたいです。 座標xyzをwで割るらしいのですが、xyzwの求め方がわかりません。 xyzはただの3D座標なのでしょうか? それとも何かの行列を 掛けたりしているのでしょうか? wはどこからでてくるのでしょうか? すみませんが 教えていただけませんか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/12
15: 名前は開発中のものです。 [sage] 02/11/08 21:41 ID:??? >>12 オブジェクトのローカル座標に、ローカル・ワールド変換行列、ワールド・ビュー 変換行列、ビュー・スクリーン変換行列(a.k.a 射影行列) と順にかけて、出てき た座標を w で割れば良い。 行列だけど、DirectX 使ってるなら SetTransform() に D3DTS_WORLD D3DTS_VIEW D3DTS_PROJECTION という第一引数を指定して渡してるヤツ。 >>13 まぁ、サンプルコードを深く理解せずに copy & paste してるんでしょう。趣味 でプログラミングしてるなら、そういう態度もアリだとは思うよ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/15
20: 12 [] 02/11/09 01:55 ID:s6gdDMqC >>15 ビュー行列 と 射影行列を掛けたものと、 3D座標を 掛けたの ですが、でた xyzwで x/w y/w z/w をやってみたのですよ。 しかし、 値が1.0を超えているにもかかわらずスクリーンの端 にまで、 ラインが(この時二つの座標を線で結んでいました。) 届いてませんでした。 なので、 やり方が違うのかなとおもいまして・・・・ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/20
22: 12 [] 02/11/09 02:14 ID:s6gdDMqC >>21 すばやいレスありがとうございます。 2点をラインで描画しました。 ビュー行列 matView 射影行列 matProj 調べたい座標 Vec 計算後の値 v4 mat = matView * matProj D3DXVec3Transform(&v4,Vec,mat); Vecとmatを計算して求められた 値をwで割る v4.x/v4.w v4.y/v4.w v4.z/v4.w ここで スクリーン座標が求められるはずです。 スクリーン座標の値は xyに関しては -1〜1 zは 0〜1に なるはず だけれど、 その値を超えたにもかかわらず そのラインは 画面の端まで届きませんでした。 mat = matProj* matView でやってみても 値は変わりますが、 ラインが端まで届きません。 なので、計算の仕方が間違ってるのか、それか根本が間違っている かどちらかだとおもうのです。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/22
24: 12 [] 02/11/09 03:44 ID:s6gdDMqC >>23 すみません。 たしかに、 640,480のウインドウを値(1.0,1.0)に する必要がありますが、 このビューポートを実際どのように 使えばいいのか。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/24
25: 12 [] 02/11/09 05:27 ID:s6gdDMqC >>23 もとめられた値に windowのサイズの半分を掛けて あげればよいのでしょうか? 640,480のウインドウなら320,240をそれぞれ掛けてあげる x = x*320; y = y*240; それですと 一応それらしき値はでます。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/25
30: 12 [] 02/11/09 17:41 ID:s6gdDMqC >>26 >>ちゅーしんをあーわーせーろー。 中心ですか どうやってあわせるのだろう・・・・・ 視点と注視点から 角度を求めて それを 頂点に掛けて あげるのでしょうか・・・ うーんでも、ビュー行列を掛けたときにすでに入っているような気も しないでもないですね。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/30
35: 12 [] 02/11/10 03:52 ID:CLex+uUH >>33 私も とりあえず、足せば良いのかなと思いやってみたのですが うまくいきませんでした。 >あーとーはーじぶーんでなーんとかしれー いろいろご指導ありがとうございました。 いろいろ試して見たいと思います。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/35
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.035s