Войти
ПрограммированиеФорумГрафика

Кто-нибудь делал автосборку атласов на лету? (2 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#15
0:15, 8 мая 2022

Der FlugSimulator
> У тебя же, как я понял, компоновка атласа в design-time возможна. Значит там её
> и надо делать.
А какая разница рантайм или дизайн тайм. Код упаковки в атлас все равно писать. Самая простая версия (по статье которую я скинул выще) - вполне бодро живет в рантайме.

#16
0:57, 8 мая 2022

MrShoor
> А какая разница рантайм или дизайн тайм. Код упаковки в атлас все равно писать.
> Самая простая версия (по статье которую я скинул выще) - вполне бодро живет в рантайме.

Как ни крути, даже самый "бодрый" код в рантайме медленнее, чем когда его там нету.
Статью не читал, но подозреваю, что бодрость будет сильно снижаться, для большого количества файлов.

Код упаковки - да, писать надо, но если в движке есть понятие сборки ассетов для уровня,
логичнее и генерацию атласа присовокупить в этот процесс. Это будет происходить гарантированно за кадром геймплея
и единожды, а не избыточно каждый раз при перемещении между уровням или при load-game.

#17
(Правка: 1:20) 1:18, 8 мая 2022

Der FlugSimulator
> Статью не читал, но подозреваю, что бодрость будет сильно снижаться, для
> большого количества файлов.
Не для количества файлов, а для количества элементов в атласе. Да, ессно скорость снижается. С единиц наносекунд до десятков наносекунд. Очень важное место, чтобы оптимизировать. Ведь о ужас, в момент построения атласа фпс может просесть с 140 до 138. А время загрузки уровня из-за построения кучи атласов так вообще вырастет на 10мс!

#18
8:43, 8 мая 2022

MrShoor
> фпс может просесть с 140 до 138.
MrShoor
> до десятков наносекунд.
мне что-то подсказывает что где-то вы врете сэр.

#19
9:37, 8 мая 2022

Super_inoy
Со шрифтами дико проще - буковы более менее одинакового размера. А так да - это же как раз и есть рантайме атлас.

#20
9:42, 8 мая 2022

HolyDel
> буковы более менее одинакового размера.
w i не очень то и близкого размера.
это даже в рамках одного алфавита.

#21
(Правка: 10:57) 10:44, 8 мая 2022

Super_inoy
> w i не очень то и близкого размера.
по высоте +/- одинакового, плюс всегда можно повернуть на 90 градусов для большей компактности, в итоге берем полосу определенной высоты и заполняем ее по горизонтали глифами, дошли до конца, заполняем следующую полосу и т.д. (upper bounds algorithm)

у себя даже для шрифтов правда использую "стандартное" бинарное дерево, учитывая что новые глифы добавляются на лету и заранее их набор не известен, всё равно на производительность не сказывается.

#22
14:50, 8 мая 2022

Super_inoy
> мне что-то подсказывает что где-то вы врете сэр.
Первый случай - докинуть несколько спрайтов в момент рендера (например те же шрифты). Второй случай - загрузить локацию с большим количеством текстур.

#23
16:26, 8 мая 2022

А может быть есть какой-то хороший алгоритм для выбора, делать ли копию одной текстуры во втором атласе? Поясню на примере. Есть текстуры 1 2 3 4 5 6 7 8 9, есть атласы А и В, при рисовании сцены нужны текстуры 1 2 1 3 1 4 5 1 6 1 7 1 8 1 9 в таком порядке, в один атлас влезает не более 5 текстур. Кажется в приведенном примере оптимально в атлас А запаковать 1 2 3 4 5, в атлас В запаковать 1 6 7 8 9. Вот умом я это понимаю, а какой тут алгоритм?

#24
16:50, 8 мая 2022

Huldra
смотри в сторону bindless либо texture array если так боишься переключений текстур.

#25
17:12, 8 мая 2022

Huldra
> при рисовании сцены нужны текстуры 1 2 1 3 1 4 5 1 6 1 7 1 8 1 9 в таком
> порядке
а чем вызван этот порядок и почему нельзя перетасовать чтоб сначала все 1 рисовались? Рисованием полупрозрачных поверхностей? Алгоритмом художника?

#26
17:20, 8 мая 2022

Aroch
> смотри в сторону bindless либо texture array если так боишься переключений
> текстур.
Все это имеет смысл на Pi 1-3 (OpenGL ES 2.0) и на Pi 4 (OpenGL ES 3.0), как я понимаю, там нет ни bindless ни texture array

#27
17:21, 8 мая 2022

kipar
> Рисованием полупрозрачных поверхностей?
вот этим

#28
17:35, 8 мая 2022

https://habr.com/ru/company/mygames/blog/598639/
Вон пацаны морочались

#29
17:48, 8 мая 2022

Huldra
> в один атлас влезает не более 5 текстур
Текстурный массив не спасает?

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика