把上一篇的坑补了。
因为我们在导入数据的时候是直接导入准备好的顶点数据,因此不需要进行MVP变换。
其着色器代码如下:
顶点
#version 330 core
layout (location = 0) in vec3 aPos;
void main() { gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0); }
上面的LayOut这一行代码与main.cpp中的这两行呼应:
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);//此处的0代表的是顶点数据,可以给0-15,不能是16.这0-15就可以代表顶点,法线,uv坐标等。
最后在把通过VAO,VBO绑定的数据, 通过glBindVertexArray(VAO)函数绑定,然后可以用drawarray()函数进行绘制,绘制之前需要使用我们的着色器。
片段
#version 330 core
out vec4 FragColor;
void main() { FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f); }
这个地方就是把我们要绘制的物体通过vec4(r,g,b,a)设置颜色和透明度。
最后是我个人觉得我现在功夫还不到位,把代码和理论混合讲,容易出问题,然后我决定之后都讲理论了。然后我把代码直接上链接,大家有需要的话自取即可。
之后的文章会偏向于理论方面了。