问题标签 [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.

0 投票
1 回答
7312 浏览

android - 在 android Native 代码 (ndk) 中使用 OpenGL ES 2.0 FrameBuffer (FBO) 和 Stencil

我正在尝试使用 NDK (r5b) 生成一个帧缓冲区对象并在本机 android 应用程序中使用模板。目标设备运行 froyo 2.2,支持 OpenGL ES 2.0。

所以,我一直在我的 c++ 本机库中编写大量 gl 代码,除此之外没有遇到任何问题。我似乎无法让它发挥作用。

这是用于创建帧缓冲区的代码片段。完整性很好,但屏幕仍然完全黑。就像我正在创建的 fbo 并没有真正绑定到由应用程序的 Java 部分创建的 gl 表面。我的应用程序代码的其余部分都很好,如果我删除了 fbo 创建和绑定,除了我没有我的应用程序需要的模板工作之外,一切都很好。

我也尝试过渲染到 2D 纹理而不是渲染缓冲区……也没有用。

那么,有没有办法解决这个问题?我这里有什么问题吗?如果有人有任何想法,请让我知道....花了太多时间来查找这个问题...呵呵;)

提前致谢 !

干杯!


编辑 :

好的,我已经设法使模板缓冲区工作,但 FBO 只是不工作。我认为android不完全支持OpenGL ES 2.0(顺便说一句,这里使用r5b)。我认为方法存根已定义,但未完全实现。或者创建的 GlSurfaceView 没有与 FBO 正确链接。

至于模板缓冲区,我必须这样做

并删除 glDepthMask 的使用,以使它们正常工作。

0 投票
2 回答
1308 浏览

android - 如何访问 Android 中的主屏幕/OpenGL 缓冲区?

我想访问 Android 中的主(OpenGL)屏幕以实现一些叠加 3D 效果。有可能这样做吗?
如果是,我该怎么做?
当修改这个上下文时,我的应用程序应该是一个服务,对吧?

0 投票
2 回答
375 浏览

keyboard - 驱动程序模拟按键进入另一个进程

如何在 Linux 上模拟给定进程中按下的键?Xorg 没有运行,输入由 DirectFB 处理

0 投票
1 回答
5031 浏览

opengl - 快速交换帧缓冲区 OpenGL

我最近读到,简单地切换帧缓冲区对象的渲染目标比切换帧缓冲区对象快得多。

听起来很极端,这是否意味着我应该只使用一个帧缓冲区对象并且只切换它的目标?

编辑:我将“交换”更改为“切换”以避免混淆。通过切换我的意思是绑定一个新的帧缓冲区来代替旧的。不要与用于交换前端和后端缓冲区的 SwapBuffers() 调用混淆。

0 投票
0 回答
497 浏览

android-ndk - 即使在使用系统权限签名后,读取帧缓冲区也被拒绝

我使用系统权限签署了我的应用程序,并使用 ndk 从 /dev/graphics/fb0 读取。但我得到一个权限被拒绝的错误。系统权限不是假设允许您做任何事情吗?感谢您的时间。

0 投票
2 回答
25425 浏览

opengl - 使用像素缓冲区对象 (PBO) 从帧缓冲区对象 (FBO) 读取像素值

我可以使用像素缓冲区对象(PBO)直接从 FBO 读取像素值(即使用 glReadPixels)(即,当 FBO 仍然连接时)?

如是,

  1. 使用 PBO 和 FBO 的优缺点是什么?
  2. 以下代码有什么问题

{

以下 glReadPixels 工作正常

以下 glReadPixels 不起作用:(

0 投票
2 回答
6052 浏览

opengl - 帧缓冲区对象 (FBO) 与渲染和深度缓冲区关系

我在网上看到了许多示例(例如),它们执行以下操作

  • 创建和绑定 FBO
  • 创建和绑定缓冲区(纹理、渲染、深度、模板)
  • 然后,解除绑定缓冲区
  • 要使用 FBO - 绑定 FBO,请先完成工作,然后取消绑定 FBO
  • 但是,也可以使用纹理缓冲区绑定纹理缓冲区以进行读取、写入等操作
  • 但从未见过重新绑定其他缓冲区(渲染、深度、模板),为什么?

BUFFERS 创建和绑定/取消绑定的示例(以下代码仅用于展示我解释的内容并完美运行),

1. 为什么我们不需要再次绑定所有的 BUFFERS(我的意思是在使用/绘制对象到 FBO 时)?

2. 幕后发生了什么?

编辑:附加-> 绑定和解除附加-> 取消绑定

0 投票
2 回答
1950 浏览

opengl - 使用帧缓冲区对象 (FBO) 或?

情况:生成具有不同变换和旋转的形状和相应边缘的 N 个样本(使用 Sobel 滤波器或我自己的),而视口(大小 = 600*600)和相机保持不变。即将有 N 个样本 + N 个对应的边。

我想这样做,

使用一个带有 2 个渲染缓冲区的 FBO [即每个缓冲区的大小将为 = (N *600) * 600]- N 个形状的第一个和相应形状的边缘的第二个

问题:

  1. 实现上述目标的最佳方法是什么?
  2. 虽然视口大小为 600*600 像素,但形状仅占 50*50 像素左右。那么是否有任何有效的方法可以仅在第二个缓冲区上对边界框/AABB 区域应用边缘检测?也只能以有效的方式读取 2N 个边界框(N 个样本 + N 个对应边)?
0 投票
1 回答
2818 浏览

java - OpenGL帧缓冲区渲染到纹理不起作用

我正在尝试使用帧缓冲区来使用 Java 和 JOGL 创建发光效果,但我遇到了问题。目前,我的目标是将带有照明纹理的宇宙飞船模型渲染到帧缓冲区纹理,然后将帧缓冲区纹理绘制到三角形扇形四边形。我正在使用 OpenGL 2.1 和/或 2.0 运行这是我用于生成帧缓冲区及其纹理的代码:

在我的渲染循环中,我正在执行以下操作:

当我运行它时,我的四边形被绘制了,但纹理全是黑色的。当我在渲染循环中注释掉任何帧缓冲区绑定时,模型会按原样渲染,所以我知道我的着色器代码没有任何问题。当我用从文件加载的另一个纹理替换 _frameBufferTextureId 时,该纹理被正确绘制,所以我知道我的纹理坐标正在工作,而且我的着色器代码也是正确的。不过,每当我绑定我的帧缓冲区时,我都没有得到任何我期望的结果。我也在验证我的帧缓冲区,它是 GL_FRAMEBUFFER_COMPLETE。

我已经在 stackoverflow 上阅读了无数的教程和帖子,但我一生都无法弄清楚我做错了什么。任何帮助都会很棒!谢谢。

0 投票
2 回答
879 浏览

opengl - OpenCV 2.2 窗口导致 OpenGL 出现问题

这是非常简单的代码..唯一的问题是我多次重复相同的代码以进行详细调试。详细信息:OpenGL 版本 3.3.0、Window 7 OS 和 VS2008、OpenCV 2.2.0。

引擎盖下发生了一些事情。那是什么?...好吧,即使 OpenCV 窗口正在接管默认缓冲区,至少 error_code7 应该为 0(即没有错误)。我用帧缓冲对象和默认的 glut 隐藏窗口测试了代码。还让我告诉你,我必须使用帧缓冲区对象来达到我的目的。所以,不能使用相同的默认窗口来绘制和显示。