Kamui2 Library - 構造体/その他のデータ型

KMVERTEXCONTEXT

頂点コンテキスト構造体

定義

typedef struct tagKMVERTEXCONTEXT 
{ 
     KMDWORD  RenderState;  /* Render Context */ 
     /* 
      *for Global Parameter 
      */ 
     KMPARAMTYPE  ParamType;  /* Parameter Type */ 
     KMLISTTYPE  ListType;  /* List Type */ 
     KMCOLORTYPE  ColorType;  /* Color Type */ 
     KMUVFORMAT  UVFormat;  /* UV Format */ 
     /* 
      * for ISP/TSP Instruction Word 
      */ 
     KMDEPTHMODE  DepthMode;  /* DepthMode */ 
     KMCULLINGMODE  CullingMode;  /* Culling Mode */ 
     KMDWORD  reserved00;  /* ScreenCoordination was deleted. */ 
     KMSHADINGMODE  ShadingMode;  /* Shading Mode */ 
     KMMODIFIER  SelectModifier;  /* Modifier Volume Valiant */ 
     KMBOOLEAN  bZWriteDisable;  /* Z Write Disable */ 
     /* 
      * for TSP Control Word 
      */ 
     KMBLENDINGMODE  SRCBlendingMode; /* Source Blending Mode */ 
     KMBLENDINGMODE  DSTBlendingMode; /* Desitination Blending Mode */ 
     KMBOOLEAN  bSRCSel;  /* Source Select */ 
     KMBOOLEAN  bDSTSel;  /* Distination Select */ 
     KMFOGMODE  FogMode;  /* Fogging */ 
     KMBOOLEAN  bUseSpecular;  /* Specular Highlight */ 
     KMBOOLEAN  bUseAlpha;  /* Alpha */ 
     KMBOOLEAN  bIgnoreTextureAlpha; /* Ignore Texture Alpha */ 
     KMCLAMPMODE  ClampUV;  /* Clamp */ 
     KMFLIPMODE  FlipUV;   /* Flip */ 
     KMFILTERMODE  FilterMode;  /* Texture Filter */ 
     KMBOOLEAN  bSuperSample;  /* Anisotoropic Filter */ 
     KMDWORD  MipMapAdjust;  /* Mipmap D Adjust */ 
     KMTEXTURESHADINGMODE TextureShadingMode; /* Texture Shading Mode */ 
     KMBOOLEAN  bColorClamp;  /* ColorClamp Mode */ 
     KMDWORD  PaletteBank;  /* Bank of Palette */ 
     /* 
      * for Texture Control Bit/Address 
      */ 
     PKMSURFACEDESC  pTextureSurfaceDesc; /* Texture Handle */ 
     /* 
      * for Intensity FaceColor 
      */ 
     KMFLOAT  fFaceColorAlpha; /* Face Color Alpha */ 
     KMFLOAT  fFaceColorRed;  /* Face Color Red */ 
     KMFLOAT  fFaceColorGreen; /* Face Color Green */ 
     KMFLOAT  fFaceColorBlue;  /* Face Color Blue */ 
     /* 
      * for Intensity Specular Highlight 
      */ 
     KMFLOAT  fOffsetColorAlpha; /* Specular Color Alpha  */ 
     KMFLOAT  fOffsetColorRed; /* Specular Color Red */ 
     KMFLOAT  fOffsetColorGreen; /* Specular Color Green */ 
     KMFLOAT  fOffsetColorBlue; /* Specular Color Blue */ 
     /* 
      * Internal use values. 
      */ 
     KMDWORD  GLOBALPARAMBUFFER; /* Grobal Parameter Buffer */ 
     KMDWORD  ISPPARAMBUFFER;  /* ISP Parameter Buffer */ 
     KMDWORD  TSPPARAMBUFFER;  /* TSP Parameter Buffer */ 
     KMDWORD  TexturePARAMBUFFER; /* Texture Parameter Buffer */ 
     /* 
      * for ModifierInstruction 
      */ 
     KMDWORD  ModifierInstruction; /* ModifierInstruction */ 
     KMFLOAT  reserved01;  /* Bounding Box was deleted. */ 
     KMFLOAT  reserved02;  /* Bounding Box was deleted. */ 
     KMFLOAT  reserved03;  /* Bounding Box was deleted. */ 
     KMFLOAT  reserved04;  /* Bounding Box was deleted. */ 

     KMBOOLEAN  bDCalcExact;  /* D Calc Exact */ 
     KMDWORD  reserved05;  /* ScreenCoordination was deleted. */ 
     KMUSERCLIPMODE  UserClipMode;  /* UserClip Mode */ 

} KMVERTEXCONTEXT, *PKMVERTEXCONTEXT, **PPKMVERTEXCONTEXT; 

メンバ

RenderState   レンダーコンテキスト
ParamType   パラメータタイプ:for Global Parameter
ListType   リストタイプ:for Global Parameter
ColorType   カラータイプ:for Global Parameter
UVFormat   UVフォーマット :for Global Parameter
DepthMode   ディプスモード:for ISP/TSP Instruction Word
CullingMode   カリングモード:for ISP/TSP Instruction Word
reserved00   未使用
ShadingMode   シェーディングモード: Mode:for ISP/TSP Instruction Word
SelectModifier   Modifier Volume Valiant:for ISP/TSP Instruction Word
bZWriteDisable   Z Write Disable:for ISP/TSP Instruction Word
SRCBlendingMode   ソースブレンディングモード:for TSP Control Word
DSTBlendingMode   ディスティネーションブレンディングモード:for TSP Control Word
bSRCSel   ソース選択:for TSP Control Word
bDSTSel   ディスティネーション選択:for TSP Control Word
FogMode   フォグモード :for TSP Control Word
bUseSpecular   スペキュラー・フラグSpecular Highlight :for TSP Control Word
bUseAlpha   アルファ・フラグ :for TSP Control Word
bIgnoreTextureAlpha   テクスチャアルファ無視フラグ:for TSP Control Word
ClampUV   クランプフラグ :for TSP Control Word
FlipUV   フリップフラグ :for TSP Control Word
FilterMode   テクスチャフィルタTexture Filter :for TSP Control Word
bSuperSample   Anisotoropic Filter :for TSP Control Word
MipMapAdjust   Mipmap D Adjust :for TSP Control Word
TextureShadingMode   テクスチャシェーディングモード:for TSP Control Word
bColorClamp   カラークランプモード:for TSP Control Word
PaletteBank   パレットのバンク:for TSP Control Word
pTextureSurfaceDesc   テクスチャハンドル: for Texture Control Bit/Address
fFaceColorAlpha   インテンシティ・フェイスカラー(アルファ)
fFaceColorRed   インテンシティ・フェイスカラー(赤)
fFaceColorGreen   インテンシティ・フェイスカラー(緑)
fFaceColorBlue   インテンシティ・フェイスカラー(青)
fOffsetColorAlpha   インテンシティ・スペキュラー・ハイライトカラー(アルファ)
fOffsetColorRed   インテンシティ・スペキュラー・ハイライトカラー(赤)
fOffsetColorGreen   インテンシティ・スペキュラー・ハイライトカラー(緑)
fOffsetColorBlue   インテンシティ・スペキュラー・ハイライトカラー(青)
GLOBALPARAMBUFFER   グローバルパラメータバッファ(システム使用)
ISPPARAMBUFFER   ISPパラメータバッファ(システム使用)
TSPPARAMBUFFER   TSPパラメータバッファ(システム使用)
TexturePARAMBUFFER   テクスチャパラメータバッファ(システム使用)
ModifierInstruction   モディファイアインストラクション
reserved01   未使用
reserved02   未使用
reserved03   未使用
reserved04   未使用
bDCalcExact   D Calc Exact
reserved05   未使用
UserClipMode   ユーザークリップモード

解説

KMVERTEXCONTEXTは、従来のKamui1ライブラリの互換性用に提供されているものです。 Kamui2では新たにKMSTRIPCONTEXTが定義されており、こちらの方が効率的で高速です。 Kamui2では、KMSTRIPCONTEXTの使用を推奨します。

Kamui1では、頂点(ストリップ)ごとに設定可能なレンダリングパラメータを、KMVERTEXCONTEXT構造体に集めてあります。アプリケーションでこの構造体を複数持ち、切り替えて使うことが可能です。 最初にアプリケーションでKMVERTEXCONTEXT構造体を確保し、各メンバの値を設定します。 次にkmProcessVertexRenderStateで、 KMVERTEXCONTEXTを完成させます。 最後にkmSetVertexRenderStateによって、システムにこの構造体を登録します。 完成している構造体の切り替えは、 kmSetVertexRenderStateのみの実行で可能です。 すでに完成しているKMVERTEXCONTEXT構造体のメンバの一部を変更する場合は、再度kmProcessVertexRenderStateとkmSetVertexRenderStateを実行する必要があります。

また、モデファイアボリュームの影響を受ける(2パラメータ)ポリゴンでは、モデファイアボリューム内と、 モデファイアボリューム外で2つのKMVERTEXCONTEXT構造体を必要とします。 アプリケーションで2つのKMVERTEXCONTEXT構造体をアロケートし、それぞれにモデファイアボリューム内と、 モデファイアボリューム外のパラメータを設定します。モデファイアボリューム外のパラメータは、 kmProcessVertexRenderStateとkmSetVertexRenderStateでシステムに登録します。 モデファイアボリューム内のパラメータは、 kmProcessVertexRenderStateとkmSetModifierRenderState でシステムに登録します。

kmProcessVertexRenderState においてVERTEXCONTEXTを最初に使用する時には、 すべてのメンバを指定する必要があります。RenderStateにすべてのフラグを設定し、 すべてのパラメータを定義してください。未定義のビットがあった場合の動作は保証されません。

この構造体は、頂点(ストリップ)ごとに設定可能なパラメータを集めた構造体で、以下のメンバを持ちます。

メンバの一部または全部の内容を変更する場合は、 kmProcessVertexRenderState実行前に、下記のステータスフラグにより、構造体のRenderStateに書き換えたいメンバの種類をセットします。 同時に、それに応じた構造体メンバに値を設定します。

RenderStateに設定できるステータスフラグは以下のとおりです。

 定義   値   意味 
 KM_PARAMTYPE   0x00100000   パラメータのタイプ 
 KM_LISTTYPE   0x00200000   リストのタイプ 
 KM_STRIPLENGTH   0x08000000   ストリップ分割長 
 KM_USERCLIPMODE   0x10000000   ユーザークリップモード 
 KM_COLORTYPE   0x00400000   カラーフォーマット指定 
 KM_UVFORMAT   0x00800000   UVフォーマット指定 
 KM_DEPTHMODE   0x00000001   Z値比較モードの設定 
 KM_CULLINGMODE   0x00000002   カリングモードの設定 
 KM_SCREENCOORDINATION   0x00000004   座標系の設定 
 KM_SHADINGMODE   0x00000008   Texture Gouraud Texture Flat, Non-Texture Gouraud 
 KM_MODIFIER   0x00000010   Modifier Volume Valiant No or A 
 KM_ZWRITEDISABLE   0x00000020   Z Write Disable or not 
 KM_SRCBLENDINGMODE   0x00000040   Blending Mode 
 KM_DSTBLENDINGMODE   0x00000080   Blending Mode 
 KM_SRCSELECT   0x01000000   SRC Blending select 
 KM_DSTSELECT   0x02000000   DST Blending select 
 KM_FOGMODE   0x00000100   Fog Non or Vertex or Table 
 KM_USESPECULAR   0x00000200   Specular Highlighted or not 
 KM_USEALPHA   0x00000400   Alpha Blended or not 
 KM_IGNORETEXTUREALPHA   0x00000800   Ignore Texture Alpha 
 KM_FLIPUV   0x00002000   Texture Flipping 
 KM_CLAMPUV   0x00001000   Texture Clamping 
 KM_FILTERMODE   0x00004000   Point-sample or Bilinear or Trilinear 
 KM_SUPERSAMPLE   0x00008000   Anisotoropic Filter 
 KM_MIPMAPDADJUST   0x00010000   MipMap D Adjust 
 KM_TEXTURESHADINGMODE   0x00020000   Modulate, Decal Alpha, Modulate Alpha 
 KM_COLORCLAMP   0x00040000   Color Clamping 
 KM_PALETTEBANK   0x00080000   Palette Bank 
 KM_DCALCEXACT   0x04000000   DCALC Exact 

それぞれのメンバについて以下の値を設定できます。

メンバParamTypeは、頂点データのタイプを指定します。 以下のいずれかを選択できます。

 定義   値   意味 
 KM_POLYGON   0   通常の三角ポリゴン 
 KM_MODIFIERVOLUME   1   MODIFIER VOLUME(SHADOW/LIGHT) 
 KM_SPRITE   2   スプライト(四角ポリゴン) 

メンバ ListTypeは、頂点データを格納するリストのタイプを指定します。 以下のいずれかを選択できます。

 定義   値   意味 
 KM_OPAQUE_POLYGON   0   不透明ポリゴン 
 KM_OPAQUE_MODIFIER   1   不透明モデファイアボリューム 
 KM_TRANS_POLYGON   2   半透明/透明ポリゴン 
 KM_TRANS_MODIFIER   3   半透明/透明モデファイアボリューム 
 KM_PUNCHTHROUGH_POLYGON   4   パンチスルーポリゴン 

メンバ UserClipModeは、 KmSetUserClippingで指定したクリッピング領域に対する効果を指定します。 以下のいずれかが指定できます。

 定義   値   意味 
 KM_USERCLIP_DISABLE   0   ユーザークリップを無効にします。 
 KM_USERCLIP_RESERVE   1    これは指定しないでください。 
 KM_USERCLIP_INSIDE   2    指定したクリッピング領域の内側のみ有効となります。 
 KM_USERCLIP_OUTSIDE   3   指定したクリッピング領域の外側のみ有効となります。 

メンバ ColorTypeは、 頂点のカラーフォーマットを指定します。 以下のパラメータより選択できます。 KMCOLORTYPE

 定義   値   意味 
 KM_PACKEDCOLOR   0   32bit ARGB packed color format 
 KM_FLOATINGCOLOR   1   32bit x 4 floating color format 
 KM_INTENSITY   2   Intensity format 
 KM_INTENSITY_PREV_FACE_COL   3   Intensity format 

KM_INTENSITY_PREV_FACE_COLは、 Face Colorは直前に登録されたものをそのまま使用します。このタイプのポリゴンを使用する場合は、同じシーンのなかで、この前にKM_INTENSITYタイプのポリゴンを最低1度は使用する必要があります。

スプライトポリゴンの場合は、ColorTypeはKM_PACKEDCOLORを指定してください。

UVFormat 頂点データに含まれているU,V座標パラメータの、フォーマットを指定します。32bit UVでは、U,V座標をIEEE754の32bit Floatフォーマットで表現します。16bit UVでは、32bit UVのMantissa部分の下16bitを削除して精度を低下させた値で表現します。 以下のいずれかが選択できます。

KMUVFORMAT

 定義   値   意味 
 KM_32BITUV   0   32bit KMFLOAT format 
 KM_16BITUV   1   16bit KMFLOAT format 

スプライトポリゴンの場合は、UVFormatはKM_16BITUVを指定してください。

DepthMode Z値比較のモードを指定します。 以下のいずれかが選択できます。

KMDEPTHMODE

 定義   値   意味 
 KM_IGNORE   0   描画しない  
 KM_LESS   1    比較結果が小さいとき描画する 
 KM_EQUAL   2   比較結果が等しいとき描画する 
 KM_LESSEQUAL   3   比較結果が等しいか小さいとき描画する 
 KM_GREATER   4   比較結果が大きいとき描画する 
 KM_NOTEQUAL   5   比較結果が等しくないとき描画する 
 KM_GREATEREQUAL   6   比較結果が等しいか大きいとき描画する 
 KM_ALWAYS   7   比較をしないで描画する 

CullingMode CULL無し、時計周りCulling、反時計周りCulling、小ポリゴンCullingの4つのパラメータを選択できます。以下のいずれかが選択できます。

KMCULLINGMODE

 定義   値   意味 
 KM_NOCULLING   0   CULL無し 
 KM_CULLSMALL   1   小ポリゴンCulling 
 KM_CULLCCW   2   反時計周りCulling 
 KM_CULLCW   3   時計周りCulling 

KM_CULLSMALLを設定する場合には、グローバル設定のkmSetCullingRegisterを行う必要があります。また、KM_CULLCCW,KM_CULLCWを指定した場合には、同時に小ポリゴンCullingも行われます。

ScreenCoordination 画面座標系(1/w)または投影座標系(w)を選択します。

KMSCREENCOORDINATION

 定義   値   意味 
 KM_SCREEN   0   画面座標系(1/w) 
 KM_PROJECTIVE   1   投影座標系(w) 

(このメンバはARC1でのみ有効です。Holly(CLX1/2)では無視されます。Holly(CLX1/2)では常に画面座標系(KM_SCREEN)で座標を与えなければなりません。)

bDCalcExact

KMDCALCEXACT

TRUEを設定するとCLX1/2より追加された正確なDパラメータ計算を行います。 ARC1ではMipMapの選択が画面右上と画面左下で違うという現象が有りましたが、これを解消します。 但し、計算に時間がかかるため動作速度が低下する場合が有ります。 FALSEのときにはARC1と同じDパラメータ計算を行います。 なお、ARC1では、本フラグは意味を持ちません。

ShadingMode シェーディングモードを選択します。テクスチャ有り/無し、Flat/Gouraudで4つの組み合わせが有ります。

KMSHADINGMODE

 定義   値   意味 
 KM_NOTEXTUREFLAT    0   テクスチャ無しフラットシェーディング 
 KM_NOTEXTUREGOURAUD   1   テクスチャ無しグーローシェーディング 
 KM_TEXTUREFLAT   2   テクスチャありフラットシェーディング 
 KM_TEXTUREGOURAUD   3   テクスチャありグーローシェーディング 

KM_TEXTUREFLATを指定した場合、頂点ストリップの、第1、第2頂点目のカラーデータは無効となります。

スプライトポリゴンの場合は、ShadingModeはKM_NOTEXTUREFLATまたはKM_TEXTUREFLATを指定してください。

SelectModifier モディファイアボリュームの影響をうける(2パラメータポリゴン、またはチープシャドウの影響を受けさせたいポリゴン)か否かを指定します。

モディファイアボリュームの影響ありに設定した場合は必ず2パラメータポリゴン用の頂点データ構造体を使用するようにしてください。ただし、チープシャドウモードの(kmSetCheapShadowModeを実行した) 場合は、1パラメータポリゴン用の頂点データ構造体を使用してください。

KMMODIFIER
 定義   値   意味 
 KM_NOMODIFIER   0   使用しない 
 KM_MODIFIER_A   1   モデファイアボリュームAの影響をうける 

ARC1及びHOLLYはモディファイアボリュームAのみに対応します。

bZWriteDisable TRUEを指定した場合、Z値の更新を禁止します。

SRCBlendingMode, DSTBlendingMode Blendingモードを指定します。D3D仕様のBlendingモードに対応します。 以下のいずれかの値を取ることができます。

KMBLENDINGMODE

 定義   意味 
 KM_BOTHINVSRCALPHA   ソースのブレンディングパラメータを(1-αs, 1-αs, 1-αs, 1-αs)、デスティネーションのブレンディングパラメータを(αs,αs,αs,αs)とします。SRCBlendingModeに設定したときにはDSTBlendingModeが、DSTBlendingModeに設定したときにはSRCBlendingModeがそれぞれオーバーライドされます。 
 KM_BOTHSRCALPHA   ソースのブレンディングパラメータを(αs,αs,αs,αs)、デスティネーションのブレンディングパラメータを(1-αs, 1-αs, 1-αs, 1-αs)とします。SRCBlendingModeに設定したときにはDSTBlendingModeが、DSTBlendingModeに設定したときにはSRCBlendingModeがそれぞれオーバーライドされます。 
 KM_DESTALPHA   ブレンディングパラメータを(αd,αd,αd,αd)とします。 
 KM_DESTCOLOR   ブレンディングパラメータを(αd, Rd, Gd, Bd)とします。 
 KM_INVDESTALPHA   ブレンディングパラメータを(1-αd, 1-αd, 1-αd, 1-αd)とします。 
 KM_INVDESTCOLOR   ブレンディングパラメータを(1-αd, 1-Rd, 1-Gd, 1-Bd)とします。 
 KM_INVSRCALPHA   ブレンディングパラメータを(1-αs, 1-αs, 1-αs, 1-αs)とします。 
 KM_INVSRCCOLOR   ブレンディングパラメータを(1-αs, 1-Rs, 1-Gs, 1-Bs)とします。 
 KM_SRCALPHA   ブレンディングパラメータを(αs,αs,αs,αs)とします。 
 KM_SRCCOLOR   ブレンディングパラメータを(αs, Rs, Gs, Bs)とします。 
 KM_ONE   ブレンディングパラメータを(1, 1, 1, 1)とします。 
 KM_ZERO   ブレンディングパラメータを(0, 0, 0, 0)とします。 

注)(αs, Rs, Gs, Bs)はソースカラー、(αd, Rd, Gd, Bd),はデスティネーションカラーを示します。 バックグラウンドプレーンのためのVERTEXCONTEXTでは、DSTBlendingModeにはゼロを設定してください。(kmSetBackGroundRenderStateを参照願います)

 定義   意味 
 bSRCSel   ソースカラーとして、セカンドアキュームレーションバッファの内容を使用します。 
 bDSTSel   デスティネーションカラーとして、セカンドアキュームレーションバッファの内容を使用します。 
 FogMode   フォグモードの設定を行います。 

デプス値に応じてテーブル参照によりフォグを行うFogTableモードと、各頂点のOffsetColorのαチャネル部にフォグパラメータを設定するFogVartexモードの2つが使用できます。 以下の値を取ることができます。

KMFOGMODE

 KM_FOGTABLE   デプス値に対応するテーブルデータから線形補完してFogのα値を生成します。 
 KM_FOGTABLE_2   ポリゴンの色をFogの色に、ポリゴンのα値をFogのα値に置き換えます。 
 KM_FOGVERTEX   OffsetColorのα値を、Fogのα値として使用します。 
 KM_NOFOG   Fogの処理を行いません。 

bUseSpecular Specular Highlight(オフセットカラー)を使用するかどうか指定します。TRUEを指定した場合オフセットカラーを使用します。オフセットカラーを使用する場合には、オフセットカラーデータを含む頂点データ構造体を使用してください。

BUMPマッピングを使用する場合は、bUseSpecularをTRUEにしてください。

bUseAlpha TRUEを指定した場合シェーディングカラー中のαビットを有効とします。

bIgnoreTextureAlpha TRUEを指定した場合テクスチャデータ中のαビットを無視します。ハードウェアはテクスチャに含まれる透明度情報を無視します。 FlipUV テクスチャを繰り返しマッピングするとき、パターンをFlip(反転)するか否かを指定します。下記の中のいずれかを指定することができます。なお、FlipUVとClampUVを同時に指定すると、Kamui1はFlipUVの指定を無視します。

KMFLIPMODE

 定義   意味 
 KM_NOFLIP   Flipしません 
 KM_FLIP_V   V座標方向にFlipします 
 KM_FLIP_U   U座標方向にFlipします 
 KM_FLIP_UV   U,V座標方向にFlipします 

ClampUV テクスチャのクランプを指定します。 下記の中のいずれかを指定することができます。FlipUVとClampUVを同時に指定すると、Kamui1はFlipUVの指定を無視します。

KMCLAMPMODE

 定義   意味 
 KM_NOCLAMP   Clampしません 
 KM_CLAMP_V   V座標方向をClampします 
 KM_CLAMP_U   U座標方向をClampします 
 KM_CLAMP_UV   U,V座標方向をClampします 

FilterMode テクスチャフィルタのモードを設定します。Point-sample、Bilinear、Trilinearの3つのフィルタモードを選択できます。 下記の中のいずれかを指定することができます。

KMFILTERMODE

 定義   意味 
 KM_POINT_SAMPLE   ポイントサンプリング 
 KM_BILINEAR   バイリニアフィルタ 
 KM_TRILINEAR_A   トライリニアの1パス目 
 KM_TRILINEAR_B   トライリニアの2パス目 

bSuperSample TRUEを指定すると、4倍スーパーサンプリングフィルタ(Anisotoropic Filter)を使用します。これを行うことでテクスチャマッピングの品質が向上します。

MipMapAdjust MIPMAPレベル選択のためのDパラメータ計算に係数を乗じます。 これによってエリアシングの調整をすることができます。 この値は下位4bitが有効で、整数部2bit、小数点部2bitの固定小数点データとなっています。 下記の中のいずれかを指定することができます。

 定義   値(16進数)   Dパラメータ 
 KM_MIPMAP_D_ADJUST_0_25   0x00000001   D=0.25 
 KM_MIPMAP_D_ADJUST_0_50   0x00000002   D=0.50 
 KM_MIPMAP_D_ADJUST_0_75   0x00000003   D=0.75 
 KM_MIPMAP_D_ADJUST_1_00   0x00000004   D=1.00 
 KM_MIPMAP_D_ADJUST_1_25   0x00000005   D=1.25 
 KM_MIPMAP_D_ADJUST_1_50   0x00000006   D=1.50 
 KM_MIPMAP_D_ADJUST_1_75   0x00000007   D=1.75 
 KM_MIPMAP_D_ADJUST_2_00   0x00000008   D=2.00 
 KM_MIPMAP_D_ADJUST_2_25   0x00000009   D=2.25 
 KM_MIPMAP_D_ADJUST_2_50   0x0000000A   D=2.50 
 KM_MIPMAP_D_ADJUST_2_75   0x0000000B   D=2.75 
 KM_MIPMAP_D_ADJUST_3_00   0x0000000C   D=3.00 
 KM_MIPMAP_D_ADJUST_3_25   0x0000000D   D=3.25 
 KM_MIPMAP_D_ADJUST_3_50   0x0000000E   D=3.50 
 KM_MIPMAP_D_ADJUST_3_75   0x0000000F   D=3.75 

通常はKM_MIPMAP_D_ADJUST_1_00 (1.0)を設定してください。 TextureShadingMode D3D仕様のテクスチャブレンディングモードを指定します。 下記の中のいずれかを指定することができます。

KMTEXTURESHADINGMODE

 定義   値 
 KM_DECAL   0 
 KM_MODULATE   1 
 KM_DECAL_ALPHA   2 
 KM_MODULATE_ALPHA   3 

KM_DECAL テクスチャカラーにオフセット値を加算します。 α値はテクスチャのα値をそのまま使用します。


Pixel Color = TextureRGB + OffsetRGB
Pixel α = Texture α

KM_MODULATE テクスチャカラーにシェーディング結果のカラーを掛けます。テクスチャのα値はシェーディングカラーのα値に置き換わります。


Pixel Color = ShadingRGB × TextureRGB + OffsetRGB
Pixel α = Textureα

KM_DECAL_ALPHA テクスチャカラーをテクスチャのα値に従ってシェーディングカラーとブレンドします。


Pixel Color = (TextureRGB×Textureα) + (ShadingRGB × (1- Textureα))+ OffsetRGB
Pixel α = Shadingα

KM_MODULATE_ALPHA テクスチャカラーにシェーディングカラーを掛けます。テクスチャのα値にはシェーディングカラーのα値を掛けます。


Pixel Color = (TextureRGB × ShadingRGB )+ OffsetRGB
Pixel α = Shadingα × Textureα

bColorClamp カラークランプするかどうかを指定します。 TRUEの場合、ハードウェアはピクセルカラーをkmSetColorClampValueで指定したクランプ値にクランプします。

PaletteBank パレットのバンク番号を指定します。 この値はテクスチャとしてPalettized Textureを指定したときのみ有効です。 指定できる値は、Palettized -4bppの時は0から63のいずれかです。 また、Palettized -8bppの時も0から63ですが、この場合有効なのは6bit中上位2bitのみなので、使用できる値は0(0から15),16(16から31),32(32から47),48(48から63)の4種の中のいずれかとなります。(詳細はkmSetPaletteData()関数をご参照ください)

pTextureSurfaceDesc テクスチャサーフェスのSurface構造体へのポインタを指定します。 VERTEXCONTEXTのほかのパラメータは変更せずに、テクスチャだけ変更したいときは、pTextureSurfaceDescメンバだけを変更してkmProcessVertexRenderState とkmSetVertexRenderStateを呼んでください。 ShadingModeをKM_TEXTUREFLAT,KM_TEXTUREGOURAUDに指定すると、kmProcessVertexRenderStateを呼び出す度に、Kamui1はpTextureSurfaceDescメンバの情報をシステムへ取り込みます。 また、pTextureSurfaceDescメンバにNULLを指定すると、ShadingModeがKM_TEXTUREFLAT,KM_TEXTUREGOURAUDになっていてもKamui1はテクスチャアドレスの取り込みを行いません。テクスチャが未定で、先にほかのパラメータだけセットしたい場合は、pTextureSurfaceDescメンバにNULLを指定してください。

ModifierInstruction モデファイアボリュームの登録時に、これから登録するポリゴンデータの種類を指定します。以下のいずれかを指定します。

 値   意味 
 KM_MODIFIER_INCLUDE_FIRST_POLY   Inclusionモデファイアボリュームの最初のポリゴン 
 KM_MODIFIER_EXCLUDE_FIRST_POLY   Exclusionモデファイアボリュームの最初のポリゴン 
 KM_MODIFIER_INCLUDE_LAST_POLY   Inclusionモデファイアボリュームの最後のポリゴン 
 KM_MODIFIER_EXCLUDE_LAST_POLY   Exclusionモデファイアボリュームの最後のポリゴン 
 KM_MODIFIER_NORMAL_POLY   それ以外のポリゴン 

このメンバは、モデファイアボリューム以外では指定する必要はありません。

なお、このメンバはARC1でのみ有効です。CLX1/2では指定する必要はありません。


参照

kmSetPaletteData()
 オンチップパレットデータの設定
kmSetBackGroundRenderState()
 Background Plane のレンダリングパラメータの設定
kmuConvertStripContext()
 KMSTRIPCONTEXT構造体への変換
kmProcessVertexRenderState()
 レンダリングパラメータ(KMVERTEXCONTEXT)の構築
kmSetModifierRenderState()
 レンダリングパラメータ(KMVERTEXCONTEXT)の登録(Param2使用時)
kmSetVertexRenderState()
 レンダリングパラメータ(KMVERTEXCONTEXT)の登録(通常時)

KMVERTEXCONTEXT
COPYRIGHT © NEC Corporation / © SEGA ENTERPRISES, LTD., 1998-2000