【发布时间】:2014-03-03 02:16:39
【问题描述】:
我正在为我在 OpenGL 上的应用程序开发一个简单的 GUI,我所需要的只是绘制一堆矩形和一个 1px 的边框围绕它们。而不是为每个必须绘制的小部件使用 glBegin 和 glEnd(这会降低性能)。我需要知道这是否可以通过坐标及其颜色的某种数组/列表(批处理数据)来完成。
要求:
- 矩形是简单地为每个角或每个角用一种颜色填充一种颜色。 (主要是形成渐变)
- 线条/边框很简单,只有一种颜色和 1px 厚,但它们可能并不总是闭合的(不会形成循环)。
- 不包括使用纹理/图像。仅限几何数据。
- 必须与旧 OpenGL 版本兼容(低至 1.3 版)
有没有办法通过某种数组而不是 glBegin 和 glEnd 来实现这一点?我不确定如何为线条/边框执行此操作。
我在 Gwen GUI 中看到过这种实现,但它使用纹理。
【问题讨论】:
-
您可能会查看顶点缓冲区对象。这就是你所说的批量绘图类型。虽然如果你在 gui 中绘制几个矩形的速度太慢,我会感到惊讶,即使它是立即模式。
-
谢谢 :) 现在我正在研究 glVertexPointer()、glPolygonMode() 和 glColorPointer() 看看是否可以解决任何问题。但我猜 glBegin 和 glEnd 仍然是首选。 GUI 元素有些动态,VBO 可能不是 v.oddou 的回答所暗示的最佳解决方案。