OpenGL 3.0和3.1已弃用了我认为必不可少的许多功能。特别是在着色器中使用固定功能。

谁能解释这到底有什么用?

为什么他们认为有必要弃用这种显而易见的有用功能,而每个人都很明显地使用它,并且没有理智的硬件公司会删除对它的支持?

最佳答案

如您所说,没有硬件公司会删除对固定功能着色器的支持,因为有许多现有的应用程序正在使用它们。但是,他们不想做的事情是弄清楚如何指定FF着色器与它们添加的每个将来扩展之间的交互。这些交互非常复杂(部分是因为FF着色器太复杂了),这导致供应商之间的错误和不一致的实现-两者都不利于开发人员和最终用户。

因此,他们正在画一条线:如果要使用FF着色器,则不会获得任何新功能。如果需要新功能,则不能使用FF着色器。这与Microsoft在D3D10中所做的非常相似:它添加了一大堆新功能,但同时完全删除了固定功能着色器。人们认为,需要新的非着色器功能但又不需要可编程着色器的开发人员非常少。

关于OpenGL:弃用处理什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1218449/

10-13 00:27