在OpenGL 4中绘制简单矩形

ebdffaop  于 2022-10-18  发布在  其他
关注(0)|答案(1)|浏览(255)

根据这本维基书籍,过去可以像这样轻松地绘制一个简单的矩形(在创建和初始化窗口之后):

glColor3f(0.0f, 0.0f, 0.0f);
glRectf(-0.75f,0.75f, 0.75f, -0.75f);

但是,在OpenGL 3.2及更高版本中已删除该选项。
在OpenGL 4中,有没有其他简单、快速、肮脏的方法来用固定的颜色绘制一个矩形(不使用着色器或任何花哨的东西)?

r6hnlfcb

r6hnlfcb1#

有没有一些..。方式..。画一个矩形..。不使用着色器...?
是。事实上,AFAIK在现有的所有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,然后用一个非常简单的着色器来绘制它们,这样可能会更好。

相关问题