根据 this wikibook 它曾经可以像这样轻松地绘制一个简单的矩形(在创建和初始化窗口之后):
glColor3f(0.0f, 0.0f, 0.0f);
glRectf(-0.75f,0.75f, 0.75f, -0.75f);
这在 OpenGL 3.2 及更高版本中已被删除。
在 OpenGL 4 中是否有其他一些简单、快速和肮脏的方法来绘制具有固定颜色的矩形(不使用着色器或任何花哨的东西)?
最佳答案
Is there some ... way ... to draw a rectangle ... without using shaders ...?
是的。事实上,据我所知,所有现有的 OpenGL 版本都支持它:您可以通过启用剪刀测试并清除帧缓冲区来绘制实心矩形:
glEnable(GL_SCISSOR_TEST);
glScissor(x, y, width, height);
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
这在多个方面与 glRect
不同:
- 坐标以相对于窗口原点的像素为单位指定。
- 矩形必须轴对齐且不能以任何方式变形。
- 跳过了大多数针对每个样本的处理。这包括混合、深度和模板测试。
但是,我宁愿劝阻你不要这样做。您可能会更好地构建一个 VAO,其中包含您要在屏幕上绘制的所有矩形,然后使用一个非常简单的着色器绘制它们。
关于c++ - 在 OpenGL 4 中绘制一个简单的矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73922876/