G3*_PolygonAttr

構文

#include <iris/gx/g3imm.h>
#include <iris/gx/g3b.h>
#include <iris/gx/g3c.h>
void G3_PolygonAttr( int light, GXPolygonMode polyMode, GXCull cullMode, int polyognID, int alpha, int misc );
void G3B_PolygonAttr(GXDLInfo* info, ...); void G3C_PolygonAttr(GXDLInfo* info, ...); void G3BS_PolygonAttr(GXDLInfo* info, ...); void G3CS_PolygonAttr(GXDLInfo* info, ...);

引数

info コマンドリスト情報
light どのライトを点灯するかを指定する4ビットのマスクです。
polyMode ポリゴンモードを指定します。
cullMode どの面をカリングするかを指定します。
polygonID ポリゴンIDを指定します
alpha α値を指定します。
misc その他のポリゴン属性を指定するためのビットフィールドです。

返り値

なし。

説明

ポリゴン関連属性値を設定します。

lightは4ビットのフラグで、下位4ビットで下位から順に、ライト0, ライト1, ライト2, ライト3のON/OFFを指定します。
polyModeはポリゴンモードを指定する引数で、GXPolygonMode型の値を指定します。
cullModeはポリゴンのカリング方式を指定する引数で、GXCull型の値を指定します。
polygonIDはポリゴンIDを指定する引数で、0以上63以下を指定できます。半透明ポリゴン、シャドウポリゴン、及びエッジマーキング描画時に使用されます。
alphaはポリゴンのα値を指定する引数で、0以上31以下を指定できます。31の場合不透明ポリゴンで、0の場合ワイヤーフレーム表示(G3X_AlphaTestの設定で表示しないようにすることが可能)、1以上30以下の場合は、半透明ポリゴンになります。
miscはその他の属性フラグをまとめたビットフィールドで、GXPolygonAttrMisc型の値の論理和を渡します。

GX_POLYGONMODE_MODULATE モジュレーションモード
GX_POLYGONMODE_DECAL デカルモード
GX_POLYGONMODE_TOON トゥーンシェーディング/ハイライトシェーディングモード
GX_POLYGONMODE_SHADOW シャドウポリゴンモード

GX_CULL_ALL 両面表示しない
GX_CULL_FRONT 表面を表示しない
GX_CULL_BACK 裏面を表示しない
GX_CULL_NONE 両面表示する

GX_POLYGON_ATTR_MISC_NONE 何も指定しません。
GX_POLYGON_ATTR_MISC_XLU_DEPTH_UPDATE 半透明ポリゴン描画時にデプスバッファを更新します。
GX_POLYGON_ATTR_MISC_FAR_CLIPPING ポリゴンがFAR面と交差したらクリッピングします(指定しない場合は交差したら消去)。
GX_POLYGON_ATTR_MISC_DISP_1DOT 1ドットのポリゴンを表示します。G3X_SetDisp1DotDepthも参照してください。
GX_POLYGON_ATTR_MISC_DEPTHTEST_DECAL フラグメントのデプス値がデプスバッファのデプス値と等しい場合に描画します。
指定しない場合は、デプス値より小さい場合に描画します。
GX_POLYGON_ATTR_MISC_FOG レンダリングエンジンでフォグブレンディングを行います。


以下にGXPolygonMode型とGXCull型とGXPolygonAttrMisc型の型定義を示しておきます。

typedef enum
{
    GX_POLYGONMODE_MODULATE = 0,
    GX_POLYGONMODE_DECAL = 1,
    GX_POLYGONMODE_TOON = 2,
    GX_POLYGONMODE_SHADOW = 3
}
GXPolygonMode;

typedef enum
{
    GX_CULL_ALL = 0,
    GX_CULL_FRONT = 1,
    GX_CULL_BACK = 2,
    GX_CULL_NONE = 3
}
GXCull;

typedef enum
{
    GX_POLYGON_ATTR_MISC_NONE = 0,
    GX_POLYGON_ATTR_MISC_XLU_DEPTH_UPDATE = 1 << REG_G3_POLYGON_ATTR_XL_SHIFT,
    GX_POLYGON_ATTR_MISC_FAR_CLIPPING = 1 << REG_G3_POLYGON_ATTR_FC_SHIFT,
    GX_POLYGON_ATTR_MISC_DISP_1DOT = 1 << REG_G3_POLYGON_ATTR_D1_SHIFT,
    GX_POLYGON_ATTR_MISC_DEPTHTEST_DECAL = 1 << REG_G3_POLYGON_ATTR_DT_SHIFT,
    GX_POLYGON_ATTR_MISC_FOG = 1 << REG_G3_POLYGON_ATTR_FE_SHIFT
}
GXPolygonAttrMisc;

参照

履歴

Ver. 2004/01/19