OpenGL文本引擎
有关于如何在OpenGL(FTGL等)中呈现字体的现有资源……我不是在问这个问题。我想知道是否有任何出版的图书馆,算法,论文等处理文本在三维空间相交几何。例如,如果在三维地球上的国家/地区位置绘制标签,则几何图形通常会与地球相交。我见过一些例子,它们总是显示整个标签,但随着标签在地球背面的位置消失,标签会缩小和/或消失OpenGL文本引擎,opengl,Opengl,有关于如何在OpenGL(FTGL等)中呈现字体的现有资源……我不是在问这个问题。我想知道是否有任何出版的图书馆,算法,论文等处理文本在三维空间相交几何。例如,如果在三维地球上的国家/地区位置绘制标签,则几何图形通常会与地球相交。我见过一些例子,它们总是显示整个标签,但随着标签在地球背面的位置消失,标签会缩小和/或消失 文本引擎可能处理的其他事情是重叠标签的优先级。我曾经在3D映射中工作。这是一个难题。关于它有大量的文献。你将不得不开始谷歌搜索和学习,这是没有办法的 以下是一些方法: 在离地面
文本引擎可能处理的其他事情是重叠标签的优先级。我曾经在3D映射中工作。这是一个难题。关于它有大量的文献。你将不得不开始谷歌搜索和学习,这是没有办法的 以下是一些方法:
- 在离地面一定高度处绘制标签,尽量选择合适的高度
- 尝试在地面上绘制标签轮廓(需要计算)
- 将标签栅格化到纹理上,使其成为图像的一部分
- 使用模具缓冲区技巧将文本(或道路等)切片到几何体中(可能会出现拉伸瑕疵)
- 创建包含要使用的字体的所有字符的纹理。以所需大小渲染每个字符,或者如果要将文本缩放到任意大小而不降低质量,请使用带符号的距离字段。将附加信息(如每个字符的纹理坐标以及紧排信息)存储在单独的文件中。一个伟大的工具来创建签名距离场字体纹理可以找到
- 使用文本字符串作为输入,为文本中的每个字符创建包含单个四边形(或两个三角形)的二维网格。为每个顶点设置正确的纹理坐标。使用字体信息可以正确地进行字距调整和换行。为获得最佳性能,请将网格存储在顶点缓冲区对象中
- 要渲染文本,只需绑定纹理并渲染网格李>
可以找到Stars样本的视频。您的问题是什么?如何仅为地图上面向摄影机的点绘制文本?你能澄清你在寻找什么吗?有没有记录在案的技术/库,可以在3d场景中为项目添加标签,而不让标签与几何体相交(如果只是在标称标签位置和深度绘制,通常会这样)。一种简单的方法是绘制几何体,关闭深度测试,然后绘制标签。确定,但是,完全隐藏的标签(例如,地球另一侧的国家标签)将是可见的。但是,如果使用国家质心处多边形的法线(或其他),则可以剔除与相机大致相同方向的标签。