开发者

How to draw a text (write on the screen) using standard OpenGL functions?

开发者 https://www.devze.com 2023-01-12 01:46 出处:网络
I know I can do it with GLUT. But, I have a big project and I had problem adding GLUT (I am using Delphi) to it.

I know I can do it with GLUT. But, I have a big project and I had problem adding GLUT (I am using Delphi) to it.

So, what other options do I 开发者_Go百科have?


You can't do it with standard OpenGL functions, unless you basically have textures with text in them, or a list of characters on a texture that you draw from. But don't reinvent the wheel - I would recommend FTGL for rendering text in an OpenGL view. It has several different rendering methods and takes care of things like kerning for you, supports unicode, and has good text metrics features too.


Use TextSuite. http://textsuite.opengl24.de/


Use FreeType to yield a bitmap given your text.

Edit: It is a mature cross platform library that brings a complete text display capabilities based on fonts including normal Windows TrueType fonts. Here is its definition from Wikipedia:

FreeType is a software library written in C that implements a font rasterization engine. It is used to rasterize characters into bitmaps and provides support for other font-related operations.


If you do decide to implement your own font system be sure to use a texture atlas, I've seen too many OpenGL demos that use one texture per glyph, which leads to atrocious performance (due to the overheads incurred in the OpenGL driver and texture caches).

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号