トップページ > 過去ログ > 記事閲覧
ConvWorldPosToScreenPos
名前:Masao 日時: 2009/12/19 08:03

ConvWorldPosToScreenPos 関数で、戻り値のベクトルのz値が対象のワールド座標が画面外に外れてもマイナスになりません。 おそらく私のコーディングミスではないとおもうので、調べていただけると幸いです。 ver 3.00f VC++ 2008 Express の環境です。

Page: 1 |

Re: ConvWorldPosToScreenPos ( No.1 )
名前:管理人 日時:2009/12/22 00:24

ConvWorldPosToScreenPos は関数に渡すワールド座標がカメラの「後方」にある場合 戻り値のZがマイナスになります 変換後のスクリーン座標が画面外に出ていても、関数に渡すワールド座標がカメラの 前方にある場合は戻り値のZはマイナスにはなりません リファレンスの「有効」という言葉の使い方が問題ですね・・・ 何をもって「有効」としているのかという ちょっと修正しておきます
Re: ConvWorldPosToScreenPos ( No.2 )
名前:Masao 日時:2009/12/22 13:12

なるほど、都合よく画面外に出たら というわけにはいかないわけですね。 よく3Dゲームにありそうな、照準を簡単に作れそうかなーと思ったのですが、画面内か画面外かの判定は、カメラの視野角を求めて数学的に計算するしかありませんか?
Re: ConvWorldPosToScreenPos ( No.3 )
名前:sy(サイ) 日時:2009/12/22 18:07

ふつう、3Dゲームの照準はレイを飛ばして当たってるか否かで判定します。 FPSの場合、自分のカメラ座標からカメラの注視点に向かって伸びるレイを作り、そのレイが敵に当たっているかどうかで判定します。 この場合敵の当たり判定は球状にしておくのが一番やりやすいです。
Re: ConvWorldPosToScreenPos ( No.4 )
名前:管理人 日時:2009/12/27 12:43

3D座標が画面外かどうかの判定はMasaoさんの仰るとおり視野角等から数学的に計算するしかありませんが、 syさんも仰っていますが照準の処理を作る上では画面外かどうかの判定をする必要はありません

Page: 1 |