sof*_*llx 8 opengl rendering invariants
我目前正在使用OpenGL编写科学成像应用程序.
我想知道当我的代码(C++/OpenGL和简单GLSL)在不同的硬件上执行时,OpenGL渲染(根据FBO检索到的像素)应该是完全确定的(ATI与NVidia,各种NVidia代和各种操作系统) )?
更确切地说,每次在任何硬件上运行我的代码(可以运行基本的GLSL和OpenGL 3.0)时,我都需要完全相同的像素缓冲区...
那可能吗?我应该考虑一些建议吗?
如果不可能,是否有一个特定品牌的视频卡(也许是Quadro?)可以在改变主机操作系统的同时做到这一点?
来自 OpenGL 规范(2.1 版附录 A):
OpenGL 规范不是像素精确的。因此,它不能保证不同 GL 实现生成的图像之间完全匹配。但是,在某些情况下,规范确实为由相同实现生成的图像指定了精确匹配。
如果您禁用所有抗锯齿和纹理,则很有可能在各个平台上获得一致的结果。但是,如果您需要抗锯齿或纹理或 100% 像素完美保证,请仅使用软件渲染:http : //www.mesa3d.org/