1

我对 OpenGL 中的裁剪有疑问。所以我有一个小视口,我想渲染大图像的一部分。如果我画一个像这样的大图像

glEnable(GL_TEXTURE_RECTANGLE)

glColor3f(1,1,1)

glTexCoord2f(0,height)
glVertex2f(0,0)

glTexdoord2f(width,height)
glVertex2f(width,0)

glTexCoord2f(width,0)
glVertex2f(width,height)

glTexCoord(0,0)
glVertex2f(0,height)

宽度和高度是图像(纹理)的大小,比视口大得多。

我的问题是:OpenGL 是先根据视口的大小裁剪矩形然后绘制,还是先渲染整个图像然后裁剪?

4

1 回答 1

1

它将首先剪裁几何图形,然后进行绘制。更具体地说,OpenGL 在渲染单个帧缓冲区元素(像素)之前会进行所有几何处理。这是来自 3.3 GL 规范(第 2.4 节)的相关引用:

最终生成的图元被裁剪到查看体积中,为下一阶段光栅化做准备。光栅器使用点、线段或多边形的二维描述生成一系列帧缓冲区地址和值。

于 2013-03-18T15:58:25.503 回答