【问题标题】:2D clip in OpenGLOpenGL 中的 2D 剪辑
【发布时间】:2013-03-18 15:48:57
【问题描述】:

我对 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是先根据视口的大小裁剪矩形再绘制,还是先渲染整个图像再裁剪?

【问题讨论】:

    标签: opengl


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,所以渲染速度不会受到图像大小的影响,因为它被裁剪到视口。
    • @YanLi:请注意,这只是规范所说的情况。只要结果相同,驱动程序就可以按照他们的意愿实现它。这就是“好像”规则:驱动程序执行它“好像”它以这种方式发生。
    猜你喜欢
    • 2013-09-23
    • 2011-11-23
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2012-10-29
    • 1970-01-01
    相关资源
    最近更新 更多