gpt4 book ai didi

string - 如何在 OpenGL 中的 3d 场景上打印字符串

转载 作者:行者123 更新时间:2023-12-01 02:34:29 27 4
gpt4 key购买 nike

我需要一些帮助才能在 opengl 3d 场景上打印字符串。
我在使用模型 View 矩阵和投影矩阵时遇到了一些问题。据我了解,投影矩阵用于场景设置,模型 View 矩阵用于绘制和变换场景中的对象。所以,要在 3D 场景上绘制一些东西,我知道接下来的程序最需要完成:

  • 为 3d 场景设置投影矩阵
  • 为 3d 场景设置模型 View 矩阵
  • 画opengl的东西
  • 为 2d 叠加设置投影矩阵
  • 为 2d 叠加设置模型 View 矩阵
  • 为 hud 绘制 opengl 的东西

  • 这是正确的程序吗?

    最佳答案

    对于 2D 渲染,您可以将投影矩阵视为 Canvas ,将移动 View 视为文本的位置。您想像这样设置正交投影:

    glOrtho(0.0F, windowWidth, 0.0F, windowHeight, -1.0F, 1.0F);

    对于此投影,每个单位表示一个像素(glTranslate2f(120.0, 100.0) 会将您的文本定位在像素 (120, 100) 处。此投影将 (0,0) 映射到屏幕左下角。如果您想将其映射到左上角,您可以执行以下操作:

    glOrtho(0.0F, windowWidth, windowHeight, 0.0F, -1.0F, 1.0F);

    至于如何渲染文本,OpenGL 默认不支持它,这意味着您必须创建一个字体渲染库或使用现有的。在此之前,您需要牢记您对文本渲染的需求:是平面还是 3D?它将是静态的或变换的(缩放、旋转)等。

    在这里,您可以找到关于具有优缺点和库的 opengl 文本渲染技术的调查:
    http://www.opengl.org/archives/resources/features/fontsurvey/

    我开始使用 FTGL 来渲染 TTF 字体,但是这个库破坏了我的游戏性能。所以我决定实现我自己的字体库并使用纹理字体,这并不比 TTF 好,但它可以满足我的需求。

    我用过这个程序:http://www.angelcode.com/products/bmfont/
    它采用 TTF 字体并导出纹理和文件描述符,其中包含您将用于渲染的纹理中的每个字母位置、大小和填充。

    希望有帮助。

    关于string - 如何在 OpenGL 中的 3d 场景上打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10824564/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com