如何使用OpenGL和C#在屏幕上显示文本#

问题描述:

情境:简单的3D游戏项目--OpenGL + C# 我读过OpenGL函数不支持轻松打印屏幕上的文字。 有谁知道如何做到这一点?我不需要任何太复杂的解决方案。 我只需要在一个角落显示例如FPS比率,或显示在角落角落中拾取物体的数量。 thx。如何使用OpenGL和C#在屏幕上显示文本#

+0

请尝试看看glutStrokeCharacter? – 2011-12-14 21:58:06

一种很好的文字渲染方法是使用带有字体字符的纹理,并为每个具有良好纹理坐标的字符绘制一个四边形。这通常会给出好的结果,并且是平台无关的。然而,这实施起来相当繁重。

在windows上使用Opengl32.dll的wgl函数来呈现文本。这里的例子:http://www.pinvoke.net/default.aspx/opengl32.wglusefontoutlines#

基本的过程是你必须预先建立一个字形的显示列表(将Windows字体渲染到OpenGL上下文中),然后你可以在OpenGL显示面上使用字符作为索引预渲染的显示列表。

对于预包装的托管解决方案,看看Mono的道库:http://www.mono-project.com/Tao

http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/这应该给你想要的东西。它在C++中,但我猜测这不应该是一个问题。它基本上阐述了neodelphi的建议。

虽然你说你不需要太多的复杂性,只需要它的FPS,有 一个不错的字体渲染系统非常方便。

HTH