Android OpenGL рисования текста - PullRequest
3 голосов
/ 12 января 2011

Я планировал рисовать текст с помощью opengl и не мог понять, как заставить его нарисовать / построить действительно строку. Если бы я хотел нарисовать «Hello World», я мог бы создать текстуру для каждой буквы и нарисовать их все, но я знаю, что должен быть более простой способ «вытащить» правильный набор символов сразу, а затем нарисовать только один раз. , Я подумал, что могу получить все отдельные текстуры, добавить их в массив вершин, а затем нарисовать массив вершин, используя только один вызов для рисования, но это кажется неэффективным. Любые учебники, которые охватывают этот конкретный раздел?

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Я написал загрузчик и средство визуализации Android для моего генератора растровых шрифтов (CBFG), который делает то, о чем вы говорите.

Источник Android для загрузки и отображения шрифтов - http://www.codehead.co.uk/cbfg/TexFont.java

Инструмент для создания собственных файлов шрифтов находится на http://www.codehead.co.uk/cbfg

По сути, все глифы шрифтов расположены на одном растровом изображении, а буквы нарисованы путем рендеринга серии одинаковых квадратов, каждый раз меняя координаты UV для отображения требуемой буквы.

Надеюсь, это поможет.

2 голосов
/ 12 января 2011

Предполагая, что вы хотите, чтобы только 2D-буквы появлялись в определенной точке в 3D-пространстве, обычный способ сделать это - тот, который вы описываете.Ну, на самом деле я бы создал один растровое изображение для всей строки, а затем нарисовать растровое изображение на сцене.Это не совсем неэффективно - на самом деле это очень эффективно, потому что вы можете кэшировать растровое изображение текста, и вам нужно только рассчитать его один раз, а не каждый раз, когда рисуется сцена.Вроде бы много кода для чего-то простого, но OpenGL часто такой.

...