※ ChatGPTを利用し、要約された質問です(原文:ID3DXSprite::Drawメソッドに関して質問です。)
ID3DXSprite::Drawメソッドの座標指定に関する問題
このQ&Aのポイント
ID3DXSprite::Drawメソッドの座標指定について質問があります。スプライトの中心を指定する座標を画像の中心にセットする方法について調査しています。
スプライトのサイズとウィンドウのクライアントサイズが完全に一致している場合、スプライトを右下にずらすことで問題なく描画できると思っていましたが、実際には地味に左上に描画されます。
インターネットで調べるとテクスチャの描画には0.5ピクセルのずれを意識する必要があるという記述があります。この場合でも座標の求め方に問題があるのかどうか知りたいです。
ID3DXSprite::Drawメソッドに関して質問です。
ID3DXSprite::Drawメソッドに関して質問です。
ID3DXSprite::Drawメソッドの第3引数でスプライトの
中心を識別する座標を指定できますが、
この座標を画像の様に中心にセットします(単に2で除算するだけですが)。
スプライト上では中心を(0,0)と扱うので、仮にこのスプライトを
左上にあわせて描画するとします。
なお、スプライトのサイズと、ウィンドウのクライアントサイズは
完全に一致しているとします。
単純に中心までの幅はX、中心までの高さはXとなりますので、
スプライトをX、Y分だけ右下にずらせば
問題なく描画されるかと思っていたのですが、
何故か画像内の結果上の様に地味に左上に描画されてしまいます。
そこで画像内の結果下の様にそれぞれにさらに0.5pixlずらして描画しますと
これは想像どおりの位置で描画されます。
インターネットで調べるとテクスチャの描画の際には0.5pixl云々という記述が
あるのですが、この場合でも0.5pixlのずれを意識する必要があるのでしょうか?
それとも私自身、根本的に座標の求め方に問題があるのでしょうか?
どうか、ご指摘お願いします。
お礼
"テクセルのアライメント"でググってみると、MDSNにその旨が記載されていました。 …イジメですかね、マイクロソフト。Win32APIといい、ややこしいことが多すぎますね。 まさか、根本的に概念が異なるとは…。 自分的には、ピクセルは基本、Win32APIで整数値のみ指定できたので、UINTあたりでキャストしているものとばっかり思っていました。 実際に、10/1pixlが使用できるんですね。 とてもためになりました。ありがとうございます。