MrShoor
> тоже куча пустого прострнаства
вот поэтому и написал "тогда уж". Раз пустое пространство в обоих случаях, то уж лучше его использовать с пользой по максимуму.
> Атлас генерится на лету прямо в рантайме (и даже не на этапе загрузки уровня, а
> прямо на этапе рендера). Т.е. игре нужно отрисовать новый глиф, которого еще
> нету, код: 1. Достает глифы в виде кривых из шрифта 2. Аппроксимирует кучей
> отрезков 3. Выделяет место под этот глиф в атласе 4. Генерит sdf прямо в атласе
> по нужному месту
у меня также, для шрифтов которые используется для отображения пользовательских данных.
betauser
> Вот что даёт простая сортировка по высоте
С сортировкой и без - разница будет от силы 15%. И то, на очень специфичных данных.
Ghost2
> С сортировкой и без - разница будет от силы 15%. И то, на очень специфичных
> данных.
она будет и это либо имеет значение либо нет. Так то для большей плотности упаковки есть еще уйма способов оптимизации, вплоть до нарезания самих спрайтов (если это 2d) на регулярные кусочки да еще так чтобы выкинуть повторяющиеся. Уже обсуждалось когда-то тут.
Ghost2
> > Вот что даёт простая сортировка по высоте
> С сортировкой и без - разница будет от силы 15%. И то, на очень специфичных
> данных.
На квадратных разница 0%)
betauser
Вот у тебя показана хитрая запаковка атласа для шрифта. Но ведь это можно подготовить и во время запаковка ресурсов. В настоящем "на лету" символы будут приходить как попало, и их уже так не посортируешь по высоте. Благо высота их ± одинакова, кроме всяких минусов.
HolyDel
> Вот у тебя показана хитрая запаковка атласа для шрифта. Но ведь это можно
> подготовить и во время запаковка ресурсов. В настоящем "на лету" символы будут
> приходить как попало, и их уже так не посортируешь по высоте. Благо высота их
> ± одинакова, кроме всяких минусов.
Можно по разному делать, а вот нюанс того, что изображения символов рендерятся под каждый размер шрифта, не даёт возможности подготовить их заранее. Например, нужно три варианта сделать, на 10, 15 и 20 пикселей по высоте. С учетом того, что у всех разное разрешение экрана, то предефайнить совсем никак. Если предрасчитать, то будет мыло.
HolyDel
Ну вообще да, шрифты паковать большого смысла нет, символы по большей части одинаковые по высоте.
betauser
> Это NeoAxis Engine! 70% пустого места непонятно где нашлось, между буквами
> нужно отступ для мипов, чтобы в 3D рисовать.
Отступ размером с глиф? серьёзно?
samrrr
> Отступ размером с глиф? серьёзно?
Серьезно)
betauser
> На квадратных разница 0%)
О чем и речь. В статике да, есть вероятность сэкономить на сортировке. В динамике (когда есть некая уверенность в том, что перейдёшь на следующий атлас) это уже не имеет особого смысла.
betauser
> Серьезно)
Записываем это двигло к разряду того, с чем никогда не стоит иметь дело, как с унижайном.
samrrr
> Записываем это двигло к разряду того, с чем никогда не стоит иметь дело, как с
> унижайном.
Серьезно?
betauser
> Серьезно?
Серьезно)
samrrr
> Записываем это двигло к разряду того, с чем никогда не стоит иметь дело, как с
> унижайном.
А чем Unigine-то не угодил? 0_о Идеология\Концепция?
g-cont
> А чем Unigine-то не угодил? 0_о Идеология\Концепция?
Поработаешь с ним, поймёшь.
https://developer.unigine.com/ru/docs/2.15.1/api/library/common/c… ptr?rlang=cpp
Конструкторы перемещения? Ишь чего захотел, нет такого. Если ты думаешь что это обычный shared_ptr то нет, это помесь shared и weak. И примерно тоже самое качество кода во всём движке.
Тема в архиве.