GL_QUADS有什么不好?

我听说GL_QUADS将在OpenGL版本> 3.0中被删除,为什么呢? 那么我的老程序将来会不会工作? 我有基准, GL_TRIANGLESGL_QUADS在渲染速度上没有区别(甚至可能是GL_QUADS更快)。 那么最重要的是什么?

关键是你的GPU呈现三angular形,而不是四边形。 从两个三angular形构造一个矩形是非常简单的,所以API本身并不需要承担起渲染四边形的能力。 OpenGL正在经历一个重大的修整过程,削减了15年前合理的许多function,但不再与GPU的工作方式或GPU如何工作。 固定functionstream水线也从最新版本中消失了,我相信,因为再一次,它不再是必要的,它不再匹配GPU的工作原理(可编程着色器)。

重点在于OpenGL API越小越紧密,供应商编写健壮,高性能的驱动程序越容易,学习正确,高效地使用API​​也越容易。

几年前,OpenGL中几乎所有的东西都可以通过3-5种不同的方式完成,这就给开发者带来了很多的负担,如果你想获得最佳的性能,那么哪个实现是正确的

所以他们试图简化API。

什么都不是“要”。 与许多其他function一样, GL_QUADS在版本3.0中被弃用,在版本3.1中被删除 。 显然,如果您创build兼容性上下文,则这些都是不相关的。

任何人可能会因为贬低他们的理由而给出的答案纯属猜测。

人们对你的问题已经有了很好的回答。 在他们的回答之上, GL_QUADS被弃用的原因之一是因为四元组的不GL_QUADS

例如尝试用点(0,0,0), (1,0,0), (1,1,1), (0,1,0)对二维正方形进行build模。 这是一个拖着一个angular落的平面四边形。 以这种方式绘制一个正常的平方是不可能的。 根据驱动程序的不同,它会被分成两个三angular形,这是我们无法控制的。 这样的模型必须用两个三angular形build模。 – 三angular形的所有三个点总是位于同一个平面上。