问题标签 [framebuffer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 从 iPhone 上的屏幕外 FBO 写入然后读取;适用于模拟器但不适用于设备?
我正在尝试在 iPhone 上进行一些图像处理,基于 Apple 的 GLImageProcessing 示例。
最终我想做的是将图像加载到纹理中,执行示例代码中的一个或多个操作(色调、饱和度、亮度等),然后将生成的图像读回以供以后处理/保存。在大多数情况下,这永远不需要触摸屏幕,所以我认为 FBO 可能是要走的路。
首先,我拼凑了一个小例子,它创建了一个屏幕外 FBO,绘制到它,然后将数据作为图像读回。当这在模拟器中完美运行时,我感到很兴奋,然后当我意识到我只是在实际设备上出现黑屏时感到沮丧。
免责声明:我的 OpenGL 已经足够老了,以至于我已经有相当多的学习曲线去 OpenGL ES,而且我从来都不是一个纹理向导。我确实知道该设备在帧缓冲区访问方面与模拟器具有不同的特性(设备上的强制屏幕外 FBO 和交换,模拟器上的直接访问),但我无法找到我做错了什么,即使经过相当广泛的搜索。
有什么建议么?
编辑:
答案当然是位图格式应该是 GL_RGBA,而不是 GL_BGRA:
c++ - OpenGL 缓冲区的状态如何在程序运行之间持续存在?
我正在编写一个绘制到辅助缓冲区的 OpenGL 程序,然后辅助缓冲区的内容在被 GL_RETURN-ed 到后台缓冲区之前累积到累积缓冲区(基本上是合成到屏幕上)。简而言之,我正在做一种运动模糊。然而奇怪的是,当我重新编译并重新运行我的程序时,我看到了之前程序运行的辅助/累积缓冲区的内容。这根本不符合逻辑。我是不是误会了什么,当程序重新启动时,OpenGL的状态不应该完全重置吗?
我正在 GeForce Go 6150 上的 Gentoo Linux nVidia Drivers 195.36.31 中编写 SDL/OpenGL 程序。
android - 如何在android中读取当前帧缓冲区?
有没有办法读取当前屏幕的帧缓冲区?我搜索了一些有关帧缓冲区的数据。有人使用了 glReadPixels 方法,但信息还不够。有谁知道如何详细读取当前帧缓冲区?
感谢您的帮助。
opengl - OpenGL:渲染到纹理和帧缓冲区对象的问题
我想将场景渲染为最初为空的纹理。为此,我使用了一个帧缓冲区对象,我将一个空的 2d 纹理和一个深度缓冲区附加到该对象上。设置完成后,至于测试,我在场景中绘制了一个简单的四边形。每个顶点都有不同的颜色,所以我最终希望纹理中有一个颜色插值的四边形。然后我使用包含四边形的纹理并将其映射到另一个四边形上。所以最终,我的默认帧缓冲区中有一个四边形,它的纹理包含一个彩色四边形。我希望这不会太混乱......
无论如何,我必须在这里遗漏一些东西,因为我得到的只是灰色纹理。我基本上遵循了这个非常简单的说明。但是,我无法完全弄清楚我在这里缺少什么。如果有人能给我一个线索,我将不胜感激。
谢谢沃尔特
这是我到目前为止的代码: // 创建帧缓冲区对象 glGenFramebuffers(1, &frameBufferObject);
预期结果:
- 黄色背景上带有彩色四边形的纹理
- 该纹理映射到另一个四边形
实际结果:
- 灰色的纹理
- 纹理可以成功映射到另一个四边形
编辑:我错过了提到错误处理。这就是我检查错误的方式。它包括 Paul S 建议的其他案例。感谢那。
编辑 2:这是我用来检查 GL 错误的方法
opengl - glReadPixels GL_DEPTH_COMPONENT 和颜色
如何从任何 OpenGL 绘图中获取深度和颜色信息?我想将深度图像和彩色图像保存到磁盘。我尝试的是以下内容:
但看起来只有深度数组被填充了?
windows - 是否可以在上下文/线程之间共享 opengl 帧缓冲区对象?
我想在一个线程中渲染我的场景,然后在另一个线程拥有的窗口中对结果进行 blit。为了避免将帧缓冲区读回 CPU 内存,我想使用一个帧缓冲区对象。到目前为止,我还不能让它工作(白色纹理),这让我相信这不受 opengl 支持。
- 是否可以在不同的上下文之间共享帧缓冲区对象?
- 考虑到对象一次只被一个线程绑定,是否可以在不同线程之间共享一个帧缓冲区对象?
如果有人可以指出我在文档中描述的位置,那将是一个奖励。
android - Android 图形内部结构
我还没有找到关于Android图形系统如何工作的明确解释,具体来说,它是否使用显示服务器,是基于DirectFB还是X11等。
根据我的拼凑,Android 依赖于Linux 帧缓冲区。我还没有找到太多关于Android使用哪种显示服务器或窗口管理器来多路访问帧缓冲区,所以任何指针都将不胜感激!
最后,据我了解,ARM 指令集提供了加速 OpenGL 的指令,但它如何与显示服务器集成尚不清楚,即。客户端应用程序是否协商客户端直接写入的共享内存缓冲区?
平台加速器的 OpenGL 库是开源的吗?我发现一些参考资料表明它们是闭源二进制文件。同样,任何指针都将不胜感激。
c - 写入帧缓冲区
我正在使用在 RHEL 6.0 操作系统上运行的带有内置图形加速器 GMA-HD 的 i5 内核。我需要测试图形驱动程序的图形加速功能(我发现它是我 PC 中的 i915)。我使用以下代码(我从互联网上获得了一些修改)来写入帧缓冲区。
运行上述代码后,显示未发现任何变化,但“cat /dev/fb0”显示了一些数据。有人可以解释为什么屏幕上什么都看不到吗?(我还发现 fb0 对应于帧缓冲区 'inteldrmfb' 。)
提前致谢,
尼拉吉新台币
c# - OpenGL 将 ColorAttachment0 从 Renderbuffer 复制到 Texture2D
我正在使用 OpenTK 和 C#。我正在渲染到渲染缓冲区,我需要将其内容(ColorAttachment0)复制到 Texture2D,以便我可以对其进行一些后期处理,并将其绘制到屏幕上。我该怎么做呢?我会使用纹理而不是渲染缓冲区,但我需要对帧缓冲区进行抗锯齿处理,并且使用 GL.RenderbufferStorageMultisample 是我知道的唯一方法。
linux-device-driver - 自己的 6x6x6 RGB 显示器的帧缓冲驱动程序?
我在嵌入式设备上有一个 6x6x6 RGB 显示器。我是否在 linux 中为此类 18 位显示器编写了自己的帧缓冲驱动程序?
蒂亚!