问题标签 [glreadpixels]
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 - glReadPixels 字节浮动
我正在尝试使用 glReadPixels 在 OpenGL ES 中检索颜色。我用 float[] 设置对象的颜色,例如 {0.0f,0.5f,0.2f,1.0f} 如何将 glReadPixels 值转换为相同的 float[],因为它是无符号字节?
设置颜色:
获取颜色:
我不知道这是否已经被问过/回答过,但我还没有找到解决方案,我已经尝试了很长时间。
java - Android:glReadpixels 大于视口?
我需要捕获比屏幕宽度更多的像素以保存更高分辨率的图像。我认为唯一的两个选择是使用一些 Matrix 命令将更多像素打包到屏幕中,或者使实际视图大于屏幕(我认为这是不可能的。)我可能应该让人们知道我是使用 OpenGL ES 2。有什么帮助吗?
opengl - 如何检查 OpenGL 画布上的像素是否已填充?
我试图检测特定像素是否在 OpenGL 中被填充,以实现洪水填充算法。所以,我搜索并找到了 glreadpixel 函数,但我不知道如何使用这个函数以及它是否可以解决我的问题。
ios - OpenGL ES 到 iOS 中的视频(使用 iOS 5 纹理缓存渲染到纹理)
你知道 Apple 的带有CameraRipple效果的示例代码吗?好吧,在openGL完成了水的所有凉爽效果之后,我正试图将相机输出记录在一个文件中。
我已经用 glReadPixels 完成了,我在其中读取了 void * buffer 中的所有像素,创建 CVPixelBufferRef 并将其附加到 AVAssetWriterInputPixelBufferAdaptor,但它太慢了,因为 readPixels 需要大量时间。我发现使用 FBO 和纹理现金你可以做同样的事情,但速度更快。这是我在 Apple 使用的 drawInRect 方法中的代码:
它录制了一段视频,而且速度很快,但视频只是黑色的,我认为 textureCashRef 不是正确的,还是我填错了。
作为更新,这是我尝试过的另一种方式。我肯定错过了什么。在 viewDidLoad 中,设置 openGL 上下文后,我执行以下操作:
然后在 drawInRect: 我这样做:
然而它在渲染纹理上因 bad_acsess 而崩溃,它不是零,而是 0x000000001。
更新
使用下面的代码,我实际上设法提取了视频文件,但有一些绿色和红色闪烁。我使用 BGRA pixelFormatType。
这里我创建了纹理缓存:
然后在 drawInRect 我称之为:
我知道我可以通过不在这里做所有这些事情来优化它,但我一直想让它工作。在 cleanUpTextures 中,我使用以下命令刷新 textureCache:
RGBA 的东西可能有问题,或者我不知道,但它似乎仍然有点错误的缓存。
objective-c - glReadPixels 读取“帧外”区域
我绘制 OpenGL 3200x2000 大小的纹理四边形。OpenGLView 帧大小设置为 940x560。它按应有的方式绘制四边形。当我尝试将其保存为图像(使用 glReadPixels)并将 glReadPixels 区域从(0,0)设置为(3200,2000)时发包。它创建 3200x2000 像素数据,但是当我将其保存到文件时,我看到小图像部分(从左下角 940x560)而整个其他区域都是黑色的。那么如何读取屏幕外区域呢?我尝试使用 Framebuffer,但它非常复杂,在创建它时出错等等......还有其他解决方案吗?
情况可视化:
原始图像如下所示(3200x2000):
OpenGLView 看起来像这样(940x560):
保存的图像看起来像这样(3200x2000):
ios - 用 glReadPixels 读取纹理字节?
我想将原始纹理数据转储到磁盘(稍后再读),我不确定 glReadPixel 是否会从当前绑定的纹理中读取。
如何从纹理中读取缓冲区?
android - 如何通过 glreadpixels 获取颜色?
我正在尝试在 Android 屏幕上获取触摸点的颜色。但它只显示 RGB = (0, 0, 0) 值。我已经搜索过其他网站。它说我应该在下面添加一些代码,但它没有改变任何东西。
所以任何建议都会提前感谢。
opengl-es-2.0 - glreadpixel gl_depth_component 返回 0?
我正在寻找一个立方体和一条线的交点的解决方案。所以我用
我显示了 zz ,但结果为 0。所以当我触摸立方体(实际上是在 2d 屏幕上)时,如何获得立方体的深度缓冲区值。我使用 GLES20 和 Android API level15。我的代码如下。
顺便说一句,挑选颜色效果很好。
谢谢!
android - glReadPixels GL_RGBA 返回 ARGB 像素
在 NDK、Android 中。调用下一条指令来获取视口像素。我期望像素为 RGBA 格式,但我得到的是 ARGB 像素。有什么问题或者在 glReadPixels 之前设置了吗?
ios - glReadPixel 停止使用 iOS6 Beta
我目前在 Appstore 中有一个使用 Cocos2D 框架的应用程序。对于碰撞检测,我使用 glReadPixels。屏幕只有白色和黑色像素,检测到黑色像素意味着碰撞。在 iOS 5.1.1 之前一切正常,但在 iOS6 Beta(全部)中 glReadPixels 停止工作。现在 glReadPixels 返回的 RGB 值始终为 0,0,0。
有谁知道出了什么问题或如何解决?
非常感谢您的帮助!