问题标签 [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.
c# - 为什么我会得到一个带有帧缓冲区的白色方块?
我正在尝试将帧缓冲区的使用添加到我的 OpenGL (OpenTK) 项目中。
进入我一开始添加的初始化方法:this.RenderBufferTex = GL.GenTexture();
this.glc
是场景运行的 GLControl。
在渲染之前我添加了
其次是 GL.Clear() 和我所有用于绘制场景的旧代码。
然后是显示渲染场景的方法:
我从中得到的结果是一个白色的正方形填充了我的屏幕左侧(所以它看起来是我的屏幕高度的正方形)。
我究竟做错了什么?
arm - 基于 ARM 平台的 X windows
我正在使用基于手臂的参考平台。在那我有VGA显示器。如果我想为那个平台开发一个图像查看器软件,我需要学习 X windows 编程吗?请提供您的宝贵意见。这是否涉及帧缓冲区概念?rgds, 亚杰
android - 在 Android 和 OpenGL ES 2.0 中将纹理保存到文件
据我了解,将纹理发送到 OGLES2 是使用 完成的GLUtils.texImage2D
,即我将纹理上传到 GPU。那么如何将其发送回 Android(从 GPU 下载)?
谢谢!
performance - glReadPixels() 读取 GL_DEPTH_COMPONENT 很慢
我的应用程序依赖于从帧缓冲区读取深度信息。我已经用 glReadPixels(0, 0, width, height, GL_DEPTH_COMPONENT, GL_FLOAT, &depth_data) 实现了这个
然而,这运行速度非常慢,它使我的应用程序从平稳的 30fps 变为滞后的 3fps。如果我尝试读取其他维度或数据,它会在可接受的水平上运行。
概述:
- 没有 glReadPixels -> 每秒 30 帧
- glReadPixels(0, 0, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth_data); -> 每秒 20 帧,可接受
- glReadPixels(0, 0, 宽度, 高度, GL_RED, GL_FLOAT, &depth_data); -> 每秒 20 帧,可接受
- glReadPixels(0, 0, 宽度, 高度, GL_DEPTH_COMPONENT, GL_FLOAT, &depth_data); -> 每秒 3 帧,不可接受
与其他调用相比,为什么最后一个调用如此缓慢?有什么办法可以补救吗?
宽度 x 高度大约为 100 x 1000,随着尺寸的增加,调用变得越来越慢。
我也尝试过使用像素缓冲区对象,但这对性能没有显着影响,它只会将缓慢延迟到 glMapBuffer() 调用。
(我已经在 MacBook Air nVidia 320m graphics OS X 10.6 上对此进行了测试,奇怪的是,我的旧 MacBook Intel GMA x3100 读取深度缓冲区的速度约为 15 fps。)
更新:将 GLUT_MULTISAMPLE 排除在 glutInitDisplayMode 选项之外,让应用程序再次恢复到平滑的 20fps 带来了天壤之别。我不知道该选项首先是做什么的,谁能解释一下?
linux - 用于嵌入式 Linux 的全功能 HTML 渲染引擎,例如 WebKit/Gecko?
我想在 Linux 环境下使用 HTML+CSS+JavaScript 开发触摸屏设备的用户界面,需要合适的渲染引擎。
有问题的设备将有一个 400 到 900 MHz 时钟的 ARM CPU、一个 VGA 或 WVGA 显示器和大约 256 MB 或更多的标准 Debian Linux(最小安装)。
理想情况下,渲染引擎将直接访问 /dev/fb0 和鼠标事件。由于浏览器只是用作渲染引擎,我不需要/想要任何 GUI - 没有窗口、没有选项卡、没有对话框,只有一个大量使用 JavaScript 与用户交互的全屏 HTML 页面(如动态网页)。
如果可以避免 Qt / GTK / DirectFB 等(以减少内存开销和启动时间),那就太好了,但当然这不是绝对必要的。
当然,WebKit 和 Gecko 出现在我的脑海中,但它们都难以理解和编译。也许众多分叉中的一个接近我需要的(我搜索但到目前为止没有运气)?
opengl - 渲染到屏幕外缓冲区然后渲染到纹理时如何使用深度测试
我正在将我的场景渲染为纹理。除了深度测试不起作用之外,这很好用。如果渲染到屏幕外纹理,如何启用深度测试?我正在使用 FrameBuffer 类http://www.opengl.org/news/comments/framebuffer_object_fbo_c_class_available_with_example_application/
iphone - 对于某些纹理大小,glFramebufferTexture2D 在 iPhone 上失败
当我尝试将纹理附加到帧缓冲区时,glCheckFramebufferStatus 报告某些纹理大小的 GL_FRAMEBUFFER_UNSUPPORTED。我已经在第 2 代和第 4 代 iPod Touch 上进行了测试。两个模型之间失败的纹理大小不相同。
以下是一些有趣的结果:
第二代 - 8x8 失败,16x8 失败,但 8x16 成功!
第 4 代 - 8x8 成功,8x16 成功,但 16x8 失败!
这是我用来测试附加不同大小纹理的一些代码:
似乎只要两个尺寸至少为 16 像素,那么两个设备上的一切都可以正常工作。不过,困扰我的是,我还没有看到任何关于附加到帧缓冲区对象的纹理大小要求的文章。目前,一种解决方案是将我的纹理大小限制为至少 16 像素,但这可能会在未来中断或已经在我未尝试过的某些设备上中断?我也可以在启动时执行此测试代码,以便动态确定允许哪些纹理大小,但这似乎有点做作。
qt4 - 在 Qt/Embedded 中将 QWSWindow 的表面放置在 QGLWidget 上
我正在尝试为嵌入式 Linux 的 Qt 编写一个 QScreen 驱动程序,以便能够在帧缓冲区上集成 OpenGL 功能。目前,我的驱动程序在屏幕上同时拥有两个 QWS 窗口和 EGL 表面。我使用方法exposeRegion、blit 和solidFill 的默认实现。不幸的是,我注意到如果我尝试在 EGL 表面上放置 QWS 窗口,我会发现 EGL 表面总是在 QWS 窗口之上。
当 EGL 表面不是顶层窗口时,是否有可能以某种方式允许 QWS 窗口越过 EGL 表面?我怎样才能做到这一点?
我知道 OpenGL 直接绘制到屏幕上,但我认为中断刷新过程应该允许 QScreen 驱动程序在其上绘制窗口,但这似乎没有发生。
谢谢!
iphone - iPhone opengl ES 将帧缓冲区复制到渲染缓冲区中
嘿伙计们,
我正在用opengl es制作动画。动画应该绘制正方形。这已经可以了,但是如何将帧缓冲区中的内容复制到渲染缓冲区中,问题是每一帧只有一个正方形在显示器上。
当我在模拟器中测试它并且它工作时。对于每个新帧,都会绘制一个已知的正方形,而其他已经绘制的正方形仍在屏幕上。但是当我在设备上测试它时它没有工作。屏幕只是在闪烁。
我认为发生这种情况是因为我的 Mac 和其他所有计算机一样使用双缓冲,而 iPhone 没有。
请帮我。
这就是我设置帧缓冲区的方式:
我还写了一个 setupView Methode:
这是我的 drawView 方法:
const GLfloat squareVertices[] = { -1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f, 0.0f, -1.0f, -1.0f, 0.0f };
usb - udev 和 usb 帧缓冲设备
我想为某个 USB 帧缓冲设备 (DisplayLink) 获取一个固定的设备名称。使用供应商 ID,我可以使用 udev 规则获得匹配:SUBSYSTEM=="usb", ATTRS{idVendor}=="17e9", GROUP="video"
但是使用 SYMLINK+="fbdl" 我没有获得到 /dev/fbX 设备(X=1,2,3..)的符号链接,而是到 bus/usb/... - 这是不一样的:使用这个设备文件(链接)在 xorg.conf 中不起作用。设置 NAME 而不是 SYMLINK 是相同的:真实设备 /dev/fbX 停留在那里并工作,给定的 NAME 是另外创建的,但是是其他一些目标(不起作用)。这里发生了什么??如果像 /dev/input/eventX 和 SYMLINK 一样,你会得到一个指向那个 eventX 的链接。为什么不在这里?
谢谢!(Ubuntu 11.04)