前面已经记录了从显存中获取渲染结果并保存为图像的方法
OpenGL:如何从缓存中读取颜色、深度信息【转】_六月的翅膀的博客-CSDN博客

并已经验证了上述方法可以完美的保存图像,但是保存深度信息部分还是出错了。

    int WINDOW_WIDTH = (int)_width;int WINDOW_HEIGHT = (int)_height;int tmpPixelSize = WINDOW_WIDTH * WINDOW_HEIGHT;GLfloat* depth_value = new GLfloat[tmpPixelSize];//从深度缓冲区读取数据glReadPixels(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, GL_DEPTH_COMPONENT, GL_FLOAT, depth_value);//输出深度值,数据太多,这里只输出了部分for (int i = WINDOW_WIDTH / 2; i < WINDOW_WIDTH / 2 + 1; i++) {for (int j = WINDOW_HEIGHT / 2; j < WINDOW_HEIGHT / 2 + 10; j++) {qDebug() << depth_value[i * WINDOW_HEIGHT + j];qDebug() << "-----";}}delete[] depth_value;

具体出错是所有位置的深度信息都为0。尝试过改变数据类型GLfloat为其他类型,依旧。

终于,在这里找到了一个回答:qt - glReadPixels GL_DEPTH_COMPONENT does not work in mousePressEvent - Stack Overflowhttps://stackoverflow.com/questions/51034014/glreadpixels-gl-depth-component-does-not-work-in-mousepressevent

【OpenGL operations should be performed only when an OpenGL context is active. This is true in the paintGL() method because this is probably set by the framework for you. You can't assume the OpenGL is active in other methods, like in other event responding methods and callbacks as mousePressEvent(), because those methods can also be run by a different thread where the OpenGL context is not active. 】

就是说异步线程里使用的原因。

原因找到了,试一下吧再。

OpenGL:关于获取渲染结果的深度信息的问题相关推荐

  1. OpenGL:关于获取渲染结果的深度信息的问题(二)

    前面记录了一下存在的问题和大致的解决方法 OpenGL:关于获取渲染结果的深度信息的问题_六月的翅膀的博客-CSDN博客 下面就验证一下 先定义一个指针变量和一个成员函数 GLfloat* depth ...

  2. 华为AREngine根据深度图获取深度信息

    我们知道华为AREngine可以根据接口acquireDepthImage()获取得到深度图,获取得到的深度图是DEPTH16格式的,AREngine中又没有给出例子怎样根据深度图求得深度信息,吐槽一 ...

  3. matlab实现获取tof,一种结合TOF技术和双目视觉的深度信息获取装置及其方法与流程...

    本发明涉及深度传感器.机器视觉.三维重建.双目立体视觉.TOF技术领域,尤其涉及一种结合TOF技术和双目视觉的深度信息获取装置及其方法. 背景技术: 近年来,深度信息在传感器中获得了越来越多的应用.获 ...

  4. 利用摄像机如何获取物体的深度信息

    简而言之,其原理就是使用两个平行的相机,对空间中的每个点三角定位.通过匹配左右两个相机中成像点的位置,来计算对应三维点在空间中的距离.学术界对双目匹配恢复深度图研究有很长的历史,在NASA火星车上就开 ...

  5. 《OpenGL 模型》 渲染出帅气的暗影战士

    模型 Assimp 流程 网格 模型 效果 Assimp 3D建模工具,可以让艺术家创建复杂的形状,Assimp库用于加载,如加载obj格式的文件到我们的程序之中,下载CMAKE用于构建该库(会有很多 ...

  6. Android OpenGL ES视频渲染(一)GLSurfaceView

    相关文章:Android OpenGL ES视频渲染(二)EGL+OpenGL Android中视频渲染有几种方式,之前的文章使用的是nativewindow(包括softwareRender).今天 ...

  7. OPENGL ES 2.0 知识串讲 (8) ——OPENGL ES 详解II(传入绘制信息)

    上节回顾 上一节讲述了如何通过 OpenGL ES 给 GPU 关联一套可以使用的 shader,这 一套 shader 是被放在一个 program 中当作一个整体供 GPU 使用的.那么 GPU ...

  8. android 视频播放滤镜,用openGL ES+MediaPlayer 渲染播放视频+滤镜效果

    之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频,今天再给大家来一篇openGL ES+Me ...

  9. Flask爱家租房--房屋管理(获取房东发布的房源信息条目)

    文章目录 0.效果展示 1.重点总结 2.后端代码 3.前端html 4.前端js 0.效果展示 1.重点总结 1)用户点击"我的房源",页面开始加载,此时myhouse.js限定 ...

最新文章

  1. c#_textbox显示刷新规定行数的数据
  2. oracle索引块和数据块,Oracle中,如何确定热快是数据块还是索引快?
  3. JAVA_NIO ,走进JavaNIO的世界
  4. HDOJ1106 排序
  5. 智慧交通day00-项目简介
  6. 如何设置谷歌浏览器在新窗口中打开搜索链接
  7. 两个基于 PowerShell 的新后门盯上微软 Exchange 服务器
  8. 【转】JMeter脚本的参数化
  9. 【Prison Break】第五天(4.1)
  10. ES6深入浅出-1 新版变量声明:let 和 const-1.视频 概述
  11. android中listview没有item也能点击事件,ListView中的Item不能点击的解决方法
  12. 当前计算机技术在制图,计算机技术在《机械制图》课程中的应用
  13. cdr怎么算曲线周长_cdr怎么计算图形的周长和面积? cdr图形计算长度和面积的技巧...
  14. java translate_java – 当使用translate()方法时,JPanel中的Tit...
  15. cad2012打开后闪退_windows7打不开CAD2012出现闪退的解决方法
  16. 四个漂亮CSS样式表
  17. html绝对定位怎么页面居中,绝对定位元素设置水平居中
  18. 二叉树的遍历——层序遍历
  19. R语言学习记录:unique()函数
  20. 自定义复选框checkbox样式

热门文章

  1. 儒枭:我看技术人的成长路径
  2. JEECG 社区官方技术支持
  3. 工作流中ServiceTask的各种方法
  4. UI标签库专题九:JEECG智能开发平台 Choose(选则操作标签)
  5. MongoDB数据表基本操作
  6. spark与storm的对比
  7. Pycharm导入anaconda环境
  8. 歪枣网Mysql优化总结
  9. AJAX学习笔记(基本使用,请求参数传递,获取服务端响应,错误处理,低版本IE浏览器缓存问题及解决)
  10. 解决Div自适应高度的方法(转)