glTexGendv 函数
控制纹理坐标的生成。
语法
void WINAPI glTexGendv(
GLenum coord,
GLenum pname,
const GLdouble *params
);
参数
-
coord
-
纹理坐标。 必须是下列项之一:GL_S、GL_T、GL_R或GL_Q。
-
pname
-
纹理坐标生成函数的符号名称。
-
params
-
包含相应纹理生成函数的系数的数组。
返回值
此函数不返回值。
错误代码
glGetError 函数可以检索以下错误代码。
名称 | 含义 |
---|---|
|
coord 或 pname 不是接受定义的值,或者 pname GL_TEXTURE_GEN_MODE且 参数 不是接受的已定义值。 |
|
在对 glBegin 的调用和 对 glEnd 的相应调用之间调用了该函数。 |
注解
glTexGen 函数选择纹理坐标生成函数或为其中一个函数提供系数。 coord 参数将 (s、t、r、q) 纹理坐标之一命名,并且必须是以下符号之一:GL_S、GL_T、GL_R或GL_Q。 pname 参数必须是三个符号常量之一:GL_TEXTURE_GEN_MODE、GL_OBJECT_PLANE或GL_EYE_PLANE。 如果 pname 为GL_OBJECT_PLANE或GL_EYE_PLANE, 则参数 包含相应纹理生成函数的系数。
如果纹理生成函数GL_OBJECT_LINEAR,则函数
![当纹理生成函数GL_OBJECT_LINEAR时显示 glTexGen 函数的公式。]
使用 ,其中 g 是为 coord 中命名的坐标计算的值;p1、p2、p3 和 p4 是参数中提供的四个值:和 x?、y?、z?和 w?是顶点的对象坐标。 可以使用此函数将海平面用作 p1、p2、p3 和 p4) 定义的参考平面 (纹理地图地形。 GL_OBJECT_LINEAR坐标生成函数将地形顶点的高度计算为与海平面的距离:例如,该海拔高度用于为纹理图像编制索引,将白色雪映射到山顶,将绿色草映射到山脚。
如果纹理生成函数GL_EYE_LINEAR,则函数
![当纹理生成函数GL_EYE_LINEAR时显示 glTexGen 函数的公式。]
使用的位置,其中
和 x?、y?、z?和 w?是顶点、p1、p2、p3 和 p4 的眼坐标,是 参数中提供的值,M 是 调用glTexGen 时的 modelview 矩阵。 如果 M 条件差或单数,则生成的函数生成的纹理坐标可能不准确或未定义。
请注意, 参数 中的值在眼睛坐标中定义引用平面。 在转换多边形顶点时,应用于它们的 modelview 矩阵可能不相同。 此函数建立一个纹理坐标字段,该字段可以在移动对象上生成动态轮廓线。
如果 pname GL_SPHERE_MAP且 coord 为 GL_S 或 GL_T,则生成 s 和 t 纹理坐标,如下所示。 让 u 成为从原点指向多边形顶点的单位向量, (眼睛坐标) 。 在转换到眼睛坐标后,让 n 成为当前正态。 let f = (fx ( ) fy ( ) fz) T 是反射向量,
最后,让
然后,分配给 i 和 t 纹理坐标的值为
可以通过将 glEnable 或 glDisable 与符号纹理坐标坐标名称之一 (GL_TEXTURE_GEN_S、GL_TEXTURE_GEN_T、GL_TEXTURE_GEN_R或GL_TEXTURE_GEN_Q) 作为参数来启用或禁用纹理坐标生成函数。 启用此函数后,将根据与该坐标关联的生成函数计算指定的纹理坐标。 禁用此函数后,后续顶点将从当前纹理坐标集中获取指定的纹理坐标。 最初,所有纹理生成函数都设置为GL_EYE_LINEAR并禁用。 这两个平面公式 (1,0,0,0) ;两个 t 平面公式 (0,1,0,0) ;所有 r 和 q 平面公式都 (0,0,0,0) 。
以下函数检索与 glTexGen 相关的信息:
glGetTexGen
带参数的 glIsEnabled GL_TEXTURE_GEN_S
带参数GL_TEXTURE_GEN_T的 glIsEnabled
带参数的 glIsEnabled GL_TEXTURE_GEN_R
带参数的 glIsEnabled GL_TEXTURE_GEN_Q
要求
要求 | Value |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|