トップページ > 過去ログ > 記事閲覧
DrawBillboard3Dについて
名前:minato 日時: 2010/02/10 02:18

DrawBillboard3Dでは描画位置、画像の中心座標を指定することができますが、これらの関係はどうなっていますでしょうか? 例えば64*64の大きさの画像があったとして、こちらの中心座標を(32,64)とするために >float cx, cy : 描画する画像の中心座標( 0.0f 〜 1.0f ) を0.5f,1.0fに指定するとします。 ここから、(0,0,0)に描画を行った場合、画像の左上が(0,0,0)に描画されているように見えるのです。 これは僕の勘違いでしょうか?もしそうでなく、このような仕様になっているのなら、中心座標と描画座標が重なるように描画する仕様(この場合は画像の左上が(-16,-32,0)に位置する)に変更していただきたいのですが、可能でしょうか……

Page: 1 |

Re: DrawBillboard3Dについて ( No.1 )
名前:minato 日時:2010/02/10 02:18

すみません、勘違いのようでした。自己解決です。申し訳ないです……
Re: DrawBillboard3Dについて ( No.2 )
名前:minato 日時:2010/02/11 14:25

検証を続けていたところ、どうやら勘違いではない?ようなので報告してみます。 DrawBillboard3D( VGet( 0.0f, 0.0f, 0.0f ), 0.5f, 1.0f, 64.0f, 0.0f, img[0], TRUE ); DrawLine3D( VGet( -300.0f, 0.0f, 0.0f ), VGet( 300.0f, 0.0f, 0.0f ), GetColor( 255, 255, 0 ) ); をしました。img[0]はLoadDivGraphで64*64に分割した画像のハンドルです。 DrawLine3Dで(-300, 0, 0) から (300, 0, 0) にラインを引いているので、X軸がこれにあたることになると思います。 この状態で、ビルボードは線の下に表示されてしまっていました。中心点指定は0.5f、1.0fと指定しているので64*64の画像の(32,64)にあたるはずです。これはバグでしょうか? ちなみに、LoadDivGraphを使わずにLoadGraph→DerivationGraphでも同様の現象でした。
Re: DrawBillboard3Dについて ( No.3 )
名前:管理人 日時:2010/02/15 00:15

すいません、仕様バグです orz cx=0.5f cy=1.0f ↓ cx=0.5f cy=0.0f にすればご希望の描画結果になりませんでしょうか?
Re: DrawBillboard3Dについて ( No.4 )
名前:minato 日時:2010/02/15 01:10

はい、希望の結果となりました。 cx=0.5f cy=0.5f とすれば今度はきちんと中心点が画像の中心になりますし、リファレンスとは異なった形になってしまいますが動作には問題ないのでこれで対応させていただこうと思います。 ありがとうございました!

Page: 1 |