Direct3DRMのテクスチャ

う~む
Direct3DRMには
Direct3DRMTexture3という、
テクスチャーを保持しておける物が
あるんですが、
どうもこれ、セットするときに
普通にLoadFromFileではなく
Direct3DRM.CreateTextureFromSurfaceを
使おうとすると
Direct3DのHAL系デバイスでは
正常に表示されないらしい。
とはいっても、
開発時にはHALでの確認がほとんどなので
最初は気づかなかった。
普通に未実装なのかと。
ところが
Direct3DのRGB系、REF系というか
HEL系のデバイスで試しに実行すると
なんとちゃんとテクスチャが
張られている。どうなってるんだ;

追記:後にGenerateMIPMapを
実行する記述を追加したら、
HAL系でも正常に表示されました。
ますますよくわかりません(^^;

私としては
LoadFromFileはあまり使いたくない。
CreateTextureFromSurfaceならば、
外部ファイルからいちいち読まなくても
良いから、わずかにロードが早く、
また、外部ファイルをとりそろえる手間が
省ける。

実はサーフェイスは、
BitBltのAPIを使うことで、
PictureBoxなどから画像を張ることができる。
これによって、たぶん、
プログラム側で使う画像を
リソースエディタ系のソフトで
抜き出せないようにできる、はず。

You may also like...

2 Responses

  1. Nick より:

    😀
    Thanks for your help
    i use the tutorial “Creating and using alpha channel” in
    lucky’s vb gaming site to build an alpha surface(reWrite from DirectDrawSurface7 to DirectDrawSurface4)

    every single pixel got an alpha(0~255)
    and you give me the hint “GenerateMIPMap”

    I can run over 200 fps in the scene with alpha texture

    thank you !!!

  2. Mulgray より:

    I’m very glad that I could help you!

    When I found the MIPMap, it was unexpected for me that MIPMap solved a problem, likewise.

    Thank you for reading this article.
    Have fun with 3D in VB!

コメントを残す

メールアドレスが公開されることはありません。