Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2010, 23:58   #1
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию VBO OpenGL

помогите разобраться с VBO в OpenGL
погуглил но ничего так и не нашел
прочитал немало всего но так и не работает ничего

пишу на OpenGL C++ SDL Linux
помогите разобраться как бы сделать хотябы квадрат
все это дело хочу внедрить в двиг так что лучше было бы если код будет в функциях

заранее блогодарен
jec вне форума Ответить с цитированием
Старый 05.10.2010, 03:14   #2
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию

Код:
#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();

ошибок нет но ничего не рисует
в чем проблема и как ее исправить??
jec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Opengl revaldo666 Общие вопросы C/C++ 12 28.07.2010 22:43
OpenGL revaldo666 Общие вопросы C/C++ 2 22.07.2010 10:39
OpenGL Angel of death Помощь студентам 7 22.06.2010 22:58
OpenGl Freer Помощь студентам 1 25.05.2009 17:57
OpenGL Witaliy Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 01.05.2008 21:05