问题标签 [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.
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 的使用,以使它们正常工作。
android - 如何访问 Android 中的主屏幕/OpenGL 缓冲区?
我想访问 Android 中的主(OpenGL)屏幕以实现一些叠加 3D 效果。有可能这样做吗?
如果是,我该怎么做?
当修改这个上下文时,我的应用程序应该是一个服务,对吧?
keyboard - 驱动程序模拟按键进入另一个进程
如何在 Linux 上模拟给定进程中按下的键?Xorg 没有运行,输入由 DirectFB 处理
opengl - 快速交换帧缓冲区 OpenGL
我最近读到,简单地切换帧缓冲区对象的渲染目标比切换帧缓冲区对象快得多。
听起来很极端,这是否意味着我应该只使用一个帧缓冲区对象并且只切换它的目标?
编辑:我将“交换”更改为“切换”以避免混淆。通过切换我的意思是绑定一个新的帧缓冲区来代替旧的。不要与用于交换前端和后端缓冲区的 SwapBuffers() 调用混淆。
android-ndk - 即使在使用系统权限签名后,读取帧缓冲区也被拒绝
我使用系统权限签署了我的应用程序,并使用 ndk 从 /dev/graphics/fb0 读取。但我得到一个权限被拒绝的错误。系统权限不是假设允许您做任何事情吗?感谢您的时间。
opengl - 使用像素缓冲区对象 (PBO) 从帧缓冲区对象 (FBO) 读取像素值
我可以使用像素缓冲区对象(PBO)直接从 FBO 读取像素值(即使用 glReadPixels)(即,当 FBO 仍然连接时)?
如是,
- 使用 PBO 和 FBO 的优缺点是什么?
- 以下代码有什么问题
{
以下 glReadPixels 工作正常
以下 glReadPixels 不起作用:(
opengl - 帧缓冲区对象 (FBO) 与渲染和深度缓冲区关系
我在网上看到了许多示例(例如),它们执行以下操作
- 创建和绑定 FBO
- 创建和绑定缓冲区(纹理、渲染、深度、模板)
- 然后,解除绑定缓冲区
- 要使用 FBO - 绑定 FBO,请先完成工作,然后取消绑定 FBO
- 但是,也可以使用纹理缓冲区绑定纹理缓冲区以进行读取、写入等操作
- 但从未见过重新绑定其他缓冲区(渲染、深度、模板),为什么?
BUFFERS 创建和绑定/取消绑定的示例(以下代码仅用于展示我解释的内容并完美运行),
1. 为什么我们不需要再次绑定所有的 BUFFERS(我的意思是在使用/绘制对象到 FBO 时)?
2. 幕后发生了什么?
编辑:附加-> 绑定和解除附加-> 取消绑定
opengl - 使用帧缓冲区对象 (FBO) 或?
情况:生成具有不同变换和旋转的形状和相应边缘的 N 个样本(使用 Sobel 滤波器或我自己的),而视口(大小 = 600*600)和相机保持不变。即将有 N 个样本 + N 个对应的边。
我想这样做,
使用一个带有 2 个渲染缓冲区的 FBO [即每个缓冲区的大小将为 = (N *600) * 600]- N 个形状的第一个和相应形状的边缘的第二个
问题:
- 实现上述目标的最佳方法是什么?
- 虽然视口大小为 600*600 像素,但形状仅占 50*50 像素左右。那么是否有任何有效的方法可以仅在第二个缓冲区上对边界框/AABB 区域应用边缘检测?也只能以有效的方式读取 2N 个边界框(N 个样本 + N 个对应边)?
java - OpenGL帧缓冲区渲染到纹理不起作用
我正在尝试使用帧缓冲区来使用 Java 和 JOGL 创建发光效果,但我遇到了问题。目前,我的目标是将带有照明纹理的宇宙飞船模型渲染到帧缓冲区纹理,然后将帧缓冲区纹理绘制到三角形扇形四边形。我正在使用 OpenGL 2.1 和/或 2.0 运行这是我用于生成帧缓冲区及其纹理的代码:
在我的渲染循环中,我正在执行以下操作:
当我运行它时,我的四边形被绘制了,但纹理全是黑色的。当我在渲染循环中注释掉任何帧缓冲区绑定时,模型会按原样渲染,所以我知道我的着色器代码没有任何问题。当我用从文件加载的另一个纹理替换 _frameBufferTextureId 时,该纹理被正确绘制,所以我知道我的纹理坐标正在工作,而且我的着色器代码也是正确的。不过,每当我绑定我的帧缓冲区时,我都没有得到任何我期望的结果。我也在验证我的帧缓冲区,它是 GL_FRAMEBUFFER_COMPLETE。
我已经在 stackoverflow 上阅读了无数的教程和帖子,但我一生都无法弄清楚我做错了什么。任何帮助都会很棒!谢谢。
opengl - OpenCV 2.2 窗口导致 OpenGL 出现问题
这是非常简单的代码..唯一的问题是我多次重复相同的代码以进行详细调试。详细信息:OpenGL 版本 3.3.0、Window 7 OS 和 VS2008、OpenCV 2.2.0。
引擎盖下发生了一些事情。那是什么?...好吧,即使 OpenCV 窗口正在接管默认缓冲区,至少 error_code7 应该为 0(即没有错误)。我用帧缓冲对象和默认的 glut 隐藏窗口测试了代码。还让我告诉你,我必须使用帧缓冲区对象来达到我的目的。所以,不能使用相同的默认窗口来绘制和显示。