programina
> у ТС GL, а Imgui требуется для работы DX
В перлы.
Имгуй выдаёт на выхлопе список трианглов, рендерить можно хоть софтварно, в официальном репозитории даже лежат рекомендованные реализации под конкретные гапи и платформы
Повышай квалификацию
https://github.com/ocornut/imgui/tree/master/examples
eDmk
1. Надо постоянно пересоздавать меш текста и заливать его в буфер.
2. Размер буфера всегда ограничен максимальной длиной строки.
3. Текст динамически изменяется, что приводит к постоянному обновлению буфера.
В общем вопрос: можно ли рисовать/генерить треугольники в геометрическом шейдере?
1) В любом случае придётся обновлять меш , если текст динамически изменяется.
2) 128 - 256 символов вполне достаточно. Вы просто не впишите строку в размер экрана
3) В любом случае придётся обновлять меш , если текст динамически изменяется. Для статических строк ничего обновлять не нужно.
Генерить треугольники можно, а как вы текстурные координаты символа будете накладывать в GS ? и там есть ограничения по количеству созданых примитивов .
programina
vaz
Вы прикидываетесь дурачками или не в курсе, что DX - это комплекс библиотек и одной лишь графической частью оно не ограничено?
nes
> Вы прикидываетесь дурачками или не в курсе, что DX - это комплекс библиотек и
> одной лишь графической частью оно не ограничено?
Додик, прочитай мой ответ внимательно
vaz
Ок, тогда наезд мой касается только Програмины.
bykabak
> Генерить треугольники можно
Во! То что нужно. Текстура не нужна. Просто цвет.
Если уж так хочется.
Можно квадами маленькими делать буквы и рисовать нужным цветом.
Или
Например цифра 2 будет 22 треугольника.
Можно в 3д максе сделать сетки букв и в свой формат перегнать, для проги.
В 3д максе есть 3д текст.
https://www.youtube.com/watch?v=to6R-mXGB6g
По-моему растровый шрифт красивее, и быстрее во всех смыслах, когда всего два треугольника - прямоугольник и на него натянута любая текстура буквы.
bykabak
Конечно. А он векторный хочет изобрести.
bykabak
> и на него натянута любая текстура буквы
Ведь текстуры тоже грузить надо.
Мне надо маленький текст для отображения координат, углов и прочей мелочи.
Такой вот очень даже подойдет:

Меш будет быстро генериться.
Я свой вариант 55х55 пикселей оптимизировал: ~2600 fps выдает. Вполне сносно.
Правда если текст не кидать по шине в виде мешей, то ~3700 fps :)
Из-за этой разницы и заморочился.
Видимо текстуры лучшй вариант, т.к. один раз надо будет кинуть в память,
а потом рисовать в шейдере.
eDmk
> Ведь текстуры тоже грузить надо.
Они грузятся один раз при старте системы. А если все шрифты загнать в одну текстуру, то это вообще будет сказка по скорости.

bykabak
Видюха правда чуть не взорвалась, а так клево :)
eDmk
> Видюха правда чуть не взорвалась, а так клево :)
Это обычные шрифты нарисованные с использованием DirectWrite и сохранённые в текстуру.
Обновляется очень быстро.
Что за видюха и какой FPS ?
bykabak
> Что за видюха и какой FPS ?
>
>
При запуске и если ничего не трогать (по умолчанию), то 550-600 fps.
Gigabyte GeForce GTX 980 Ti 6Gb
Хорошая видюха.
И размер букв не сильно влияет на производительность шрифтовой системы ( если размер символов не на пол экрана ). + шрифтов по сути можно держать сколько памяти в GPU хватит.
Треугольники имеет смысл добавлять, если вы делаете объёмный 3D шрифт - векторный, и тогда уже можно или текстуру натягивать или просто заливать цветом эти треугольники.
Тема в архиве.