glMaterialiv 関数
glMaterialiv 関数は、照明モデルのマテリアル パラメータを指定します。
構文
void WINAPI glMaterialfv(
GLenum face,
GLenum pname,
const GLint *params
);
パラメーター
-
顔
-
更新される顔。 GL_FRONT、GL_BACK、またはGL_FRONTとGL_BACKのいずれかである必要があります。
-
pname
-
更新する面または面のマテリアル パラメータ。 glMaterialiv を使用して指定できるパラメーターと、照明式によるそれらの解釈は次のとおりです。
値 説明 - 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 反射指数を指定する 1 つの整数です。 整数値は直接マップされます。 [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] の範囲外の反射指数が指定されました。 |
解説
glMaterialiv 関数は、数量単価型パラメーターに値を割り当てます。 材料パラメータには、一致する 2 つのセットがあります。 1 つ目の 前面 セットは、ポイント、線、ビットマップ、およびすべてのポリゴン (両面照明が無効になっている場合)、または前面に面した多角形 (両面照明が有効になっている場合) に使用されます。 もう 1 つのセット( 背面向き)は、両面照明が有効になっている場合にのみ、背面向きのポリゴンをシェーディングするために使用されます。 片側と両面の照明の計算の詳細については、 glLightModel を参照してください。
glMaterialiv 関数は、3 つの引数を受け取ります。 1 つ目の 面は、GL_FRONTマテリアル、GL_BACKマテリアル、または両方のGL_FRONT_AND_BACKマテリアルを変更するかどうかを指定します。 2 番目の pname は、1 つまたは両方のセット内の複数のパラメーターのうち、変更するパラメーターを指定します。 3 番目の param は、指定したパラメーターに割り当てる値を指定します。
マテリアル パラメータは、必要に応じて各頂点に適用される照明方程式で使用されます。 この式については、 glLightModel で説明します。
材料パラメータはいつでも更新できます。 特に、 glMaterialiv は、 glBegin の呼び出しと glEnd の対応する呼び出しの間で呼び出すことができます。 ただし、頂点ごとに 1 つのマテリアル パラメータのみを変更する場合は、glMaterialiv よりも glColorMaterial が優先されます。
次の関数は、 glMaterialiv に関連する情報を取得します。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|