HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Построение VBO и оптимизация меша
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Построение VBO и оптимизация меша

Здравствуйте, товарищи!
Мой запекатель лайтмап загружает модель в формате OBJ и строит VBO по-тупому, так что у каждого треугольника получаются 3 индивидуальные вершины. То есть, если у той же спонзы 250К треугольников, то вершин в VBO будет 750К. У меня вопрос, имеет ли смысл строить VBO правильно, чтобы у треугольников были общие вершины? Какого прироста производительности можно ждать от сокращения количества вершин, например, вдвое при неизменном количестве треугольников?
И аналогичный вопрос по поводу оптимизации меша каким-нибудь AMD Tootle. Имеет ли она смысл?

Сообщить модератору | | IP: Записан
Сообщение: 161989

Старое сообщение 30-11-2016 23:34
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



ну вообще стрипы хорошо увеличивают фпс.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 162001

Старое сообщение 01-12-2016 08:38
-
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



Индекс-буфер вручную строить это ад. Такие данные должны запекаться в модель

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 162031

Старое сообщение 01-12-2016 16:23
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
KiQ писал:
Индекс-буфер вручную строить это ад

Теперь мне понятно, почему у тебя 20 фпс на той стенке.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 162032

Старое сообщение 01-12-2016 16:30
-
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Хм, запилил нормальное индексирование вершин, производительность на тяжелых сценах типа спонзы выросла на 30% (при уменьшении числа вершин в ВБО в 2-4 раза). Неплохо, неплохо. Посмотрим, что дадут стрипы.

Цитата:
KiQ писал:
Индекс-буфер вручную строить это ад.

Да вроде ничего сложного. Если искать дубли вершин не простым перебором, а через дерево, то даже довольно быстро выходит.

Сообщить модератору | | IP: Записан
Сообщение: 162181

Старое сообщение 05-12-2016 23:55
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Не знаю, куда написать, оставлю здесь. Может, пригодится кому.
Столкнулся с неожиданной ерундой при создании VBO для меша с 250к треугольников. Суть в том, что меш рендерился криво, хотя все данные в буферы загружались верные. VBO создавалось примерно так:

code:
glGenBuffers(1, @VBOId); glBindBuffer(GL_ARRAY_BUFFER, VBOId); glBufferData(GL_ARRAY_BUFFER, sizeof(GLFLoat) * 3 * Count, @VBOSingleBuff[0], GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0);

Так вот, оказалось, нулевой буфер биндился до того, как glBufferData успевал загрузить все данные. Решение простое - добавить glFinish после glBufferData.

Сообщить модератору | | IP: Записан
Сообщение: 173285

Старое сообщение 08-07-2018 22:48
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



Что за собаки в "@VBOId" и "@VBOSingleBuff[0]"?

Сообщить модератору | | IP: Записан
Сообщение: 173289

Старое сообщение 09-07-2018 15:27
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


nemyax
Оператор взятия адреса же. Ты шо, в школе Паскаль не сдавал?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 173290

Старое сообщение 09-07-2018 15:33
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



Так это не си? 0_о
А как же sizeof и всё такое? И не было в моей школе никаких клятых паскалей.

Сообщить модератору | | IP: Записан
Сообщение: 173291

Старое сообщение 09-07-2018 15:38
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


nemyax
А что в твоей школе было? Fortran-77?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 173294

Старое сообщение 10-07-2018 03:39
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX Fortran-1488!

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 173298

Старое сообщение 10-07-2018 07:27
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



XaeroX
Школьный алгоритмический язык ШАЯ!
А если серьёзно, программированием у нас в школе вообще не пахло. Зато сиськи у информатички были закачаешься. Возможно, эти два момента как-то связаны, но я не могу понять как.

Сообщить модератору | | IP: Записан
Сообщение: 173300

Старое сообщение 10-07-2018 08:09
- За что?
Garux
Частый гость

Дата регистрации: Mar 2015
Проживает: Металлострой
Сообщений: 98

Рейтинг



Цитата:
ncuxonaT писал:
Решение простое - добавить glFinish после glBufferData.

Полезное знание, однако выглядит как %yourvendor% driver bug detour

Сообщить модератору | | IP: Записан
Сообщение: 173321

Старое сообщение 13-07-2018 19:14
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 16:14. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Построение VBO и оптимизация меша
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024