glRasterPos3iv 函数

指定像素运算的光栅位置。

语法

void WINAPI glRasterPos3iv(
   const GLint *v
);

参数

v

指向包含三个元素的数组的指针,指定当前光栅位置的 x、y 和 z 坐标。

返回值

此函数不返回值。

注解

OpenGL 在窗口坐标中维护三维位置。 此位置称为光栅位置,以亚像素精度进行维护。 它用于定位像素和位图写入操作。 请参阅 glBitmapglDrawPixelsglCopyPixels

当前光栅位置由三个窗口坐标组成, (x、y、z) 、剪辑坐标 w 值、眼坐标距离、有效位以及关联的颜色数据和纹理坐标。 w 坐标是剪辑坐标,因为 w 未投影到窗口坐标。 glRasterPos4 函数显式指定对象坐标 x、y、zw。 glRasterPos3 函数显式指定对象坐标 x、yz ,而 w 则隐式设置为 1。 glRasterPos2 函数使用 xy 的参数值,同时隐式将 zw 设置为零和 1。

glRasterPos 提供的对象坐标的处理方式与 glVertex 命令的坐标相同。 它们由当前模型视图和投影矩阵进行转换,并传递到剪辑阶段。 如果未剔除顶点,则会将其投影并缩放为窗口坐标,这将成为新的当前光栅位置,并设置GL_CURRENT_RASTER_POSITION_VALID标志。 如果顶点被剔除,则清除有效位,并且当前光栅位置以及关联的颜色和纹理坐标未定义。

当前光栅位置还包括一些关联的颜色数据和纹理坐标。 如果启用照明,则 RGBA 模式下的GL_CURRENT_RASTER_COLOR或颜色索引模式下的GL_CURRENT_RASTER_INDEX设置为照明计算生成的颜色, (请参阅 glLightglLightModelglShadeModel) 。 如果禁用照明、RGBA 模式下的当前颜色 (、状态变量GL_CURRENT_COLOR) 或颜色索引 (,则状态变量GL_CURRENT_INDEX) 用于更新当前光栅颜色。

同样,GL_CURRENT_RASTER_TEXTURE_COORDS更新为GL_CURRENT_TEXTURE_COORDS的函数,基于纹理矩阵和纹理生成函数 (glTexGen) 。 最后,从眼睛坐标系原点到顶点的距离(仅由模型视图矩阵转换)替换GL_CURRENT_RASTER_DISTANCE。

最初,当前光栅位置 (0,0,0,1) ,当前光栅距离为 0,设置有效位,关联的 RGBA 颜色 (1,1,1,1) ,关联的颜色索引为 1,关联的纹理坐标 (0,0,0,1) 。 在 RGBA 模式下,GL_CURRENT_RASTER_INDEX始终为 1;在颜色索引模式下,当前光栅 RGBA 颜色始终保持其初始值。

注意

光栅位置由 glRasterPosglBitmap 修改。

注意

当光栅位置坐标无效时,将忽略基于光栅位置的绘图命令, (也就是说,它们不会导致 OpenGL 状态) 更改。

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

带参数GL_CURRENT_RASTER_POSITION的 glGet
带参数GL_CURRENT_RASTER_POSITION_VALID的 glGet
带参数GL_CURRENT_RASTER_DISTANCE的 glGet
带参数GL_CURRENT_RASTER_COLOR的 glGet
带参数GL_CURRENT_RASTER_INDEX的 glGet
带参数GL_CURRENT_RASTER_TEXTURE_COORDS的 glGet

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glBitmap

glCopyPixels

glDrawPixels

glEnd

glLight

glLightModel

glShadeModel

glTexCoord

glTexGen

glVertex