我一直在使用OpenGL很长一段时间,并且我几乎注意到几乎每一次我都会用glsl着色器创建一些程序,它在许多机器上的作用各不相同。现在我猜测这是因为有些机器部分不支持它们或充分。我想知道我可以使用什么来确保至少对于OpenGL 2.1+来说有足够的兼容性,并且仍然使用像着色器这样的好东西,而不是像直接模式那样使用固定管线。OpenGL - 在OpenGL 2.1中实现的最先进的渲染方法是什么?
而且我注意到,在两台机器上,这两个支持OpenGL 3.2的使用OpenGL 3.2功能的结果是不同的。其中有文物和一个不..
我能做些什么/使用,以确保最大的兼容性,而不必在十亿台机器上测试,以确保它的工作原理,我不必为特定的机器修复问题。
编辑:所以要缩小这个问题,什么是在OpenGL 2.1中呈现的最高级的方式?我可以在该版本中使用着色器吗?
这个问题缺乏任何细节,并在这样的一般水平是相当无法回避的。这些描述听起来像代码中的错误。 – derhass
您不能确保某些机器上的某些内容不经过测试即可正常工作:P操作上的差异常常是由于您的代码调用了未定义的行为,驱动程序错误或其他棘手的可移植性问题(如字节序或浮点数的不同表示)。如果没有实际的运行时间测试,前两个问题就无法解释,我从您的描述中猜测,大部分问题都属于未定义(或定义不明)的行为。 –
对不起,太宽泛的东西..我缩小了它.. – Gopgop