# G3X_SetFog

## 構文

      #include <nitro/gx/g3x.h>

      void G3X_SetFog(
          BOOL enable,
          GXFogBlend fogMode,
          GXFogSlope fogSlope,
          int fogOffset
      );

## 引数

enable | フォグを有効にするかどうかを設定します。
fogMode | α値に加えてカラーにもフォグをかけるかどうかを設定します。
fogSlope | フォグのかかり方の勾配を設定します。
fogOffset | フォグ計算が開始されるデプス値を設定します。

## 返り値

なし。

## 説明

フォグの有効／無効の設定と、フォグのかけかたの設定をします。GXFogSlope型のシンボルの末尾の数字は、一般に値が大きいほどフォグのかかり方が緩やかだということを表します。つまり、この値をxとすると、デプス値が、fogOffsetからfogOffset + xまでにかけてフォグが段階的に濃くなっていく（参照するフォグテーブルのインデックスが大きくなっていく）ことになります。

`GX_FOGBLEND_COLOR_ALPHA` | `ピクセルのカラー値とα値にフォグブレンディング`
`GX_FOGBLEND_ALPHA` | `ピクセルのα値のみにフォグブレンディング`

`GX_FOGSLOPE_0x8000` | フォグがデプス値で0x8000の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x4000` | フォグがデプス値で0x4000の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x2000` | フォグがデプス値で0x2000の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x1000` | フォグがデプス値で0x1000の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x0800` | フォグがデプス値で0x0800の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x0400` | フォグがデプス値で0x0400の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x0200` | フォグがデプス値で0x0200の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x0100` | フォグがデプス値で0x0100の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x0080` | フォグがデプス値で0x0080の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x0040` | フォグがデプス値で0x0040の幅で段階的に濃くなっていきます。
`GX_FOGSLOPE_0x0020` | フォグがデプス値で0x0020の幅で段階的に濃くなっていきます。

以下に引数に使用される列挙型の型定義を示しておきます。

    typedef enum
    {
        GX_FOGBLEND_COLOR_ALPHA = 0,
        GX_FOGBLEND_ALPHA = 1
    }
    GXFogBlend;

    typedef enum
    {
        GX_FOGSLOPE_0x8000 = 0,
        GX_FOGSLOPE_0x4000 = 1,
        GX_FOGSLOPE_0x2000 = 2,
        GX_FOGSLOPE_0x1000 = 3,
        GX_FOGSLOPE_0x0800 = 4,
        GX_FOGSLOPE_0x0400 = 5,
        GX_FOGSLOPE_0x0200 = 6,
        GX_FOGSLOPE_0x0100 = 7,
        GX_FOGSLOPE_0x0080 = 8,
        GX_FOGSLOPE_0x0040 = 9,
        GX_FOGSLOPE_0x0020 = 10
    }
    GXFogSlope;

## 参照

G3X_SetFogColor, G3X_SetFogTable

## 履歴

Ver. 2004/01/19