glVertexAttribPointer第一个参数理解
生活随笔
收集整理的這篇文章主要介紹了
glVertexAttribPointer第一个参数理解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//VAO[0]
glGenVertexArrays(2, vertex_array);glBindVertexArray(vertex_array[0]);//頂點(diǎn)數(shù)據(jù)
GLuint vbo_vertex = 0;
glGenBuffers(1, &vbo_vertex);
assert(vbo_vertex != 0);glBindBuffer(GL_ARRAY_BUFFER, vbo_vertex);
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*3*8, vertexs, GL_STATIC_DRAW);
//Bind VAO and VBO 索引0一定是頂點(diǎn)
//將頂點(diǎn)數(shù)據(jù)輸入到VAO,用來建立VAO和VBO的數(shù)據(jù)傳遞,上傳數(shù)據(jù)完成之后可以刪除
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(0); //leave out this sentence//頂點(diǎn)顏色
GLuint vbo_color = 0;
glGenBuffers(1, &vbo_color);
assert(vbo_color);glBindBuffer(GL_ARRAY_BUFFER, vbo_color);
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*24, color, GL_STATIC_DRAW);
glVertexAttribPointer(1,3,GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(1);
如上代碼一直沒搞明白第一個(gè)參數(shù)怎么使用,近來知道了,記錄下:
glVertexAttribPointer第一個(gè)參數(shù)對(duì)應(yīng)vertexshader里哪個(gè)in attribute,是vertexshader中attribute的索引,有如下頂點(diǎn)著色器代碼:
//vertex shader layout(location = 0) in vec3 position; //position的location設(shè)定為0 glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*3*8, vertexs, GL_STATIC_DRAW);則:
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);就是指定position的數(shù)據(jù)格式,第一個(gè)參數(shù)0就是在頂點(diǎn)著色器中設(shè)定的索引
總結(jié)
以上是生活随笔為你收集整理的glVertexAttribPointer第一个参数理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全民k歌私密送礼怎么设置
- 下一篇: 广汽埃安发布全新“夸克电驱”:巴掌大的电