glMaterialiv 函数
glMaterialiv 函数指定照明模型的材料参数。
语法
void WINAPI glMaterialfv(
GLenum face,
GLenum pname,
const GLint *params
);
参数
-
脸
-
正在更新的人脸。 必须是下列项之一:GL_FRONT、GL_BACK或GL_FRONT和GL_BACK。
-
pname
-
正在更新的人脸或人脸的 material 参数。 可以使用 glMaterialiv 指定的参数及其通过照明公式的解释如下所示。
值 含义 - GL_AMBIENT
params 参数包含四个整数值,用于指定材料的环境 RGBA 反射率。 整数值是线性映射的,以便最正的可表示值映射到 1.0,而最负的可表示值映射到 -1.0。 浮点值是直接映射的。 整数值和浮点值均不固定。 正面和背面材料的默认环境反射率 (0.2、0.2、0.2、1.0) 。 - GL_DIFFUSE
params 参数包含四个整数值,用于指定材料的漫射 RGBA 反射率。 整数值是线性映射的,以便最正的可表示值映射到 1.0,而最负的可表示值映射到 -1.0。 浮点值是直接映射的。 整数值和浮点值均不固定。 正面和背面材料的默认漫射反射率 (0.8、0.8、0.8、1.0) 。 - GL_SPECULAR
params 参数包含四个整数值,用于指定材料的反射率 RGBA 反射率。 整数值是线性映射的,以便最正的可表示值映射到 1.0,而最负的可表示值映射到 -1.0。 浮点值是直接映射的。 整数值和浮点值均不固定。 正面和背面材料的默认反射率 (0.0、0.0、0.0、1.0) 。 - GL_EMISSION
params 参数包含四个整数值,用于指定材料的 RGBA 发出的光强度。 整数值是线性映射的,以便最正的可表示值映射到 1.0,而最负的可表示值映射到 -1.0。 浮点值是直接映射的。 整数值和浮点值均不固定。 正面和背面材料的默认发射强度为 (0.0、0.0、0.0、1.0) 。 - GL_SHININESS
param 参数是一个整数,用于指定材料的 RGBA 反射指数。 直接映射整数值。 仅接受 [0, 128] 范围内的值。 正面和背面材料的默认反射指数为 0。 - GL_AMBIENT_AND_DIFFUSE
等效于使用相同参数值调用 glMaterial 两次,一次使用 GL_AMBIENT,一次使用 GL_DIFFUSE。 - GL_COLOR_INDEXES
params 参数包含三个整数值,用于指定环境照明、漫射照明和反射照明的颜色索引。 这三个值和GL_SHININESS,是颜色索引模式照明公式使用的唯一材料值。 有关颜色索引照明的讨论,请参阅 glLightModel 。 -
params
-
参数GL_SHININESS将设置为的值。
返回值
此函数不返回值。
错误代码
glGetError 函数可以检索以下错误代码。
名称 | 含义 |
---|---|
|
face 或 pname 不是接受的值。 |
|
指定了 [0, 128] 范围之外的反射指数。 |
备注
glMaterialiv 函数将值分配给材料参数。 有两组匹配的材料参数。 第一个是 正面 集,用于在) 禁用双面照明时 (点、线条、位图和所有多边形着色,或者在启用双面照明时仅 (正面多边形) 。 另一个集( 背面)仅在启用双面照明时,才用于为背面多边形着色。 有关单面和双面照明计算的详细信息,请参阅 glLightModel 。
glMaterialiv 函数采用三个参数。 第一个 面指定是修改GL_FRONT材料、GL_BACK材料还是同时修改GL_FRONT_AND_BACK材料。 第二个 pname 指定将修改一个或两个集中的多个参数中的哪一个。 第三个 参数指定要分配给指定参数的值。
材料参数用于可选择性地应用于每个顶点的照明等式中。 该公式在 glLightModel 中进行了讨论。
可以随时更新材料参数。 具体而言, glMaterialiv 可以在对 glBegin 的调用和对 glEnd 的相应调用之间调用。 但是,如果每个顶点只更改一个材料参数, 则 glColorMaterial 优先于 glMaterialiv。
以下函数检索与 glMaterialiv 相关的信息:
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|