根据这本维基书籍,过去可以像这样轻松地绘制一个简单的矩形(在创建和初始化窗口之后):
glColor3f(0.0f, 0.0f, 0.0f); glRectf(-0.75f,0.75f, 0.75f, -0.75f);
但是,在OpenGL 3.2及更高版本中已删除该选项。在OpenGL 4中,有没有其他简单、快速、肮脏的方法来用固定的颜色绘制一个矩形(不使用着色器或任何花哨的东西)?
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有很多不同之处:
glRect
然而,我宁愿劝阻你不要这么做。通过构建一个包含所有想要在屏幕上绘制的矩形的Vao,然后用一个非常简单的着色器来绘制它们,这样可能会更好。
1条答案
按热度按时间r6hnlfcb1#
有没有一些..。方式..。画一个矩形..。不使用着色器...?
是。事实上,AFAIK在现有的所有OpenGL版本上都受支持:您可以通过启用剪刀测试并清除帧缓冲区来绘制实心矩形:
这与
glRect
有很多不同之处:然而,我宁愿劝阻你不要这么做。通过构建一个包含所有想要在屏幕上绘制的矩形的Vao,然后用一个非常简单的着色器来绘制它们,这样可能会更好。