我正在使用C++、SDL 和OpenGL制作一个简单的2D 平台游戏,现在我想在屏幕上显示文本,例如点、计时器、简单消息。
在各个网站上,我读到位图字体可能是解决此问题的方法,但是有人可以给我一个简单易懂的示例,说明如何在 OpenGL 中使用它们将测试消息输出到屏幕吗?
编辑:我发现了一些有趣的东西,FTGL。本教程(第二个链接)中的示例代码看起来非常简单。无法让它在自动取款机上工作,但稍后会再回来。
FTGL 是一个免费的跨平台开源 C++ 库,它使用 Freetype2 来简化 OpenGL 应用程序中的字体渲染。 FTGL 支持位图、像素图、纹理贴图、轮廓、多边形网格和拉伸多边形渲染模式。
- http: //sourceforge.net/projects/ftgl/
- http://ftgl.sourceforge.net/docs/html/ftgl-tutorial.html
- http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/
I am making a simple 2D platformer with C++, SDL and OpenGL and now I would like to display text on the screen, e.g. points, timer, simple messages.
On various site's I've read that Bitmap Fonts would probably be the way to go for this, but could someone please give me a straightforward, easy to understand example of how to use them in OpenGL to output a test-message to the screen?
EDIT: I found something interesting, FTGL. The example-code in the tutorial (2nd link) looks very straightforward. Couldn't get it to work atm but will go back to it later.
FTGL is a free cross-platform Open Source C++ library that uses Freetype2 to simplify rendering fonts in OpenGL applications. FTGL supports bitmaps, pixmaps, texture maps, outlines, polygon mesh, and extruded polygon rendering modes.
- http://sourceforge.net/projects/ftgl/
- http://ftgl.sourceforge.net/docs/html/ftgl-tutorial.html
- http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/
发布评论
评论(4)
您可以使用 SDL_gfx,它可以输出文本使用像这样的位图字体:
You can use SDL_gfx, it can output text using bitmap fonts like this:
您必须创建一个位图图像,其中包含要使用的所有字符。最简单的方法是使用固定宽度的字体。然后为每个字母绑定纹理的该部分。我几年前在 Pascal/OpenGL 中编写过这样的代码,将搜索它并发布
编辑这里是代码
You have to create a bitmap image, containing all the characters you want to use. The easiest way is with a fixed-width font. Then for each letter you bind that part of the texture. I've written such code in Pascal/OpenGL years ago, will search for it and post
Edit here is the code
当您已经使用 SDL 时,为什么不添加 SDL_ttf 呢?
When you use SDL already why not add SDL_ttf?
我使用了 GLUT 中提供的位图字体。 JOGL(Java + OpenGL)中的相应调用是:
这肯定可以轻松适应OpenGL + C++。
I used bitmap fonts that are available in GLUT. The respective calls in JOGL (Java + OpenGL) are:
This can surely be adapted to OpenGL + C++ easily.