次の方法で共有


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 関数では、次のエラー コードを取得できます。

名前 意味
GL_INVALID_ENUM
face または pname は受け入れられた値ではありません。
GL_INVALID_VALUE
[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 に関連する情報を取得します。

glGetMaterial

必要条件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Gl.h
ライブラリ
Opengl32.lib
[DLL]
Opengl32.dll

関連項目

glColorMaterial

glLight

glLightModel