Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Списки отображения 
V
    Опции темы
Ivan.
Дата 13.3.2018, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 2.11.2004

Репутация: нет
Всего: 2



Здравствуйте коллеги.
Я новичок в OpenGL и хотел бы немного понимания в этой области.
Есть следующие вопросы:
Допустим я хочу нарисовать какую то сложную фигуру с тысячами граней различных текстур. могу ли я объединить эту фигуру в списки отображения с помощью glNewList, чтобы не формировать ее в каждом кадре
Код

void initializeGL() {
...
    figure.list = glGenLists(1);
    glNewList(figure.list, GL_COMPILE);
    int vertexLocation = program.attributeLocation("a_position");
    int texcoordLocation = program.attributeLocation("a_texcoord");
    for (auto it = figure.begin(); it != figure.end(); ++it) {
        it->texture.bind();
        it->vertices.bind();
        program.enableAttributeArray(vertexLocation);
        program.setAttributeBuffer(vertexLocation, GL_FLOAT, 0, 3, sizeof(QVector3D));
        it->texCoords.bind();
        program.enableAttributeArray(texcoordLocation);
        program.setAttributeBuffer(texcoordLocation, GL_FLOAT, 0, 2, sizeof(QVector2D));
        it->indices.bind();
        glDrawElements(GL_TRIANGLES, it->indices.size() / sizeof(GLushort), GL_UNSIGNED_SHORT, 0);
    }
    glEndList();
}
void paintGL() {
...
    glCallList(figure.list);
}

На сколько это накладно многократно вызывать bind текстур и VBO? может создать один вершинный VBO для всей фигуры и множество индексных списков для каждой текстурной области?
Или я вообще не правильно подошел к этой задаче?
Правильно ли вообще совмещать списки отображения с шейдерами?


Это сообщение отредактировал(а) Ivan. - 13.3.2018, 09:51


--------------------
Я могу ВСЁ, вопрос - сколько времени у меня это займет!
PM MAIL ICQ   Вверх
Ivan.
Дата 13.3.2018, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 2.11.2004

Репутация: нет
Всего: 2



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


--------------------
Я могу ВСЁ, вопрос - сколько времени у меня это займет!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.1211 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.