2010-08-14 2 views
6

Я знаю, что могу сделать это с помощью GLUT. Но у меня большой проект, и у меня возникла проблема с добавлением GLUT (я использую Delphi).Как нарисовать текст (написать на экране), используя стандартные функции OpenGL?

Итак, какие у меня есть другие варианты?

+0

Я использую Delphi для записи OpenGL, поэтому в основном я не могу использовать файлы заголовков. Если есть внешняя библиотека, у меня должен быть DLL-файл, поэтому я могу его использовать. – Mahm00d

+0

Вам это помогает? http://wiki.delphigl.com/index.php/wglUseFontBitmaps – Lars

ответ

6

Вы не можете делать это со стандартными функциями OpenGL, если у вас в основном нет текстур с текстом в них или список символов на текстуре, из которой вы рисуете. Но не изобретайте велосипед - я бы порекомендовал FTGL для рендеринга текста в представлении OpenGL. Он имеет несколько различных методов рендеринга и заботится о таких вещах, как кернинг для вас, поддерживает unicode и обладает хорошими функциями метрики текста.

+0

Имеет ли FTGL DLL-файл? Потому что все, что я вижу на их сайте, - это файлы заголовков. Я использую Delphi и вам нужно добавить DLL-файл, чтобы использовать его. – Mahm00d

+0

Имеет как DLL, так и статическую связь, см. Документацию сайта для получения дополнительной информации. – AshleysBrain

1

Используйте FreeType, чтобы получить растровое изображение с учетом вашего текста.

Редактировать: Это зрелая кроссплатформенная библиотека, которая предоставляет возможности полного отображения текста на основе шрифтов, включая обычные шрифты Windows TrueType. Вот его определение из Википедии:

FreeType является программное обеспечение библиотека, написанная в C, который реализует растеризации двигатель шрифта . Он используется для растеризовать символы в растровые изображения, а обеспечивает поддержку других операций, связанных с шрифтом, .

+0

Можете ли вы объяснить, как это работает? Я имею в виду, что FreeType - это процедура или единица для использования? – Mahm00d

+0

@FlomEnol, проверьте обновленный ответ. – mmonem

1

Если вы сделать решили реализовать свою собственную систему шрифтов убедитесь использовать texture atlas, я видел слишком много OpenGL демки, которые используют одну текстуру каждого глифа, что приводит к зверской производительности (из-за накладных расходов, понесенных в драйвер OpenGL и кэш текстур).