OpenGLES(iPhone)如何渲染一个巨大的四边形

Posted

技术标签:

【中文标题】OpenGLES(iPhone)如何渲染一个巨大的四边形【英文标题】:How does OpenGLES(iPhone) render a huge quad 【发布时间】:2012-01-15 08:52:06 【问题描述】:

我需要支持快速渲染大约 10,000 x 10,000 像素的巨大四边形。

无论是一般情况下还是专门针对 iPhone,OpenGLES 是否会自动将绘制的纹理剪辑到当前视口?还是我需要添加一些代码来将这些顶点修剪到屏幕大小?

我看到过关于优化很多顶点的讨论,但是在一个非常大的带纹理的四边形中只有 4 个顶点呢?

【问题讨论】:

【参考方案1】:

OpenGL rendering pipeline 在光栅化之前执行裁剪和剔除——因此对于视口之外的几何部分没有每像素成本。

如果您知道您的几何图形将始终准确地填充视口,那么您拥有的信息比您向 OpenGL 披露的信息要多,并且理论上可以编写代码以通过更少的操作获得您的输出几何图形。在您的情况下,您希望向后工作以投影到世界中并找到屏幕边缘的四个点,可能在顶点着色器中。但是,即使您编写了绝对最优的解决方案,差异也应该可以忽略不计,因为它不值得额外的代码负担。

【讨论】:

以上是关于OpenGLES(iPhone)如何渲染一个巨大的四边形的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone OpenGL ES 2.0 中在渲染和呈现帧缓冲区之间切换?

如何在 iPhone 的 OpenGLES 中实现精灵表?

我可以将 iOS 图形 API 设置为专门针对 iPhone 6s 的“OpenGLES2”,而将其他所有内容设置为自动吗?

OpenGL ES 2.0 - iOS - 使用 FBO 渲染到纹理

iPhone 上的 OpenGL ES 2.0:无法超过小索引/顶点数

OpenGL ES 渲染到纹理,然后绘制纹理