场景:简单的3D游戏项目 - OpenGL + C#
我了解到,OpenGL函数不支持轻松地在屏幕上打印文本。
有没有人知道怎么做呢?我不需要太复杂的解决方案。
我只需要在一个角落显示例如FPS率或者在另一个角落显示拾取物品的数量即可。
谢谢。
文本渲染的一种好方法是使用带有字体字符的纹理,并为每个字符绘制一个四边形,具有良好的纹理坐标。这通常会产生良好的结果,并且是平台无关的。但是,这种方法实现起来相当繁重。
使用Opengl32.dll的wgl函数在Windows上渲染文本。示例在这里:http://www.pinvoke.net/default.aspx/opengl32.wglusefontoutlines#
基本过程是您必须预先构建字形的显示列表(将Windows字体渲染到OpenGL上下文中),然后可以使用字符作为索引来绘制OpenGL显示表面上的字符。
对于一个预打包的托管解决方案,请查看Mono的Tao库:http://www.mono-project.com/Tao
http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/ 这个链接应该能满足你的需求。虽然是用C++编写的,但我猜这不应该是问题。它基本上详细阐述了neodelphi所建议的内容。
虽然你说你不需要太复杂的东西,只需要FPS,但拥有一个漂亮的字体渲染系统非常方便。
希望对你有所帮助。