从OpenGL shader获取数据
Get data back from OpenGL shader?
我的计算机不支持GPU上的OpenCL或OpenGL计算着色器,所以我想知道从顶点或片段着色器获取数据是否会是一个直接的过程?
我的目标是将2个纹理传递给着色器,并让着色器计算机确定一个纹理存在于另一个纹理中的位置。有像素匹配的地方。我需要从着色器中检索可能匹配的位置。
这合理吗?如果有,我该怎么做呢?我有基本的OpenGL知识,我已经建立了一个程序,绘制多边形与颜色。我真的需要一种方法来获取位置值从着色器。
你可以渲染到内存而不是屏幕,然后从中获取数据。
- 创建并绑定Framebuffer对象
- 创建一个Renderbuffer对象并将其附加到Framebuffer对象 渲染你的场景。结果将以绑定的Framebuffer对象结束,而不是在屏幕上。
- 使用
glReadPixels
从Framebuffer对象中提取数据。
请注意,glReadPixels
,像大多数从GPU内存提取数据回主存的方法一样,是缓慢的,可能不适合实时应用程序。但如果你没有这样的功能,比如计算着色器,或者你愿意用像素缓冲对象异步地做,这是你能做的最好的。
相关文章:
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 如何在 C++ 中获取中继器的委托数据?
- 从 Rcpp Catch 测试中获取有关"inst/extdata"的数据
- C++ - 忽略并从其他文件获取数据
- 如何获取C++字符数据类型的地址
- 从存储为 Windows 资源 (c++) 的 png 中获取 png 文件数据
- 很好的语法来获取对向量/数组数据的大小引用?
- 如何从网站获取数据并将其传输到数据库?
- 获取文件数据预处理器宏
- 与多个 for 循环与单个 for 循环 wrt 相关的性能从多映射获取数据
- 如何在新的派生对象中获取基本对象的数据?
- 如何从 CSV 获取数据并将其存储在 C++ 中的表对象中
- 如何使用CAPL的诊断功能获取CAN传输的数据(256字节)?
- 获取 R 数据帧的内存地址
- 当 c++ 需要一种数据类型并获取另一种数据类型时会发生什么?
- 从更改日志获取最新的 USN 数据
- 套接字:在没有memcpy的情况下,使用recvfrom将UDP数据获取到字对齐的缓冲区
- 如何将控制台输出数据获取到命令提示符下
- 将零mq消息数据获取到std::vector<char>
- 从指定坐标[x, y]处的位图数据获取像素颜色