在 OpenGL ES (iPhone) 中绘制到离屏渲染缓冲区

2023-11-24

我正在尝试在 iPhone 上的 OpenGL ES 中创建离屏渲染缓冲区。我创建了这样的缓冲区:

        glGenFramebuffersOES(1, &offscreenFramebuffer);
    glBindFramebufferOES(GL_FRAMEBUFFER_OES, offscreenFramebuffer);

    glGenRenderbuffersOES(1, &offscreenRenderbuffer);
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, offscreenRenderbuffer);
    glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, offscreenRenderbuffer);

但我对如何渲染存储感到困惑。苹果的文档说要使用 EAGLContext renderBufferStorage:fromDrawable: 方法,但这似乎只适用于一个渲染缓冲区(正在显示的主要缓冲区)。如果我使用普通的OpenGL函数glRenderBufferStorageOES,那么我似乎无法让它显示。这是代码:

        // this is in the initialization section:
    glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_RGB8_OES, backingWidth, backingHeight);

    // and this is when I'm trying to draw to it and display it:
    glBindFramebufferOES(GL_FRAMEBUFFER_OES, offscreenFramebuffer);
    GLfloat vc[] = {
        0.0f, 0.0f, 0.0f,
        10.0f, 10.0f, 10.0f,
        0.0f, 0.0f, 0.0f,
        -10.0f, -10.0f, -10.0f,         
    };

    glLoadIdentity();
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(3, GL_FLOAT, 0, vc);
    glDrawArrays(GL_LINES, 0, 4);
    glDisableClientState(GL_VERTEX_ARRAY);

    glBindRenderbufferOES(GL_RENDERBUFFER_OES, offscreenRenderbuffer);
    [context presentRenderbuffer:GL_RENDERBUFFER_OES];

这样做的话,屏幕上就不会显示任何内容。但是,如果我将对“offscreen...Buffer”的引用切换到使用 renderBufferStorage 方法创建的缓冲区,则它可以正常工作。

有什么建议么?


既然你不能使用presentRenderbuffer对于屏幕外的 FBO,您应该使用以下命令将其与纹理对象关联glFramebufferTexture2DOES,然后渲染一个带纹理的全屏四边形。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OpenGL ES (iPhone) 中绘制到离屏渲染缓冲区 的相关文章

  • 三星 S4 上的 Open GL 错误配置错误

    我在 Samsung S4 上收到以下错误 10 21 16 25 44 100 E AndroidRuntime 29778 FATAL EXCEPTION GLThread 11320 10 21 16 25 44 100 E Andr
  • Swift 错误:可选类型“Double”的值?没有打开

    我是 Swift 新手 这个错误是什么 let lvt self lastVibrationTime let delta self deltaTime let sens self shakeSensitivity let time Doub
  • 如何在代码中更改 UIBarButtonItem 的样式

    我正在使用 UIBarButtonSystemItemPlay 播放我的音频文件 我想在单击它时动态更改它的样式 可以吗 如果可以 请帮助我 这是我的代码 其中 playPause 是 UIBarButtonSystemItemPlay 的
  • Core Data轻量级迁移:无法找到或自动推断迁移的映射模型

    因此 我创建了数据模型的新版本 并将以前的可选字段设为非可选 为其指定默认值 根据文档 这应该意味着我的迁移符合轻量级自动迁移的条件 我还添加了在打开商店时允许执行此操作的选项 同样根据文档 NSDictionary options NSD
  • iOS 是否有像 Android 一样的应用内更新功能?

    我为 Android 和 iOS 开发了一个移动应用程序 现在每周我们都会发布 2 个更新 大多数时候 Android 和 iOS 用户会停止应用程序的自动更新 但是 如果有重要更新或错误修复或新功能 那么我们必须要求用户更新应用程序以获得
  • 带圆圈的 CGContextClearRect

    我正在创建一个应用程序 其中我试图清除rect of UIImageView 我已经实现了这一目标CGContextClearRect 但问题是它正在清除rect在方形中 我想在圆形中实现这种效果 到目前为止我已经尝试过 UITouch t
  • 如何以编程方式将传入的 iPhone 短信静音?

    我目前正在尝试使用AVSystemController根据用户的选择来静音系统噪音的私有框架 我目前正在通过以下方式将电话静音 AVSystemController object setVolumeTo 0 0 forCategory Ri
  • 使用 UIImagePickerController 选择图像后,照片库视图保留在屏幕上

    当我通过 UIImagePickerController 界面从照片库中选择一张图片后 照片库视图保持显示 即使我调用了解雇模型视图控制器动画 in imagePickerController didFinishPickingImage e
  • iOS 中的自定义阿拉伯字体

    我正在尝试制作一个主要显示阿拉伯语内容的 iPhone 应用程序 我想使用自定义阿拉伯字体来显示该内容 而不是 iPhone 默认的阿拉伯字体 我使用了以下代码 void viewDidLoad super viewDidLoad arab
  • 如何将“前往此处的路线”按钮添加到地址簿中?

    谷歌地图应用程序有 到这里的方向 和 从这里出发的方向 例如http static intomobile com wp content uploads 2008 10 iphone 22 os google maps street view
  • 如何降低iphone的sdk Audioqueue的声音?

    我正在使用 Aran Mulhollan 的 RemoteIOPlayer 在 SDK iphone 中使用音频队列 我可以毫无问题 添加两个信号来混合声音 通过乘以从 wav 文件中获得的 UInt32 来增加音量 但所有其他操作都会给我
  • iPhone——是否可以在 Xcode 调试器中检查 UIView 的框架?

    当调试器在断点处停止时 我在那里找不到任何 UIView 的框架 是否有可能做到这一点 编辑 由于缺乏回应而开始赏金 需要明确的是 我正在寻找一种在不添加额外调试代码的情况下查看框架的方法 另外 如果答案是 不 你不能这样做 赏金将用于解释
  • iPhone UITableView 分页结果

    对从服务器拉取的大量结果进行分页的最佳方法是什么 就服务器而言 我可以抵消和限制结果 因此我一次只能提取 25 个结果 但是允许用户查看更多结果而不需要像应用商店一样不断向下滚动不断增长的列表的最佳方式是什么应用程序 谢谢 豪伊 要在列表底
  • 如何在 iBooks 上搜索桌面 UI

    我想像 iBooks 中那样显示 tableview 的搜索栏 我如何减少搜索栏的宽度以及如何在没有任何背景颜色的情况下显示它 另外 当页面显示时 如何最初隐藏搜索框 我可以想到两个选择 通过子类化 UITextfield 创建您自己的 U
  • AVAudioPlayer只能在模拟器中播放,但不能在设备中播放,为什么?! (iPhone-SDK)

    我有以下播放声音的简单代码 NSString soundPath NSBundle mainBundle pathForResource sound ofType wav player AVAudioPlayer alloc initWit
  • 如何在 AVAudioSession 内使用 iPhone XS 中内置的立体声(2 通道)麦克风?

    我试图从 iPhone XS 的所谓立体声后置麦克风获取两个通道 但在不同位置只能看到一个通道AVAudioSession and AVAudioSessionPortDescription与后置摄像头相关联 我尝试过使用AVAudioSe
  • NSHTTPCookieStorage 是否跨应用程序持续存在?

    所以我只是好奇 NSHTTPCookieStorage 是否跨应用程序持久存在 或者仅在当前应用程序本地 我希望在另一个应用程序中收集的一些 cookie 可以在搜索应用程序中访问 是这样的吗 谢谢 PS 这是在 iPhone 或 iPad
  • 允许的 APNS 持续连接数量是多少?

    我正在尝试编写服务器端代码来为我的应用程序发送推送通知 根据 Apple 的建议 我计划保留连接并根据需要发送推送通知 Apple 还允许打开和保留多个并行连接以发送推送通知 您可以与同一网关或多个网关实例建立多个并行连接 为此 我想维护一
  • iPhone 相当于 Application.DoEvents();

    iPHone 我们使用 MonoTouch 但 Obj C 答案还可以 我的单例域对象需要一段时间才能获取所有数据 因此它在线程中内部运行部分获取数据 我需要通知 UI 域已完成 目前我正在这样做 有没有更好的办法 在 WinForms 中
  • NSDictionary 上的 NSPredicate

    我试图根据字母表在表格视图中创建部分 并在这些部分下按字母顺序对我的条目进行排序 我已经收集了 bandArrayIndex 中 bandArray 每个条目的第一个字母 现在我尝试使用 NSPredicate 来计算每个字母有多少个 我正

随机推荐

  • 如何使用 UWP MarkupExtension 类?

    Fall Creators 更新 SDK 添加了标记扩展类 非常棒 https learn microsoft com en us uwp api windows ui xaml markup markupextension 所以我创建了一
  • 创建交互式应用程序原型的最佳方法是什么?

    这个问题应该从一般的角度来解释 而不是仅仅针对网络应用程序或桌面应用程序 我一直在寻找一种简单易用的方法来为 Web 应用程序创建交互式原型 我想使用一种技术 允许简单的 UI 创建 特别是在进一步迭代中重新创建和修改 UI 用模型数据填充
  • android:TimePickerDialog 阻止用户选择过去的时间,并可以选择具有新日期的未来时间

    我正在使用这个链接Android TimePickerDialog 设置最大时间 我是安卓新手 借助此代码 我无法选择过去的时间 但我们无法选择未来的时间 当在时间选择器对话框模式中选择 12 时 根据第二天而不是过去的一天自动更改为 am
  • AngularJS:扩展输入指令

    我想知道是否可以扩展 Angular 的输入指令 我想将一些侦听器附加到页面上的所有输入字段 我认为你可以用以下方式装饰现有模块 provide decorate 但我不知道如何使用指令 更准确地说是输入指令 来做到这一点 那么 有人能把我
  • 如何将wav文件转换为浮动幅度

    所以我问了标题中的所有内容 我有一个 wav 文件 由 PyAudio 从输入音频编写 我想将其转换为与声级 振幅 相对应的浮点数据 以进行一些傅里叶变换等 有人有将 WAV 数据转换为 float 的想法吗 我已经找到了两种不错的方法来做
  • Java中的字符串和字符数组

    我是一名刚从C 转向Java的学生 在 Java 中 为 String 和 Char 数组定义单独的数据类型的主要原因是什么 两者有什么区别 由于我只学过C 到目前为止我的印象是它们是同一件事 如果可能的话请澄清 String是不可变的 C
  • 加载和存储是唯一需要重新排序的指令吗?

    我读过很多关于内存排序的文章 它们都只说 CPU 重新排序加载和存储 CPU 我对 x86 CPU 特别感兴趣 是否只重新排序加载和存储 而不重新排序它拥有的其余指令 乱序执行保留了按程序顺序运行的错觉对于单线程 核心 这就像C C as
  • 停止服务内的线程

    我在服务中有一个线程 我希望能够在按下时停止该线程buttonStop在我的主要活动课上 在我的主要活动课上 我有 public class MainActivity extends Activity implements OnClickL
  • C++中通过引用传递指针

    我有一个函数 将迭代器传递给 char 缓冲区 这也是一个 char 该函数需要递增迭代器 无论如何 我发现将迭代器传递到函数中的一个好方法是通过引用传递指针 bool myFunction unsigned char iter 但是 我听
  • 将 CSV 文件转换为 Lua 中定义键的表

    我正在学习 Lua 来构建飞行模拟器的脚本 我有一个 CSV 文件 如下所示 Poti city Poti red 295731 42857144 617222 85714285 Lanchhuti city Poti red 299217
  • 使用Xcode和SDK构建胖静态库(设备+模拟器)4+

    理论上 我们似乎可以构建一个包含模拟器以及 iPhone 和 iPad 的静态库 然而 Apple 没有我能找到的相关文档 并且 Xcode 的默认模板也没有配置为执行此操作 我正在寻找一种可以在 Xcode 内完成的简单 可移植 可重用的
  • 是否可以在共享内存中存储多态类?

    假设我有课Base and Derived public Base 我使用 boost interprocess 库构建了一个共享内存段 是否可以有类似这样的代码 Base b new Derived write b one app wri
  • 用于 Asp.net Mvc 的 Google Chart HtmlHelper

    是否有任何 HtmlHelper 扩展谷歌图表API 我喜欢使用一些基本图表 例如饼图 条形图 Soe Moe 谷歌说你插入一个像这样的图表 img src alt Sample chart 所以编写一个像这样的 HtmlHelper 应该
  • 在 Java 中,如何解析 xml 模式 (xsd) 以了解给定元素的有效内容?

    我希望能够读取 XML 模式 即 xsd 并在遍历它时从中知道什么是有效属性 子元素和值 例如 假设我有一个 xsd 此 xml 将根据它进行验证
  • 如何回滚 EmberData 中的关系更改

    我有两种亲子关系模型 训练和锻炼 App Training DS Model extend exercises DS hasMany App Exercise App Exercise DS Model extend training DS
  • 将 WSSE SOAP 标头添加到 Web 参考

    我正在尝试将 WSSE SOAP 标头添加到我的服务调用中 但大多数示例都集中在 WCF 上 我没有使用 WCF 我添加了 Web 参考 WSDL 我尝试了各种方法但没有成功 例如 覆盖 GetWebRequest 方法 protected
  • 通过 Ajax 调用使用 Struts 2 的 HTTP 数组参数

    我在将数组参数发送到 Struts 2 操作类时遇到问题 我使用的是struts 2 1 8 1 这是一些示例代码 public class MyAction extends ActionSupport private String typ
  • C# ADAL AcquireTokenAsync() 不带弹出框

    我们正在编写一个 WCF 服务 该服务必须与 Dynamics CRM 2016 Online 集成 我正在尝试使用 ADAL 进行身份验证 使用方法AcquireTokenAsync 问题是 它会显示一个弹出框 提示用户输入凭据 当然 我
  • 定期获取位置(坐标),而不会显着增加电池消耗

    我正在开发一个 Android 应用程序 该应用程序需要定期 每 10 分钟 向网络服务发送当前位置 坐标 但是 我对更正确的方法 对设备电池更友好 感到有点困惑 我读了这个answer和她的方法 getLocation 看起来不错 但我不
  • 在 OpenGL ES (iPhone) 中绘制到离屏渲染缓冲区

    我正在尝试在 iPhone 上的 OpenGL ES 中创建离屏渲染缓冲区 我创建了这样的缓冲区 glGenFramebuffersOES 1 offscreenFramebuffer glBindFramebufferOES GL FRA