Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在现代OpenGL中显示摄像机视频流的最佳方法_C++_Opengl_Video_Video Streaming_Augmented Reality - Fatal编程技术网

C++ 在现代OpenGL中显示摄像机视频流的最佳方法

C++ 在现代OpenGL中显示摄像机视频流的最佳方法,c++,opengl,video,video-streaming,augmented-reality,C++,Opengl,Video,Video Streaming,Augmented Reality,我正在OpenGL中创建一个增强现实应用程序,我想用虚拟对象增强Kinect捕获的视频流。我发现一些使用固定函数管道OpenGL运行的代码,它创建了一个glTexImage2D,用图像数据填充它,然后用glTexCoord2f创建一个glu四元组来填充屏幕 我正在寻找一个优化的解决方案,只使用现代的、基于着色器的OpenGL,它也能够处理高清视频流 我想我希望回答我的问题的是一个关于如何在OpenGL中实现相机视频流渲染的可能性列表,我可以从中选择最适合我需要的一个。PBO(像素缓冲对象)用于流

我正在OpenGL中创建一个增强现实应用程序,我想用虚拟对象增强Kinect捕获的视频流。我发现一些使用固定函数管道OpenGL运行的代码,它创建了一个
glTexImage2D
,用图像数据填充它,然后用
glTexCoord2f
创建一个
glu四元组
来填充屏幕

我正在寻找一个优化的解决方案,只使用现代的、基于着色器的OpenGL,它也能够处理高清视频流


我想我希望回答我的问题的是一个关于如何在OpenGL中实现相机视频流渲染的可能性列表,我可以从中选择最适合我需要的一个。

PBO(像素缓冲对象)用于流纹理。此外,一些现代硬件能够将视频捕获直接流式传输到GPU内存(NVIDIA的GPUDirect,但可能还有其他解决方案),感谢您的回复!我读过PBO与纹理的结合,这似乎是一个非常有效的解决方案!但据我所知,PBO仅用于将像素传输到GPU。除了将视频图像存储在纹理中,还有其他方法渲染视频图像吗?纹理只是一种OpenGL抽象,用于N维颜色数组,具有一些可用的过滤选项。在OpenGL方面,您还希望它是什么样的类型?谢谢!使用纹理无疑是最明显的方法。着色器存储缓冲区对象如何?另一个后续问题:我最近阅读了有关
图像
变量的文章,这些变量可以用来代替着色器中的
采样器
来访问像素数据。这两者之间的主要区别是什么?