現在3D空間内で対象物を画面の中心付近に捉えるプログラムをC++,DXライブラリを用いて制作しております。
対象物に対してロックオンの様なカーソル画像を描画したいと思い、対象物のワールド座標をConvWorldPosToScreenPosによって
スクリーン座標へ変換し描画しているのですが、思っている場所に描画されません。
現在であればスクリーン座標は画面中央の座標(320,240)が検出されて欲しいと考えております。
しかし実際に検出された座標は(484,315)でした。
恐らく対象物を画面中央に捉えるため、カメラの水平角度をいじっている事が原因かと検討つけて検証していましたが、解決しなかったため
質問致しました。
ワールド座標
自分の座標(631, 0, 851)
対象物座標(800, 18, 800)
カメラで補正を掛けている水平角度の値( 0.3f )
また現在試しにマウスの座標をスクリーンからワールド座標へ変換して表示しておりますが
画面中央が(320, 240, 0.9)
画面の左端X座標が( 287 )
右端 ( 351 )
上Y座標 ( 264 )
下端 ( 215 )
となりおかしな値が挿入されております。
ConvWorldPosToScreenPosを使用するにあたってリファレンスを見ても必要な下準備は無さそうに見受けられたため
何処の部分が原因か中々判断がつきません。
何卒宜しくお願い致します。
ConvWorldPosToScreenPosの挙動について
Re: ConvWorldPosToScreenPosの挙動について
視覚的な情報がないと状態が分かりづらいですね。
スクリーンショットなどはありませんか?
スクリーンショットなどはありませんか?
どの点がおかしいのか説明もお願いします。cc さんが書きました: また現在試しにマウスの座標をスクリーンからワールド座標へ変換して表示しておりますが
画面中央が(320, 240, 0.9)
画面の左端X座標が( 287 )
右端 ( 351 )
上Y座標 ( 264 )
下端 ( 215 )
となりおかしな値が挿入されております。
Re: ConvWorldPosToScreenPosの挙動について
こちらになります
http://iup.2ch-library.com/i/i1347400-1418999225.png
printfDxの出力内で
eは対象物
pは自分
wはワールド座標を示しています
緑のターゲットカーソルを画面奥にいる白い対象物へ合わせたいというのが目標です
おかしい点の説明が抜けておりました。申し訳御座いません。
対象物へカーソルを合わせたいため、マウスのワールド座標は対象物のワールド座標へと変換されて欲しいというのが希望でした。
(あるいは対象物のワールド座標が画面中心座標へでも構わないですが
http://iup.2ch-library.com/i/i1347400-1418999225.png
printfDxの出力内で
eは対象物
pは自分
wはワールド座標を示しています
緑のターゲットカーソルを画面奥にいる白い対象物へ合わせたいというのが目標です
おかしい点の説明が抜けておりました。申し訳御座いません。
対象物へカーソルを合わせたいため、マウスのワールド座標は対象物のワールド座標へと変換されて欲しいというのが希望でした。
(あるいは対象物のワールド座標が画面中心座標へでも構わないですが