Roo*_*kie 63 opengl deprecated
我听说GL_QUADS将在OpenGL版本> 3.0中删除,为什么会这样?我的旧程序将来不会有用吗?我已经进行了基准测试,GL_TRIANGLES或者GL_QUADS在渲染速度方面没有差异(甚至可能GL_QUADS更快).那么重点是什么?
jal*_*alf 84
关键是你的GPU呈现三角形,而不是四边形.从两个三角形构造一个矩形非常简单,因此API实际上不需要具有本地渲染四边形的能力.OpenGL正在经历一个重大的修剪过程,削减了15年前有意义的许多功能,但不再与GPU的工作方式相匹配,或者GPU 将如何运作.我相信,固定功能管道也已从最新版本中消失,因为再一次,它不再是必需的,它不再与GPU工作方式(可编程着色器)相匹配.
关键是OpenGL API越小越紧,供应商编写健壮,高性能的驱动程序就越容易,并且学习正确有效地使用API就越容易.
几年前,OpenGL中几乎任何东西都可以用3-5种不同的方式完成,这给开发人员带来了很大的负担,如果你想要最佳的性能,就要找出哪种实现是正确的.
所以他们试图简化API.
小智 10
人们已经对你的问题做出了很好的回答.除了答案之外,GL_QUADS被弃用的原因之一是由于四边形的未定义性质.
例如,尝试用点建模2d方形(0,0,0), (1,0,0), (1,1,1), (0,1,0).这是一个扁平的四边形,一个角落被拉起来.以这种方式绘制NORMAL平面是不可能的.根据驱动程序,它将以一种或另一种方式分成2个三角形 - 这是我们无法控制的.这样的模型必须用两个三角形建模. - 三角形的所有三个点总是位于同一平面上.
它不会"成为"任何东西.与许多其他功能一样,GL_QUADS在3.0版中已弃用,在3.1 版中已删除.显然,如果您创建兼容性上下文,这一切都无关紧要.
任何人都可能因为弃用它们而给出的任何答案都是绝对的猜测.