iOS 上的 OpenGL ES 1.1:没有剪切平面?

Posted

技术标签:

【中文标题】iOS 上的 OpenGL ES 1.1:没有剪切平面?【英文标题】:OpenGL ES 1.1 on iOS: No clipping planes? 【发布时间】:2018-08-10 21:16:50 【问题描述】:

我非常渴望使用剪切平面,我目前使用的是 OpenGL ES 1.1。 理论上我可以升级到 GL ES 2 或 3,我只需要多学一点,例如关于着色器。 但是有没有办法在 GL ES 1.1 中做裁剪平面?

更新: ios 有 6 架飞机可用。

【问题讨论】:

【参考方案1】:

根据spec OpenGLES 1.1 支持裁剪平面。您可以使用 glGetIntegerv(GL_MAX_CLIP_PLANES, &iNumClipPlanes) 获取支持的剪切平面的数量。规范要求至少有 1 个剪辑平面,这可能不足以满足您的需求。

如果您是特定于 iOS 的,那么 this page 显示所有旧 iOS 设备在 OpenGLES 1.1 上都有 6 个 GL_MAX_CLIP_PLANES,如果新设备更少,我会感到惊讶。

或者,有一些有趣的方法可以扭曲您的视锥以获得单个剪辑平面,这可能会根据您的情况有所帮助 - 特别适用于反射:

http://hacksoflife.blogspot.co.uk/2008/12/every-now-and-then-i-come-across.html

http://www.terathon.com/code/oblique.html

【讨论】:

以上是关于iOS 上的 OpenGL ES 1.1:没有剪切平面?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenGL ES 2 或 3 上进行剪切平面?

iOS 上的 OpenGL ES 多个没有索引的 VBO

OpenGL ES 2.0中的剪切平面

OpenGL ES 模板操作

使用 CADisplayLink 的 iOS OpenGL ES 1.1 生涩动画(重启修复了一段时间)

OpenGL ES显示白色或黑色屏幕