GPU供应商之间的OpenGL确定性渲染

sof*_*llx 8 opengl rendering invariants

我目前正在使用OpenGL编写科学成像应用程序.

我想知道当我的代码(C++/OpenGL和简单GLSL)在不同的硬件上执行时,OpenGL渲染(根据FBO检索到的像素)应该是完全确定的(ATI与NVidia,各种NVidia代和各种操作系统) )?

更确切地说,每次在任何硬件上运行我的代码(可以运行基本的GLSL和OpenGL 3.0)时,我都需要完全相同的像素缓冲区...

那可能吗?我应该考虑一些建议吗?

如果不可能,是否有一个特定品牌的视频卡(也许是Quadro?)可以在改变主机操作系统的同时做到这一点?

use*_*368 5

来自 OpenGL 规范(2.1 版附录 A):

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

如果您禁用所有抗锯齿和纹理,则很有可能在各个平台上获得一致的结果。但是,如果您需要抗锯齿或纹理或 100% 像素完美保证,请仅使用软件渲染:http : //www.mesa3d.org/