首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在较大的OpenGL纹理上在iPhone上绘制较小的纹理

在较大的OpenGL纹理上在iPhone上绘制较小的纹理
EN

Stack Overflow用户
提问于 2010-10-02 06:54:29
回答 2查看 968关注 0票数 0

我是OpenGL的新手,这就是我的目标.

  1. 从图像中加载纹理。
  2. 加载另一个比第一个纹理小得多的纹理。
  3. 现在继续在一些事件链上绘制更小的纹理,比如在更大的纹理上画。

有人能告诉我一些材料能帮我做这个吗?

我看了一些书,但它们大多是3D动画类的东西,我不想去那个部门,我只需要2D的纹理处理材料。

我是在效仿..。

http://developer.apple.com/library/ios/#samplecode/GLImageProcessing/index.html

在我的实验中,我正在修改示例中的drawGL()函数,以执行以下操作.

当第一次调用drawGL()时,不会发生任何变化,因此会在视图上绘制完整的纹理。

在下一次抽签中,我将触发器数组更改为.

代码语言:javascript
复制
V2fT2f flipquad[4] = {
 { 0, .5, 0, .5 },
 { .5, .5, .5, .5 },
 { 0, 1, 0, 0 },
 { .5, 1, .5, 0 },
};

所以只有左上角的象限被修改了。这在模拟器上很好,但是当我在设备上运行它时,除了左上象限外,其余的视图都会闪烁,也就是说每一次交替的抽签都会使它变黑!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-02 09:16:32

  1. 将大纹理绘制到帧缓冲区中,
  2. 用你想要的小纹理在上面画,
  3. 调用glCopyTexImage2D或glCopyTexSubImage2D将绘制的纹理从框架缓冲区复制回纹理对象。

上述方法将适用于OpenGL 1.1或更高版本。然而,它可能没有你想要的那么有效。可能的优化(取决于您的OpenGL版本)是创建一个屏幕外帧缓冲区,直接绑定到大的纹理和油漆那里。见glGenFramebuffers。

票数 1
EN

Stack Overflow用户

发布于 2010-10-21 15:39:07

其他人可能会发现来自苹果的这个示例很有用:GLPaint

希望能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3844707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档