次の方法で共有


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

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

glGetMaterial

要件

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

関連項目

glColorMaterial

glLight

glLightModel