zoukankan      html  css  js  c++  java
  • [译]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,'3');

    这里重点讨论真是的栅格位置是什么.栅格位置可以用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 != ''; c++) {
        glutBitmapCharacter(font, *c);
      }
    }
  • 相关阅读:
    日记
    没有起得晚的周末,希望今天能做一些什么
    怎么就这么喜欢测软件呢?—— Google Calendar农历问题
    Sharepoint带自定义属性的FieldType
    自己使用Outlook 2003 的一些小技巧
    Xml名称空间
    c# jingtailei 静态成员
    select count
    varchar nvarchar(转)
    linq 笔记(1)
  • 原文地址:https://www.cnblogs.com/live41/p/3392391.html
Copyright © 2011-2022 走看看