gpt4 book ai didi

c++ - 如何在 3D 物体(如球体)上绘制文字

转载 作者:太空宇宙 更新时间:2023-11-04 03:45:25 28 4
gpt4 key购买 nike

我学习Linux平台下的OpenGL。最近,我尝试使用 glutBitmapCharacter() 创建的文本作为 glu 或 glut 提供的一些二次对象的纹理。但是,glutBitmapCharacter() 不返回指针,因此我无法将其提供给 glTexImage2D()。我用谷歌搜索了很长一段时间,但我发现的只是一些与 Android SDK 相关的主题,我对此没有任何经验。

我能想到的就是渲染文本并使用 glReadPixels() 从缓冲区中读取它,然后将其保存到文件中。接下来,从文件中读回像素并将其指向指针。最后,使用这些文本作为纹理绘制 3D 对象(即将指针提供给 glTexImage2D())。

但是,这有点傻。我想问的是:还有其他替代方法吗?

最佳答案

在 3D 表面上应用文本对于纯 OpenGL 来说并非易事。 GLUT 不为此提供任何工具。一种可能的选择是您实现自己的文本呈现方法,可能使用 Freetype 加载字形然后用字形创建纹理并将该纹理应用于多边形。 Freetype-GL是一个小型帮助程序库,如果您要这样做,它会提供很多帮助。

另一种选择是再次将文本字形加载到纹理中,然后将它们作为贴花应用到几何体上。这样,您仍然可以在平面(贴花)中模拟 2D 文本绘图,然后将其应用到 3D 对象之上。

关于c++ - 如何在 3D 物体(如球体)上绘制文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957497/

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