glBufferSubData(GL_ARRAY_BUFFER, sizeof(vx1)+sizeof(normal1)+sizeof(color1), sizeof(texUVarray1), texUVarray1);UVの配列を渡します
void initVBO() { glGenBuffers(1, &vboBuffer); glBindBuffer(GL_ARRAY_BUFFER, vboBuffer); glBufferData(GL_ARRAY_BUFFER, sizeof(vx1)+sizeof(normal1)+sizeof(color1)+sizeof(texUVarray1), 0, GL_STATIC_DRAW); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(vx1), vx1); glBufferSubData(GL_ARRAY_BUFFER, sizeof(vx1), sizeof(normal1), normal1); glBufferSubData(GL_ARRAY_BUFFER, sizeof(vx1)+sizeof(normal1), sizeof(color1), color1); glBufferSubData(GL_ARRAY_BUFFER, sizeof(vx1)+sizeof(normal1)+sizeof(color1), sizeof(texUVarray1), texUVarray1); glBindBuffer(GL_ARRAY_BUFFER, 0); glGenBuffers(1, &ixBuffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ixBuffer); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(ix1), ix1, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); }描画関数
glBindBuffer(GL_ARRAY_BUFFER, vboBuffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ixBuffer); glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_VERTEX_ARRAY); glNormalPointer(GL_FLOAT, 0, (void*)sizeof(vx1)); glColorPointer(3, GL_FLOAT, 0, (void*)(sizeof(vx1)+sizeof(normal1))); glTexCoordPointer(2, GL_FLOAT, 0, (void*)(sizeof(vx1)+sizeof(normal1)+sizeof(color1))); glVertexPointer(3, GL_FLOAT, 0, 0); glBindTexture(GL_TEXTURE_2D, tex1->ID); glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_INT, (void*)0); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);ソース全文 MSYS2 mingw64用
vboTex1.cpp
https://image01.seesaawiki.jp/p/o/pascal-memo/yHzj...
Texture.hpp
https://image02.seesaawiki.jp/p/o/pascal-memo/RaXv...
makefile-vboTex1
https://image01.seesaawiki.jp/p/o/pascal-memo/hfhu...
tartan1.bmp
コメントをかく