【OpenGL菜鸟历程】
上次的一堆代码就显示了个窗口,虽然感觉很麻烦但是还不足以让我放弃。继续继续,跟着教程上的下一篇文章,我开始接触了Shader,而这一次就是要用Shader画一个三角。
【代码O.O】
这次的项目起名为HelloTriangle,在画三角之前,我们自然是要先把窗口写出来。为了使得代码看起来更清晰,这次将代码封装成函数。
1 | //我们的glfw的初始化方法 |
之后就是主函数
1 | int main() { |
这样我们首先得到了一个简单的窗口,接下来才是重点。我们首先给出一个三角形的顶点坐标
1 | /*顶点坐标*/ |
这时,需要了解两个概念 VAO (Vertex Array Object),VBO(Vertex Buffer Object),不知道这两个东西的话可以看VAO与VBO的前世今生。
我们创建这两个对象并进行初始化绑定等操作。
1 | GLuint VBO; |
请先不要追究这些方法的具体含义,我们将在未来一篇文章中解释并且对VAO,VBO进行详细的介绍和分析。现在我们写了这一大堆代码,然后呢?
1 | glBindVertexArray(VAO); |
我们在窗口的代码的循环里,加入这几行,将VAO进行绑定,然后画出来这个顶点数组,再解绑(绑定0就是解绑)。OK,现在代码应该已经好了,可是点击运行后,却没有按照我们的意愿出现一个三角形。
当然出现了,只是我们没有看到,因为他的颜色并没有和窗口的主色调分开,所以我们看不到而已。下一篇文章将会讲解另一个东西,Shader(着色器)。