« テクスチャの分割・結合 | メイン | 圧縮テクスチャ »

2007年03月29日

吉里吉里 DirectX拡張:: 文字列の表示

    

ID3DXFont でとりあえず表示して見た。
text20070322.png

文字列描画で検索したらこんなページが見つかった。
でも、何か書いていることが少しおかしい気がする。

それはともかく、ID3DXFont の話。
DirectXで文字を表示する場合、ID3DXFont を使うのがお手軽。
ID3DXFont では、最終的に ID3DXSprite を使って描画している。
ID3DXFont::GetGlyphData を使えば、内部的に作られているテクスチャを得ることが出来る。
ID3DXFont::PreloadText で"0123456789ABCDEFGHIJKLMN"を渡して得たテクスチャを描画して見たら次のようになった。
tex20070323.png
また、適当な文字列を渡すと、同じ文字は複数表れないようになっていた。
テクスチャのサイズは徐々に大きくなっていくようだ。
PIX を使って、ID3DXSprite がどのように描画しているか見てみると、1文字ずつ描画するのではなく、同じテクスチャの場合はトライアングルリストを使って、一気に描いているようだ。
以上のことから、ID3DXFont はそれなりに効率的に文字を描画してくれそうだ。
ただ、テクスチャのフォーマットはA8R8G8B8となっていた。
文字はそんなに階調なくてもかまわないから、圧縮テクスチャのDXTのどれかを使ってくれたほうが、容量的にも効率的にも良い気がするのだが……
まあ、初めは ID3DXFont を使っておいて、後で自分で作るのが楽かな。



投稿者 Takenori : 2007年03月29日 22:12




comments powered by Disqus
Total : Today : Yesterday : なかのひと