opengl-es - 是否也渲染了 OpenGL ES Frustum 之外的几何图形?

标签 opengl-es frustum

我正在使用 OpenGL ES 作为绘图 api 为 iPhone 开发游戏。我正在用一个绘制元素绘制整个大世界。根据截锥体,对象是可见的。

我想知道对象的另一部分会发生什么,它是绘制的吗?会影响FPS吗?

最佳答案

对于场景的任何顶点,都必须运行顶点着色器,以便将它们的坐标从模型空间转换到裁剪空间。

之后,不包含在裁剪体积中的图元(这意味着在裁剪空间中它们要么在屏幕之外,要么太远或太近)被裁剪,这样它们就不会被进一步处理并且像素着色器获胜不要被他们跑了。

这对于 OpenGL 和 OpenGL ES 是相同的。您可以在 OpenGL ES spec 中找到详细信息(2.13 Primitive Clipping)或在 OpenGL 规范中(相同标题)。

这意味着有很多几何图形,其中大部分位于截锥体之外,会稍微影响您的渲染时间,但比实际渲染所有几何体时要少得多 .只需要进行逐顶点变换;不会为它们执行光栅化和每像素操作(片段着色器,实际写入帧缓冲区)。

这也意味着,如果您执行许多逐顶点操作而逐像素操作较少,那么为您的场景编写额外的可见性测试可能更为重要。

关于opengl-es - 是否也渲染了 OpenGL ES Frustum 之外的几何图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8278335/

相关文章:

iphone - 将程序化 C openGL 函数添加到 iPhone 项目

gcc - 由eglMakeCurrent触发的堆栈保护

c++ - 优化视锥剔除

android - Android 上 OpenGL ES 2.0 中的 frustumM/setLookAtM

android - GLSL - 用于图像处理/混合的 fragment 着色器

ios - 在 Xcode 中创建逼真的云

3d - 计算 3D 空间中的视锥体

java - 如何将 .obj 文件转换为 Android openGL?

c++ - 关于 View 矩阵和视锥剔除