[译]GLUT教程 - 位图字体
Lighthouse3d.com >> GLUT Tutorial >> Fonts >> Bitmap Fonts
位图字体一般是二维字体.虽然我们会把它放到三维世界,但这些字体没有厚度,也不能渲染和测量,只能翻译.除此之外,字体会一直面向镜头,像一张广告牌一样.虽然这个可以看作是潜在的缺点,但另一方面看我们也不用考虑字体的方向问题.
本节我们会演示GLUT函数如何显示位图文本到屏幕.这里用到glutBitmapCharacter函数来写入字符.原型如下:
void glutBitmapCharacter(void *font, int character)
font - 显示字体的名称
character - 待渲染的字母,符号,数字等..
字体名的可选值如下:
GLUT_BITMAP_8_BY_13
GLUT_BITMAP_9_BY_15
GLUT_BITMAP_TIMES_ROMAN_10
GLUT_BITMAP_TIMES_ROMAN_24
GLUT_BITMAP_HELVETICA_10
GLUT_BITMAP_HELVETICA_12
GLUT_BITMAP_HELVETICA_18
有些字体名称很容易辨认,所以你应该能找到你要的,尽管如此,你会在下面的实例中的弹出菜单中尝试所有字体.
下面这行举例出如何调用glutBitmapCharacter函数来输出一个字符到栅格位置.
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18,'');
这里重点讨论真是的栅格位置是什么.栅格位置可以用OpenGL库中的glRasterPos函数族来设置.其中两个的原型如下:
void glRasterPos2f(float x, float y);
void glRasterPos3f(float x, float y, float z);
x,y,z - 用于显示文本的本地坐标
glutBitmapCharacter函数渲染字体到指定的位置并利用字宽来增强当前的栅格位置.因此,渲染一个字符串时,只需要接连调用glutBitmapCharacter函数就可以达到输出目的.下面函数渲染了一个字符串到指定的栅格位置起始:
void renderBitmapString(
float x,
float y,
float z,
void *font,
char *string) { char *c;
glRasterPos3f(x, y,z);
for (c=string; *c != '\0'; c++) {
glutBitmapCharacter(font, *c);
}
}
[译]GLUT教程 - 位图字体的更多相关文章
- [译]GLUT教程 - 笔划字体
Lighthouse3d.com >> GLUT Tutorial >> Fonts >> Stroke Fonts 笔划字体是用线条生成的.跟位图字体相反,笔划字 ...
- [译]GLUT教程 - 位图和正交投影视图
Lighthouse3d.com >> GLUT Tutorial >> Fonts >> Bitmap Fonts and Orthogonal Projecti ...
- [译]GLUT教程(目录)
http://www.lighthouse3d.com/tutorials/glut-tutorial/ GLUT是OpenGL Utility Toolkit的意思.作者Mark J. Kilgar ...
- [译]GLUT教程 - 整合代码6
Lighthouse3d.com >> GLUT Tutorial >> Extras >> The Code So Far VI 下面代码以窗体模式启动.你可以在 ...
- [译]GLUT教程 - 整合代码5
Lighthouse3d.com >> GLUT Tutorial >> Extras >> The Code So Far V 该代码与位图字体的代码类似.区别是 ...
- [译]GLUT教程 - 整合代码4
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> The Code So Far IV 以下代码使用了位图字 ...
- [译]GLUT教程 - 渲染到子窗体
Lighthouse3d.com >> GLUT Tutorial >> Subwindows >> Rendering to Subwindows 先回顾一下之前 ...
- [译]GLUT教程 - 游戏模式
Lighthouse3d.com >> GLUT Tutorial >> Extras >> Game Mode 根据GLUT官网的说明,GLUT的游戏模式是为开启 ...
- [译]GLUT教程 - glutPostRedisplay函数
Lighthouse3d.com >> GLUT Tutorial >> Avoiding the Idle Func >> glutPostRedisplay 直 ...
随机推荐
- Cookie和Session在Node.JS中的实践(三)
Cookie和Session在Node.JS中的实践(三) 前面作者写的COOKIE篇.SESSION篇,算是已经比较详细的说明了两者间的区别.机制.联系了.阅读时间可能稍长,因为作者本身作图也做了不 ...
- [BZOJ 4031] 小Z的房间
Link: BZOJ 4031 传送门 Solution: 矩阵树定理的模板题 看完下面两篇文章就会啦: 周冬论文:https://wenku.baidu.com/view/872eb02de2bd9 ...
- [CP1804]最短路
题目大意: 一个$n(n\le10^5)$个点的图,给定一个常数$c$,每对点$i,j$之间有权值为$(i\oplus j)\times c$的边.另有$m(m\le5\times10^5)$条指定权 ...
- SONY的一款Win8平板
今天看到了SONY新发布的一款x86的平板电脑: 铝合金的机身,分离的屏幕,非常漂亮.参数上还是很给力的,i5-4210/i7-4610的处理器,1920x1080的屏幕.4G的内存.9.9mm的厚度 ...
- 【MySQL】undo,redo,2PC,恢复思维导图
http://blog.itpub.net/22664653/viewspace-2131353/
- codeigniter与swfupload完整解决方案
转自:http://blog.sina.com.cn/s/blog_6d8dc8eb0100s4bv.html codeigniter(简称ci)有研究了一段时间了,看重的是ci的轻量,便捷,最近公司 ...
- ubuntu配置 测试环境 记录
1 更新源 进入 /etc/apt/sources.list sudo vim进入, 更改为如下源 # See http://help.ubuntu.com/community/UpgradeNot ...
- 搭建Git本地服务器(转)
http://www.cnblogs.com/trying/archive/2012/06/28/2863758.html 当前任务,学习中... 公司小范围用法: 服务器上做的: 在服务器上建立一 ...
- 【Hadoop】HADOOP 总结--思维导图
- xpath节点匹配简易教程
2017-03-23 非本人原创,只是写爬虫时很有用,就留下了 <A id="a1"> <B id="b1"> <C id=&qu ...