テクスチャは、色付きのピクセルが矩形に並んだものである(矩形は必ずしも正方形でなくてもよいが、システムが最も効率的に動作するのは正方形の場合である)。テクスチャはテクスチャマッピングの面として使うこともできるが、この場合は正方形でなくてはならない。
アプリケーションは、D3DRMIMAGE構造体からテクスチャを作成するために、IDirect3DRM3::CreateTextureメソッドを使うことができる。また、IDirect3DRM3::CreateTextureFromSurfaceメソッドによってDirectDrawサーフェスからテクスチャを作成することもできる。さらに、IDirect3DRM3::LoadTextureメソッドを用いると、ファイルからテクスチャをロードすることができる。この場合、テクスチャはMicrosoft® Windows®のビットマップ(.bmp)か、ポータブルピクスマップフォーマット(.ppm)でなくてはならない。テクスチャを作成するときに不必要な遅延を避けるため、再利用するテクスチャは保持するようにし、必要になるたびに作成しなくて済むようにする。最適なパフォーマンスを得るには、使用するデバイスのサポートするテクスチャサーフェスフォーマットを使う。これにより、テクスチャを作成した後でそれが変更されるときに、手間のかかるフォーマット変換を回避することができる。テクスチャが16色以下で構成されている場合、4ビットでパレット化したサーフェスフォーマットを使用して、ハードウェアデバイスのビデオメモリ使用量を減らす。
各面のテクスチャ座標は、その特定の面にマッピングされるテクスチャのリージョンを定義している。アプリケーションは、テクスチャ座標を計算するためにラップを利用することができる。詳細情報は、「ラップ」を参照すること。
IDirect3DRMTexture3インターフェイスは、(IDirect3DRMTextureインターフェイスの拡張である)IDirect3DRMTexture2インターフェイスの拡張である。
テクスチャは、右側を上にしてIDirect3DRMTexture3::InitFromFile,、IDirect3DRMTexture3::InitFromResource2、およびIDirect3DRMTexture2インターフェイスでの同じメソッドで、BMPとDIB(デバイス独立ビットマップ)ファイルからロードされる。これは、反転されたロードされるIDirect3DRMTexture::InitFromFileおよびIDirect3DRMTexture::InitFromResource2とは異なる。
これらのインターフェイスのメソッドについては、「IDirect3DRMTexture3」を参照すること。
この項では、Direct3Dがサポートするテクスチャの種類と使い方を説明する。
テクスチャは、ビジュアルオブジェクトとして直接レンダリングすることができる。このように用いられるテクスチャは、デカールとして知られている。デカールとは保持モードで採用された用語である。デカールは、ビューポートと一致した矩形にレンダリングされる。この矩形は、オプションとして、デカールの立体位置によるスケーリングが可能である。IDirect3DRMTexture3::SetDecalSizeメソッドを使用すると、フレームに対して相対的に定義された矩形からデカールのサイズを設定することができる(アプリケーションは、IDirect3DRMTexture3::GetDecalSizeメソッドによってデカールのサイズを知ることができる)。その後、デカールは変換され、透視投影される。
デカールの原点は、アプリケーションから設定および取得することができる。これにはIDirect3DRMTexture3::SetDecalOriginおよびIDirect3DRMTexture3::GetDecalOriginメソッドを用いる。原点は、デカールの左上隅からのオフセットで表される。デフォルトの原点は[0, 0]である。レンダリングの際には、デカールの原点はフレームの位置に合わせられる。
テクスチャのレンダリングで用いられる色数の取得や設定を行うには、IDirect3DRMTexture3::SetColorsおよびIDirect3DRMTexture3::GetColorsメソッドを利用する。
RGB色モデルを用いるアプリケーションでは、8ビット、24ビット、32ビットのテクスチャを使用することができる。しかし、モノクロ (ランプ) カラーモデルを用いる場合には、8ビットのテクスチャのみ使用できる。
シーンに光を適用するとき、それぞれの色の影が使用される。使われている影の数の設定や取得を行うには、アプリケーションからIDirect3DRMTexture3::SetShadesおよびIDirect3DRMTexture3::GetShadesメソッドを呼び出す。
Direct3DRMTextureオブジェクトは、テクスチャがレンダリングされる元となるビットマップを定義するためにD3DRMIMAGE構造体を使用する。アプリケーションがD3DRMIMAGE構造体を提供すれば、レンダリング中に簡単にテクスチャを動かしたり変更できる。
ミップマップとは連続したテクスチャを示し、各テクスチャは、同じイメージにフィルタをかけて徐々に低解像度にしたものである。ミップマップは、計算上低コストにテクスチャのレンダリング精度を高める手段である。ミップマップ中のフィルタされたイメージやレベルは、前のレベルよりも小さくなっていく。ミップマップは、IDirect3DRMDevice3::SetTextureQualityメソッドを呼び出してテクスチャをフィルタリングするときに指定することができる。
ミップマップの詳細については、「ミップマップ」を参照すること。
テクスチャが面にマッピングされた後は、テクスチャ要素(テクセル)が最終イメージの個々のピクセルと一致することは滅多にない。最終イメージ中のピクセルは、テクセルの大きな集合体か、1つのテクセルの小部分に相当する。ピクセルにテクセルの値を補間する方法を指定するには、テクスチャフィルタリングを利用する。
アプリケーションは、IDirect3DRMDevice3::SetTextureQualityメソッドとD3DRMTEXTUREQUALITY列挙型を使用して、テクスチャフィルタリングモードを指定することができる。
透明なテクスチャを生成するにはIDirect3DRMTexture3::SetDecalTransparencyメソッドを利用する。テクスチャを透明化する他の方法としては、DirectDrawがサポートするカラーキーを使用する方法がある。カラーキーとは、ブロック転送やオーバーレイ操作における、転送元あるいは転送先部分の色または色の範囲である。これらの色は、つねに上書きされるようにも、決して変更されないようにも指定することができる。
DirectDrawのカラーキーサポートの詳細については、「カラーキーイング」を参照すること。
デバイス独立ソースイメージを使用して、レンダリングするデバイス依存テクスチャサーフェスを作成する場合、以下のルールがある(優先順位順)。
1. RGB/パレット化特性を保存する。
2. アルファチャネルを保存する。
3. ビット深度またはパレットサイズを保存する。
4. RBGAマスクを保存する。
5. 8ビットパレット化または16ビットRGBを優先する。
テクスチャピクセルフォーマットの詳細については、「テクスチャマップフォーマット」を参照すること。
関連情報については、「IDirect3DRMTexture3」を参照すること。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.