Сообщение от moka
Зачем рисовать, есть же куча Bitmap Fonts генераторов.
|
Точно! Генераторов оказалась куча. Но все какие-то громоздкие. Накидать свой генератор на скорую руку - оказалось значительно быстрее, чем разбираться с готовыми.
А теперь несколько вопросов. Может кто подскажет правильное направление.
1. По поводу использования буфера(ов) вертексов. Написал класс меша и фабрику этого класса. При создании экземпляра класса меша создается динамический массив вертексов в RAM. Имеются функции создания примитивов - кубов, пирамид и т.п. Во многих источниках рекомендуют использовать один большой вертексный буфер. Возник вопрос как правильно организовать менеджмент вертексов и этого большого вертексного буфера. Сейчас поясню:
есть такие варианты:
1) сделать отдельную функцию, которая склеит вертексы всех созданных экземпляров мешей и запишет их в VB.
2) в коде меша при изменении вертексов (например в конце метода LoadFromFile) отправлять в конец VB порцию вертексов только текущего меша.
3) для каждого экземпляра меша создавать свой уникальный VB.
Очевидные проблемы:
В первом варианте мы фактически при изменении одного меша вынуждены пересобирать весь VB, но зато точно знаем его размер и не используем лишнего места в VB.
Во втором варианте мы не можем предугадать, сколько еще объектов нужно будет загрузить в VB, поэтому его размер мы не знаем. Можно конечно сделать заведомо больший VB, чем нужно, но тут 2 проблемы: фрагментация VB и пересоздание буфера если закончится место.
В третьем варианте мы скорее всего теряем в производительности, т.к. делаем кучу вызовов SetStreamSource, но получаем значительное удобство.
Насколько справедливо вышесказанное? Кто как выкручивался?