【问题标题】:OpenGL draw difference between 2 computersOpenGL绘制两台计算机之间的差异
【发布时间】:2014-04-17 14:44:58
【问题描述】:

我尝试通过比较使用grabFrameBuffer() 生成的两个QImage 来对我的渲染引擎进行单元测试。

它在我的笔记本电脑(Mac OS 10.9.2 非视网膜)和我同事的笔记本电脑(视网膜)上完美运行。但是当我尝试运行 Travis-CI 测试时,它会生成图像,但与我生成的图像有 ±5% 的差异。

我正在使用Qt 5.2.1,请随时询问更多信息

【问题讨论】:

标签: c++ qt opengl


【解决方案1】:

OpenGL 规范 (Appendix A, "Invariance", page 600) 的不变性要求仅适用于单个实现,而不适用于多个实现:

OpenGL 规范不是像素精确的。因此,它不保证准确 不同 GL 实现生成的图像之间的匹配。然而, 在某些情况下,规范确实为生成的图像指定了完全匹配 通过相同的实现。

【讨论】:

  • 任何来源...?只是为了确定:)
  • @ꜱᴀᴍᴏᴛʜ:使用规范参考 + 报价编辑。
  • 好吧,我又做了一次数学运算,发现有±5%的像素差异......它仍然正常吗?
  • This guy 比较了六个 GL 实现的输出,其中一些实现的输出截然不同。因此,取决于你在做什么,5% 可能不会出乎意料。
  • 我认为您可以设计一个病态案例,在符合标准的实现之间存在 100% 的差异。例如,如果生成的图像由交替的黑白像素行组成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
相关资源
最近更新 更多