typedef struct _tagKMIMAGECONTROL { KMBLENDINGMODE nSRCBlendingMode; KMBLENDINGMODE nDSTBlendingMode; KMBOOLEAN bSRCSelect; KMBOOLEAN bDSTSelect; KMFOGMODE nFogMode; KMBOOLEAN bColorClamp; KMBOOLEAN bUseAlpha; KMBOOLEAN bIgnoreTextureAlpha; KMFLIPMODE nFlipUV; KMCLAMPMODE nClampUV; KMFILTERMODE nFilterMode; KMBOOLEAN bSuperSampleMode; KMDWORD dwMipmapAdjust; KMTEXTURESHADINGMODE nTextureShadingMode; KMDWORD dwPaletteBank; PKMSURFACEDESC pTextureSurfaceDesc; }KMIMAGECONTROL,*PKMIMAGECONTROL;
NSRCBlendingMode ソースのブレンディングモード NDSTBlendingMode ディスティネーションのブレンディングモード BSRCSelect セカンダリーアキュムレーションバッファ選択フラグ bDSTSelect セカンダリーアキュムレーションバッファ選択フラグ nFogMode フォグモード bColorClamp カラークランプモードのフラグ bUseAlpha アルファのフラグ bIgnoreTextureAlpha テクスチャアルファのフラグ NFlipUV テクスチャフリップモード nClampUV テクスチャクランプモード nFilterMode フィルターモード bSuperSampleMode スーパーサンプルモードのフラグ dwMipmapAdjust ミップマップ補正値 NtextureShadingMode テクスチャシェーディングモード dwPaletteBank パレットバンク番号 pTextureSurfaceDesc テクスチャサーフェスデスクプリタ
メンバ nSRCBlendingModeは、ソース側(ポリゴン)のブレンディングモードを格納します。メンバ nDSTBlendingModeは、ディスティネーション側(ピクセルバッファ)のブレンディングモードを格納します。ピクセルのブレンディング処理はSRCおよびDSTのRGBA値が混合されDSTに書き戻されます。
DST = SRC x SRC ブレンディング係数 + DST x DST ブレンディング係数
定義 意味(RGBAブレンディング係数) KM_BOTHINVSRCALPHA NSRCBlendingMode をKM_INVSRCALPHA 、 NDSTBlendingMode をKM_SRCALPHAにします KM_BOTHSRCALPHA NSRCBlendingMode をKM_SRCALPHA 、 NDSTBlendingMode をKM_INVSRCALPHAにします KM_DESTALPHA (Ad, Ad, Ad, Ad) KM_DESTCOLOR ブレンディング結果を(Rd, Gd, Bd, Ad)にします。 NSRCBlendingModeでのみ有効。 KM_INVDESTALPHA (1-Ad, 1-Ad, 1-Ad, 1-Ad) KM_INVDESTCOLOR ブレンディング結果を(1-Rd, 1-Gd, 1-Bd, 1-Ad)にします。 NSRCBlendingModeでのみ有効。 KM_INVSRCALPHA (1-As, 1-As, 1-As, 1-As) KM_INVSRCCOLOR ブレンディング結果を(1-Rs, 1-Gs, 1-Bs, 1-As)にします。 nDSTBlendingModeでのみ有効。 KM_SRCALPHA (As, As, As, As) KM_SRCCOLOR ブレンディング結果を(Rs, Gs, Bs, As)にします。 nDSTBlendingModeでのみ有効。 KM_ONE (1, 1, 1, 1) KM_ZERO (0, 0, 0, 0)
メンバ bSRCSelectおよび bDSTSelectは、 Tri-LinearポリゴンおよびBump Mappied +Texturedポリゴンを半透明ポリゴンにする場合にのみ使用します。 通常はFALSEを指定してください。
メンバ nFogModeには、フォグモードを格納します。
定義 意味 KM_FOGTABLE フォグテーブルを使用します。 KM_FOGVERTEX Offset Colorのアルファ値をフォグ値とします。Offset Colorの無い頂点データでは意味を持ちません。 KM_NOFOG フォグを使用しません。 KM_FOGTABLE_2 ポリゴンのRGBA値をそれぞれフォグのRGBA値に置き換えます。
メンバ bColorClampは、カラークランプを行う場合にTRUEを指定します。
メンバ bUseAlphaは、アルファ係数を有効にする場合にTRUEを指定します。
メンバ bIgnoreTextureAlphaは、アルファ付きテクスチャのアルファ係数を無効にしたい場合にTRUEを指定します。
メンバ nFlipUVには、 テクスチャーのフリップモードを格納します。
定義 意味 KM_NOFLIP フリップしない KM_FLIP_V Vフリップを行う KM_FLIP_U Uフリップを行う KM_FLIP_UV UV共にのフリップを行う
メンバ nClampUVには、 テクスチャークランプモードを格納します。
定義 意味 KM_NOCLAMP クランプしない KM_CLAMP_V Vクランプを行う KM_CLAMP_U Uクランプを行う KM_CLAMP_UV UV共にクランプを行う
nFilterModeには、 テクスチャーのフィルターモードを格納します。
定義 意味 KM_POINT_SAMPLE テクスチャーのフィルタリングを行わない KM_BILINEAR バイリニアフィルタリングを行う KM_TRILINEAR_A トライリニアフィルタリング使用時に「PASS A」ポリゴンであることを指定する KM_TRILINEAR_B トライリニアフィルタリング使用時に「PASS B」ポリゴンであることを指定する
メンバ bSuperSampleModeは、テクスチャーのスーパーサンプル(Anisotropic Filter)を有効にする場合にTRUEを指定します。 メンバ dwMipmapAdjustには、 テクスチャーのMIPMAPレベル係数に乗算される値を4ビット固定少数点値(整数2ビット、少数2ビット)で格納する。通常は1。0(0100)を指定します。0(0000)は指定してはいけません。 メンバ nTextureShadingModeには、 テクスチャーシェーディングモードを格納します。
定義 意味 KM_DECAL PIXRGB = TEXRGB + OFFSETRGB PIXA = TEXA KM_MODULATE テクスチャカラー値にShadingカラー値を乗算する。テクスチャα値はShadingα値に置き換える。PIXRGB = COLRGB * TEXRGB + OFFSETRGBPIXA = TEXA KM_DECAL_ALPHA テクスチャカラー値を、テクスチャα値にしたがってShadingカラー値とブレンドする。PIXRGB = (TEXRGB * TEXA) + (COLRGB *(1- TEXA) ) + OFFSETRGBPIXA = COLA KM_MODULATE_ALPHA テクスチャカラー値にShadingカラー値を乗算する。テクスチャα値にはShadingα値を掛ける。PIXRGB= COLRGB * TEXRGB + OFFSETRGBPIXA = COLA * TEXA
メンバ dwPaletteBankには、 パレットテクスチャのパレットエントリーバンク番号を格納します。
メンバ pTextureSurfaceDescには、テクスチャサーフェスディスクプリタへのポインタを格納します。