Рендеринг строки в текстуру в Android и OpenGL ES - PullRequest
0 голосов
/ 08 апреля 2010

Я везде гуглил, но не могу найти ничего для рендеринга строк в текстуры и последующего отображения этой текстуры на квадроцикле на экране. Может ли кто-нибудь предоставить информацию о процессе или предоставить хорошие ресурсы, которые описывают, как? Является ли рендеринг строк для текстур лучшим способом отображения текста в приложении Android OpenGL ES?

EDIT: Итак, LabelMaker мешает альфа-смешиванию, текстура (созданная из PNG с прозрачным фоном) теперь имеет сплошной черный фон, а не прозрачный фон. Если я закомментирую весь код, связанный с LabelMaker, он будет работать нормально.

UPDATE: Не берите в голову. Я взглянул на код и обнаружил, что LabelMaker отключал смешивание после рисования меток.

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Я думаю это - это то, что вы ищете.

0 голосов
/ 06 декабря 2010

Если вы не хотите использовать расширения GL, вам нужно создать шрифт как растровое изображение, а затем создать класс для преобразования этой строки в квадраты, которые вы можете нарисовать.

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

Другой вариант - визуализировать текст в закадровом растровом изображении с помощью Android, а затем связать текст как текстуру. Это позволит вам использовать встроенную обработку и рендеринг шрифтов в android для создания текстурных шрифтов.

Второй метод, который я еще не использовал, но я рендерил карты Google на внеэкранный холст, а затем привязал растровое изображение как текстуру GL, поэтому делать это для текста должно быть намного проще.

Если вы планируете модифицировать строковые данные в цикле gl, вам нужно действительно позаботиться о StringBuilder, поскольку он вызывает проблемы с сборкой мусора и производительностью. Я жестко кодирую все свои строки, чтобы они не распределялись, и все мои быстрые числа выполняются с помощью второй функции рисования, предназначенной для рисования меняющихся чисел без использования строителя строк.

...