glMaterialfv 関数
glMaterialfv 関数は、照明モデルのマテリアル パラメーターを指定します。
構文
void WINAPI glMaterialfv(
GLenum face,
GLenum pname,
const GLfloat *params
);
パラメーター
-
顔
-
更新される顔または顔。 GL_FRONT、GL_BACK、またはGL_FRONTとGL_BACKのいずれかである必要があります。
-
pname
-
更新する面または面のマテリアル パラメータ。 glMaterialfv を使用して指定できるパラメーターと、照明式による解釈は次のとおりです。
値 説明 - GL_AMBIENT
params パラメーターには、マテリアルのアンビエント RGBA 反射率を指定する 4 つの浮動小数点値が含まれています。 整数値は、最も正の表現可能な値が 1.0 にマップされ、最も負の表現可能な値が -1.0 にマップされるように線形的にマップされます。 浮動小数点値は直接マップされます。 整数も浮動小数点値もクランプされません。 前面と背面の両方の材料の既定のアンビエント反射率は (0.2、0.2、0.2、1.0) です。 - GL_DIFFUSE
params パラメーターには、マテリアルの拡散 RGBA 反射率を指定する 4 つの浮動小数点値が含まれています。 整数値は、最も正の表現可能な値が 1.0 にマップされ、最も負の表現可能な値が -1.0 にマップされるように線形的にマップされます。 浮動小数点値は直接マップされます。 整数も浮動小数点値もクランプされません。 前面と背面の両方のマテリアルの既定の拡散反射率は (0.8、0.8、0.8、1.0) です。 - GL_SPECULAR
params パラメーターには、マテリアルの反射 RGBA 反射率を指定する 4 つの浮動小数点値が含まれています。 整数値は、最も正の表現可能な値が 1.0 にマップされ、最も負の表現可能な値が -1.0 にマップされるように線形的にマップされます。 浮動小数点値は直接マップされます。 整数も浮動小数点値もクランプされません。 前面と背面の両方のマテリアルの既定の反射反射率は (0.0、0.0、0.0、1.0) です。 - GL_EMISSION
params パラメーターには、マテリアルの RGBA 放射光強度を指定する 4 つの浮動小数点値が含まれています。 整数値は、最も正の表現可能な値が 1.0 にマップされ、最も負の表現可能な値が -1.0 にマップされるように線形的にマップされます。 浮動小数点値は直接マップされます。 整数も浮動小数点値もクランプされません。 前面と背面の両方の材料の既定の放射強度は (0.0、0.0、0.0、1.0) です。 - GL_SHININESS
param パラメーターは、マテリアルの RGBA 反射指数を指定する単一の整数値です。 整数値は直接マップされます。 [0, 128] の範囲内の値のみが受け入れられます。 前面と背面の両方のマテリアルの既定の反射指数は 0 です。 - GL_AMBIENT_AND_DIFFUSE
同じパラメーター値で glMaterial を 2 回呼び出すのと同じです。1 回は GL_AMBIENT、1 回は GL_DIFFUSE。 - GL_COLOR_INDEXES
params パラメーターには、アンビエント、拡散、および反射照明のカラー インデックスを指定する 3 つの浮動小数点値が含まれています。 これらの 3 つの値 (GL_SHININESS) は、カラー インデックス モードの照明式で使用される唯一のマテリアル値です。 カラー インデックス照明の詳細については、 glLightModel を参照してください。 -
params
-
パラメーター GL_SHININESSが設定される値。
戻り値
この関数は値を返しません。
エラー コード
glGetError 関数では、次のエラー コードを取得できます。
名前 | 意味 |
---|---|
|
face または pname は受け入れ可能な値ではありません。 |
|
[0, 128] の範囲外の反射指数が指定されました。 |
解説
glMaterialfv 関数は、品目パラメータに値を割り当てます。 マテリアル パラメータには、一致する 2 つのセットがあります。 1 つ目 の前面 セットは、ポイント、線、ビットマップ、およびすべてのポリゴン (両面照明が無効になっている場合)、または前面向きの多角形 (両面照明が有効になっている場合) をシェーディングするために使用されます。 もう 1 つのセット ( 背面) は、両面照明が有効になっている場合にのみ、背面のポリゴンをシェーディングするために使用されます。 片側と両面の照明の計算の詳細については、 glLightModel を参照してください。
glMaterialfv 関数は、3 つの引数を受け取ります。 1 つ目の 面は、GL_FRONTマテリアル、GL_BACKマテリアル、またはその両方のGL_FRONT_AND_BACKマテリアルを変更するかどうかを指定します。 2 つ目の pname は、一方または両方のセット内の複数のパラメーターのうち、どのパラメーターを変更するかを指定します。 3 つ目の param は、指定されたパラメーターに割り当てられる値を指定します。
マテリアル パラメータは、必要に応じて各頂点に適用される照明式で使用されます。 この式については、 glLightModel で説明します。
材料パラメータはいつでも更新できます。 特に、 glMaterialfv は、 glBegin の呼び出しと glEnd への対応する呼び出しの間で呼び出すことができます。 ただし、頂点ごとに 1 つのマテリアル パラメーターのみを変更する場合は、glMaterialfv よりも glColorMaterial が優先されます。
次の関数は、 glMaterialfv に関連する情報を取得します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|