问题标签 [ftgl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 仅渲染部分文本 FTGL、OpenGL
我正在使用 FTGL 库在我的 C++ 项目中呈现文本。
我可以使用以下方法轻松呈现文本:
不幸的是,由于调整了它所在的容器的大小,这个显示文本的按钮被部分隐藏了。我可以毫无问题地绘制 Button 的背景以适合容器,但是我在处理文本时遇到了问题。是否可以以某种方式仅绘制给定宽度的文本而其余的则忽略?
这是一个显示我的问题的屏幕:
如您所见,“单击此处”按钮已正确绘制,但我无法对“单击此处”文本执行相同操作。
c++ - glScalef 用于光栅字体,OpenGL
我有一个简单的问题。我正在使用 FTGL 库PixmapFont
在我的游戏应用程序中绘制我的。我的问题是 - 是否可以使用glScalef()
缩放光栅字体?据我了解,如果我必须使用glRasterPos()
而不是glTranslatef()
它也可能考虑glScalef()
功能?但如果是这样,是否有任何方法可以缩放这种字体?
这是我需要缩放的:
我可以改变它的大小,只需把这个:
但是对于这么小的字体,它给了我模糊的效果。从我在某处读到的内容来看,最好渲染更大尺寸的字体 - 例如 72 - 然后将其缩小,因为它可以提供更好的结果。
c++ - 调整大小后丑陋的字体,OpenGL
我将从一张图片开始:
上图展示了以两种不同方式实现的文本,都使用相同类型的字体 - Arial、粗体、11 号。
底部的那个是在图像编辑程序中创建的,而顶部的那个是在我的 OpenGL 应用程序中创建的。更准确地说,使用FTExtrudeFont
FTGL 库:
我的问题是,为什么画成这样?我认为造成这种情况的原因可能是不同的大小调整算法,但如果是这样,我怎样才能在我的 OpenGL 应用程序中实现这种更好看的字体(底部字体)?
编辑:
要渲染字体,我只调用这个函数:
c++ - 使用多个画布时,FTGL 纹理字体仅显示黑框
我在 FTGL 中使用纹理字体将字体渲染到多个画布中,作为轴等的标签。我的第一个情节很好。然而,所有后续的画布都将我的纹理字体呈现为简单的黑色方块。我还注意到某些数字不会显示在实际渲染的画布上。“中心时间”应显示 8.3956,但改为显示以下内容。
字体渲染如下:
在哪里
我尝试了一些方法,例如清除颜色和深度位,以及 glEnable(GL_TEXTURE_2D); glDisable(GL_DEPTH_TEST); 但这似乎没有帮助。出于某种原因,如果我将 FTTextureFont::FaceSize(int) 添加到我的一个返回文本宽度的例程中,一切都会正确显示(尽管速度很慢)。从 FTGL 源代码来看,除了 glDeleteTexture() 调用之外,FaceSize() 似乎不会操纵 openGL 参数,所以我有点困惑为什么会这样。
c++ - 有没有办法放入缓冲区 FBO 纹理输出格式 GL_ALPHA?
我正在使用 ftgl 字体库。
创建图像的 ftgl 函数具有以下代码:
格式 GL_ALPHA。
当我渲染到 FBO 图像(GL_RGBA)时,它们看起来还不错。但是当我将字体渲染到 fbo 纹理时,颜色和 alpha 存在一些问题。
此图像应在不接触像素的编辑器中打开(浏览器使用抗锯齿)。
代码:
/// 1步创建FBO
/// 2 步渲染到 fbo
ftgl::render();
/// 三步渲染纹理
c++ - 文本渲染非常慢
我正在使用 FTGL 库在我的 C++、OpenGL 应用程序中渲染文本,但我发现它非常慢,尽管据说它是快速高效的库。
即使对于少量文本,性能下降也是可见的,但是当我尝试渲染几行文本时,FPS 从 350~ 下降到 30~:
是的,我已经知道 FPS 不是检查效率的好方法,但在这种情况下应该没有那么大的差异。
我找到了一个允许我让 FTGL 在内部使用显示列表以提高速度的功能,但它似乎默认打开。无论如何,我尝试使用它,但它什么也没给我。所以我想可能是它被某种方式损坏了,或者我不太了解它,所以我决定将渲染文本放入我自己的显示列表中,但差异要么很小,我什至看不到,要么没有不同之处。
我在调试模式下检查了断点 - 它只创建一次显示列表,稍后它只调用以前创建的一个。
渲染速度如此缓慢的原因可能是什么?我怎样才能加快速度?
编辑:
我正在使用FTTextureFont
(每个字形使用一个纹理)。根据这个FTGL 教程,我宁愿使用FTBufferFont
,因为它每行只使用一个纹理。缓冲字体应该更快,但在我尝试后它更丑甚至更慢(6 fps,而纹理字体给了我 30 fps)。
编辑2:
这就是我创建字体的方式:
编辑3:
这是从 FTGL 库源代码中获取的函数,它在FTTextureFont
. 它对单独的字形使用相同的纹理,只是使用其他坐标,所以这应该不是问题。
mingw - FTGL 和 MinGW - 你打算如何在土星的第三个卫星上编译这个东西?
好的,我正在尝试让 FTGL 在 MinGW 上工作,但我在编译库时遇到了麻烦。
我到处搜索谷歌,尝试了许多不同的东西,最接近让它正常工作的是这个问题,但是,他假设你可以编译库......我遇到麻烦的这一步。
好的,所以我将 MinGW 与 Code::Blocks 一起使用,我可以运行 OpenGL + GLUT 程序,它可以编译并运行良好。
我对编译库不是很有经验,所以请温柔一点。
所以,FTGL 不使用 CMake,它使用./configure
, make
, make install
... 我看到了不同的文件configure.???
和Makefile.???
文件,我相信这些文件与 autoconf 和 automake 一起使用。所以我尝试下载这些,没有可执行文件指向我的PATH
环境变量,所以我发现他们使用 Python ......
现在,我似乎无法将 Python shell 放到正确的位置来运行./configure
命令。不知怎的,我觉得我走错了方向。
嗯,这太难了,也许 MSYS 有内置的自动工具?好吧,如果是这样,我就无法导航到库的源文件,也找不到 autoconf 和 automake。
我要做的就是在 MinGW 中编译 FTGL。有人能帮帮我吗?
c++ - 其他包含目录的困难
我正在尝试将 FTGL 库包含到我的图形项目中,但每当我尝试包含主头文件时,我都会收到 c1083 错误:
我已将路径 $(Project1)include\FTGL 添加到“其他包含目录”和 VC++ 包含目录无济于事。Project1 是主要的解决方案文件夹,“include”是 glew 和诸如此类的标题所在的文件夹。
我究竟做错了什么?谢谢您的帮助。
c++ - 如何从 C++ 使用 FTGL C API?
如何在 Visual Studio 2010 的 C++ 代码中使用FTGL的 C API?
FTGL 使用#ifdef __cplusplus
检查从相同的头文件中导出 C 和 C++ API。
我试过这个:
但是VS2010没有它:
c++ - FTGL:字符在渲染时不显示
我的应用程序使用 OpenGL 和 FTGL 进行一些文本输出。我设置了这样的字体:
我这样渲染:
现在我有一个主要问题:我在程序的早期创建了一个字符串,它可以正确呈现。然后是稍后创建的另一个字符串,它只呈现也包含在第一个字符串中的那些字母。我只能假设纹理字体只为第一个字符串的字母创建纹理,而不为第二个字符串的字母创建纹理。
这可能是什么原因?我是否需要让它加载我将尽早使用的所有字符?有什么我想念的吗?
(将我的代码简化为重现错误的最小示例将是相当大的努力,所以我首先要求一些明显我做错的事情。)