LINUX.ORG.RU

VBO


0

1

Привет всем
Помогите разобраться с VBO OpenGL
можете кинуть примеры кода и инфу по его использованию
я просто сколько не искал ничего найти не мог, скачал несколько примеров но так и не понял как там все устроено так как слишком много всего навалили они туда, и камеру сделали и тд и тп, слишком много лишнего совсем не относящегося к VBO

использую C++, SDL

заранее спасибо



Последнее исправление: isaer (всего исправлений: 1)

Ответ на: комментарий от crutch

ну что то почитал решил написать какой нить простой объект, писал так:[br] [code=cpp]

#define GL_GLEXT_PROTOTYPES

float vertices[] = {1,1,1, -1,1,1, -1,-1,1, 1,-1,1}; float normals[] = {0,0,1, 0,0,1, 0,0,1, 0,0,1}; float colors[] = {1,1,1, 1,1,0, 1,0,0, 1,0,1};

GLuint triangleVBO = 0;

void render() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity();

glGenBuffers(1, &triangleVBO); glBindBuffer(GL_ARRAY_BUFFER, triangleVBO); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices)+sizeof(normals)+sizeof(colors), 0, GL_STATIC_DRAW); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(vertices), vertices); glBufferSubData(GL_ARRAY_BUFFER, sizeof(vertices), sizeof(normals), normals); glBufferSubData(GL_ARRAY_BUFFER, sizeof(vertices)+sizeof(normals), sizeof(colors), colors);

glBindBufferARB(GL_ARRAY_BUFFER, triangleVBO);

   glEnableClientState(GL_NORMAL_ARRAY);    glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_VERTEX_ARRAY);

   glNormalPointer(GL_FLOAT, 0, (void*)sizeof(vertices)); glColorPointer(3, GL_FLOAT, 0, (void*)(sizeof(vertices)+sizeof(normals)));    glVertexPointer(3, GL_FLOAT, 0, 0);

   glDrawArrays(GL_QUADS, 0, 24);

glDisableClientState(GL_VERTEX_ARRAY);    glDisableClientState(GL_COLOR_ARRAY);    glDisableClientState(GL_NORMAL_ARRAY);

SDL_GL_SwapBuffers(); [/code]

ошибок нет но ничего не рисует[br] в чем проблема и как ее исправить??

isaer
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.