OpenGL ES 1 裁剪对象

Posted

技术标签:

【中文标题】OpenGL ES 1 裁剪对象【英文标题】:OpenGL ES 1 clipping object 【发布时间】:2011-11-03 00:08:29 【问题描述】:

我对 OpenGLES1 相当缺乏经验,但我不得不根据我目前工作的限制来使用它。

我试图创造的效果是一种“容器”。 例子:

所以我希望能够让对象“框架”剪辑框架内的对象。问题是框​​架不是一个完美的正方形,所以我不能只是重新调整大小和调整纹理坐标。

我的一些同行建议使用模板,但我只处理过一次,我不确定基于“框架”alpha 创建模板的最佳方法。

各位先生有什么资源可以指点我吗?将不胜感激。

干杯,Xoorath。

【问题讨论】:

【参考方案1】:

如果只是渲染您想要在非矩形区域内裁剪的对象,那么根据OpenGL FAQ 创建模板缓冲区可能就是您需要的(参见第 10.030 节)。

否则,如果您想剪裁对象(通过修改其坐标),而不仅仅是在渲染时遮盖某个区域,那么您将需要一个多边形剪裁库。

关于多边形裁剪库,有许多选项,但它们减少到一个 - GPC - 如果你想要一个可以用 C(而不是 C++)编译的库。但是 GPC 的许可证可能会给您带来问题,因为它不是免费用于商业用途的。如果许可证有问题,您可以考虑将其他库的功能封装在动态链接库中。这些用 C++ 编写的其他库包括 - Clipper、Boost Polygon 和 Boost Geometry。

【讨论】:

抱歉迟到了。这些是满足我需要的绝佳工具。

以上是关于OpenGL ES 1 裁剪对象的主要内容,如果未能解决你的问题,请参考以下文章

在 cocos2d 中使用 opengl-es 进行圆形裁剪

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

OpenGL ES 模板操作

我的OpenGL学习进阶之旅介绍一下OpenGL ES的图元装配:坐标系统透视分割视口变化

我的OpenGL学习进阶之旅介绍一下OpenGL ES的图元装配:坐标系统透视分割视口变化

基于视锥体(平截体)的OpenGL ES性能优化