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)の登録(通常時)