定义VBO
生成(gen)绑定(bind)缓冲类型(array)复制到内存(glBufferData)
unsigned int VBO;
glGenBuffers(1, &VBO);
glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
顶点着色器
版本声明 与opengl版本匹配
输入变量位置值 in 类型 名称(输入顶点属性)
gl_Position预定义变量 为顶点着色器输出
#version 330 core
layout (location = 0) in vec3 aPos;
void main()
{
gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);
}
动态编译着色器
存储着色器对象 = 创建(create)(着色器类型(vertex))
源码附在着色器对象上:glShaderSource函数把要编译的着色器对象作为第一个参数。第二参数指定了传递的源码字符串数量,这里只有一个。第三个参数是顶点着色器真正的源码,第四个参数我们先设置为NULL。
编译
unsigned int vertexShader;
vertexShader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertexShader, 1, &