glLightModeli 函数

glLightModeli 函数设置照明模型参数。

语法

void WINAPI glLightModeli(
   GLenum pname,
   GLint  param
);

parameters

pname

单值照明模型参数。 接受以下值。

含义
GL_LIGHT_MODEL_LOCAL_VIEWER
参数是一个整数值,指定如何计算反射角。 如果 参数 为 0 (或 0.0) ,则无论顶点在眼睛坐标中的位置如何,镜面反射角度都将视线方向与 -z 轴的方向平行。 否则,从眼睛坐标系的原点计算反射。 默认值为 0。
GL_LIGHT_MODEL_TWO_SIDE
param 参数是一个整数值,指定是对多边形执行单面照明计算还是双面照明计算。 它对点、线或位图的照明计算没有影响。 如果 参数 为 0 (或 0.0) ,则指定单面照明,并且照明公式中仅使用正面材料参数。 否则,将指定双面照明。
在这种情况下,后向多边形的顶点使用背面材料参数点亮,并在计算照明等式之前将其法线反转。 正面多边形的顶点始终使用前方材料参数点亮,不会改变其法线。 默认值为 0。

param

参数将设置为的值。

返回值

此函数不返回值。

错误代码

glGetError 函数可以检索以下错误代码。

名称 含义
GL_INVALID_ENUM
pname 不是接受的值。
GL_INVALID_OPERATION
函数是在 对 glBegin 的调用和对 glEnd 的相应调用之间调用的。

备注

glLightModeli 函数设置照明模型参数。 pname 参数命名参数,参数提供新值。单个光源参数的值。

在 RGBA 模式下,顶点的发光颜色是材料发射强度的总和、材料环境反射率和照明模型全场景环境强度的乘积,以及每个启用的光源的贡献。 每个光源贡献三个字词的总和:环境、漫射和反射。

  • 环境光源的贡献是材料环境反射率和光的环境强度的乘积。
  • 漫射光源的贡献是材料漫射反射率、光的漫射强度以及顶点法线的点积与从顶点到光源的规范化矢量的乘积。
  • 反射光源的贡献是材料反射率、光的反射强度以及标准化顶点对眼睛和顶点到光矢量的点积的乘积,这些矢量被提升到材料闪亮度的幂。

根据顶点到光源的距离以及光源方向、扩散指数和扩散截止角,所有三个光源贡献均等地衰减。 如果计算结果为负值,则所有点积将替换为零。

生成的发光颜色的 alpha 分量设置为材料漫射反射率的 alpha 值。

在颜色索引模式下,顶点的发光索引值的范围从环境到使用GL_COLOR_INDEXES传递给 glMaterial 的反射值。 以 (.30、0.59、0.11) 光的颜色权重计算的漫射系数和反射系数、材料的光泽度以及与 RGBA 情况相同的反射和衰减等式计算得出的反射系数决定了生成的索引高于环境多少。

以下函数检索与 glLightModeli 函数相关的信息:

带参数GL_LIGHT_MODEL_LOCAL_VIEWER的 glGet

带参数GL_LIGHT_MODEL_TWO_SIDE的 glGet

带参数GL_LIGHTING的 glIsEnabled

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Gl.h

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glEnd

glLight

glMaterial