场景:简单的3D游戏项目- OpenGL + C#我读到OpenGL函数不支持在屏幕上轻松打印文本。有谁知道怎么做吗?我不需要任何太复杂的解决方案。例如,我只需要在一个角落中显示FPS速率,或者在另一个角落中显示拾取对象的数量。谢谢。
发布于 2011-12-15 05:58:55
一种很好的文本渲染方法是对字体字符使用纹理,并使用良好的纹理坐标为每个字符绘制一个四边形。这通常会产生良好的结果,并且是独立于平台的。然而,这是相当繁重的实现。
发布于 2011-12-15 06:16:11
在windows上使用Opengl32.dll的wgl函数来渲染文本。示例如下:http://www.pinvoke.net/default.aspx/opengl32.wglusefontoutlines#
基本过程是,您必须预先构建字形的显示列表(将Windows字体呈现到OpenGL上下文中),然后可以在OpenGL显示表面上绘制字符,将字符作为索引绘制到预先呈现的显示列表中。
有关预打包的托管解决方案,请查看Mono的Tao库:http://www.mono-project.com/Tao
发布于 2011-12-16 12:14:43
http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/这应该能满足你的所有需求。这是在C++中,但我猜这应该不是问题。它基本上阐述了neodelphi提出的建议。
虽然你说你不需要太多的复杂性,只需要FPS,但有一个很好的字体渲染系统是非常方便的。
HTH
https://stackoverflow.com/questions/8512133
复制相似问题