static_cast
С такой проблемой может справится только победитель битвы экстрасенсов.
неважно, справился.
а как правильно выровнять буквы? Точнее, как расположить их в текстуре так, как если бы они представляли собой реальный текст, со всеми отступами?
static_cast
> Точнее, как расположить их в текстуре так, как если бы они представляли собой
> реальный текст, со всеми отступами?
Если ты потом из этих букв хочешь составлять слова - то так делать не надо
ладно, а как надо? Как хотя бы вертикально символы выровнять?
static_cast
> Как хотя бы вертикально символы выровнять?
В текстуре символы не выравниваешь. Запоминаешь нужную для выравнивания инфу: высоту, ascend и dscend расстояния. Выравниваешь при выводе.
а выравнивать при выводе - не слишком расточительно ли получается? Если на каждую букву по квадратику?
Накладно держать position текстуру. Есть подход, который позволяет получить позицию пикселя из depth. Но там же нет альфы. Как быть?
Ответом мне послужит
glAlphaFunc(GL_LESS, 0.9); glEnable( GL_ALPHA_TEST);
glAlpha* deprecated
frag
if(color.a < 0.9)
discard;
начиная с какого размера текстуру эффективнее хранить отдельно (не в атласе, в смысле)?
16384x16384 для ogl 4+
8192x8192 для ogl 3
HolyDel
> 16384x16384
а есть видюхи которые держат больший размер? :) Просто интересно.
хз. наверное пока нет.
но смысл в том и есть - что ненандо разделять на различные текстуры тогда, когда все можно уместить в одной.
были тут мысли про кэш, но мне кажется он не стоит разрыва батчей
HolyDel
> были тут мысли про кэш, но мне кажется он не стоит разрыва батчей
разумеется не стоит, более того куча мелких разноразмерных текстур добавляют работы драйверу, ведь ему их тоже нужно хранить и при этом стараться избегать фрагментации.
Тема в архиве.