Показать сообщение отдельно
Старый 01.07.2014, 05:48   #331
bugway
ПроЭктировщик
 
Аватар для bugway
 
Регистрация: 19.03.2012
Адрес: Забайкальский край
Сообщений: 112
Написано 15 полезных сообщений
(для 23 пользователей)
Ответ: Пишем 3D движок - замену Xors3D

Сообщение от moka Посмотреть сообщение
Зачем рисовать, есть же куча Bitmap Fonts генераторов.
Точно! Генераторов оказалась куча. Но все какие-то громоздкие. Накидать свой генератор на скорую руку - оказалось значительно быстрее, чем разбираться с готовыми.

А теперь несколько вопросов. Может кто подскажет правильное направление.


1. По поводу использования буфера(ов) вертексов. Написал класс меша и фабрику этого класса. При создании экземпляра класса меша создается динамический массив вертексов в RAM. Имеются функции создания примитивов - кубов, пирамид и т.п. Во многих источниках рекомендуют использовать один большой вертексный буфер. Возник вопрос как правильно организовать менеджмент вертексов и этого большого вертексного буфера. Сейчас поясню:

есть такие варианты:
1) сделать отдельную функцию, которая склеит вертексы всех созданных экземпляров мешей и запишет их в VB.
2) в коде меша при изменении вертексов (например в конце метода LoadFromFile) отправлять в конец VB порцию вертексов только текущего меша.
3) для каждого экземпляра меша создавать свой уникальный VB.

Очевидные проблемы:
В первом варианте мы фактически при изменении одного меша вынуждены пересобирать весь VB, но зато точно знаем его размер и не используем лишнего места в VB.
Во втором варианте мы не можем предугадать, сколько еще объектов нужно будет загрузить в VB, поэтому его размер мы не знаем. Можно конечно сделать заведомо больший VB, чем нужно, но тут 2 проблемы: фрагментация VB и пересоздание буфера если закончится место.
В третьем варианте мы скорее всего теряем в производительности, т.к. делаем кучу вызовов SetStreamSource, но получаем значительное удобство.

Насколько справедливо вышесказанное? Кто как выкручивался?
__________________
PC: MB ASRock Z170M Pro4S / CPU Intel Core i-5 6600 4-Core / RAM 32 Gb / GPU Geforce RTX 2080 Ti 11Gb / Oculus Rift DK1 + CV1 / HTC Vive / Deus Odin DK 0..5

https://rw-game.ru
https://geovoxium3d.com
(Offline)
 
Ответить с цитированием