1.初始化:初始化GLFW 创建窗口 上下文 初始化GLAD 创建视口
2.数据处理:生成和绑定VBO VAO(何为),设置属性指针,解绑
顶点缓冲对象VBO,将其绑定在顶点缓冲对象上(何为顶点缓冲对象) 好处:不用将顶点数据一个一个发送到显卡上,借助VBO可以一次性发送一大批过去,然后使用glBufferData将顶点数据绑定到当前默认的缓冲中。glBufferData(GL_ARRAY_BUFFER,sizeof(triangle),triangle,GL_STATIC_DRAW“三角形的顶点位置不会被改变”);
顶点数组对象VAO,我们使用的是核心模式,他要求我们使用VAO,其次使用VAO的好处是:在渲染(干嘛的?)时只使用一次VAO就可以了,之前的数据都存在VAO中,不再调用VBO.
将数据发送到GPU后,还要用glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,3*sizeof(float),(void*)0); "0":定点数据位置值,"3":顶点属性(?)是一个3分量的向量(?);“GL_FLOAT":顶点类型;“GL_FALSE'':是否希望顶点标准化;3*。。。。:步长,下一个数据在3个float之后;6:数据偏移量数组开头 。 glEnableVertexAttribArray(0);开启零这个通道,默认是关闭的。
解绑,防止之后绑定VAO时影响当前VAO,还有使代码更加规范
现在,通过VAO VBO 已经将顶点数据储存在显卡GPU上了
3.顶点着色器和片段着色器
4.渲染
5.善后工作
白话总结:1.VAO,VBO是用来让计算机知道我要绘制图形的各顶点在哪
2.顶点着色器,片段着色器是让计算机知道它该将图形打印成什么颜色
网友评论