LINUX.ORG.RU

Рисование текста, это же просто?

 , , ,


0

1

Вот есть у меня GLSurfaceView, есть шрифт.

Делаю текстуру с символами и рисую текст.

Вроде бы всё хорошо, пока язык английский или русский или скажем польский. Но вот язык становится корейским...

https://en.wikipedia.org/wiki/Hangul_Syllables

А дальше?

  • Генерировать огромный атлас ( возможно только с использованными jamo )? ( несколько атласов )
  • Рисовать фрагменты текста в текстуру, а дальше их использовать?

    Может быть есть какая готовая библиотечка для этого? ( Рендеринга текста (на восточных языках) на GLSurfaceView )



Последнее исправление: mike666 (всего исправлений: 1)

можно отрисовывать текст с помощью OpenGL без текстур. Как векторная графика получается почти. Это реализовано в JOGL. посмотри у них юнит тесты. Но там оч запутанно)))

ii8_ ★★★★
()

это большая и сложная задача. Для этого есть harfbuzz, но не знаю как он применим в андроеде, думаю, там есть свои средства для этого

thesame ★★★★
()

По идее все эти слоги просто комбинации из 1 гласной и 1-2 согласных, которых в сумме ~40. Их порядок написания четко определен, т.е. теоретически можно оптимизировать создание текстуры. Но если понадобится китайский или японский, то уже никак :)

kazufukurou
()
Ответ на: комментарий от ii8_

TextRenderer из JOGL смотрел, прямо таки-то что нужно, но он похоже с андроидом не дружит совсем.

В общем-то я и думал рисовать символы векторно, но ничего подходящего для андроида не нашел ( ну кроме варианта кросс-компилировать freetype, но этого очень и очень не хотелось бы )

mike666
() автор топика
Ответ на: комментарий от thesame

Спасибо, про harfbuzz не знал. Но выглядит довольно громоздким...

mike666
() автор топика
Ответ на: комментарий от kazufukurou

Да Хангыль можно было бы и порисовать вручную, но китайский с японским в будущем не исключены :)

mike666
() автор топика
Ответ на: комментарий от mike666

Сорри, тогда не было возможности найти нужные тесты.
Вот -> https://github.com/sgothel/jogl/tree/master/src/test/com/jogamp/opengl/test/j...
позапускай локально (я тупо копировал тоько нужные классы), присмотрись.
TextRenderer вроде немного не то, он как раз таки как обычно всё делает - через текстуры.
Готового под ведройд - хз. вообще JOGL поддерживает, но не думаю что ты его использовал как бэкенд.
Технически, если приспичит, можно разобрать реализацию и адаптировать под себя ибо это всё тот же OpenGL

ii8_ ★★★★
()
Ответ на: комментарий от ii8_

Спасибо. Они значится средствами os рисуют текст, но со своей разбивкой по строкам.

mike666
() автор топика
Ответ на: комментарий от mix_mix

Сказали бы они что с этим мега-атласом дальше делают :)

Ну да ландо, всё равно хангылю придется ждать следующих выходных... Рабочая неделя впереди.

mike666
() автор топика

Спасибо всем отклинувшимся

В итоге стал создавать по текстуре (рисуя в неё строку средствами os) на строку, а затем из них собирать текст.

mike666
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.