dcc*_*rmo 5 c++ opengl c++builder
我开始在这家公司工作,使用2D OpenGL实现来显示我们系统的数据(在Windows上运行.)整个系统是用C++构建的(使用C++ Builder 2007).事实是,当你放大时,他们在那里打印的所有文字都是像素化的,我认为这是因为文本是位图:

据我所知,他们使用与Windows相同的字体文件.我在这里询问为什么会发生这种情况,我得到的答案是实现它的人(在公司不再工作)说OpenGL上的字体很难,这是他能做的最好的事情或类似的东西.
我的问题是:是否有任何简单有效的方法使文本也成为一个矢量(与图片中的那些线相同的方式是什么?)所以当我缩放相机时,这种情况发生了很多,它们没有像素化.我对OpenGL知之甚少,如果你有一些与此相关的指南和/或教程指向正确的方向,我会非常感激.基本上任何材料都会很棒.
Mic*_* IV 10
大多数OpenGL文本渲染库都是这样的:为字体创建位图,这意味着你将遇到缩放和锯齿问题,除非你做了一些黑客攻击.其中一个流行的黑客是Valve的方法.你使用签名的距离字段算法生成您的字体位图,然后帮助您在渲染过程中平滑缩放文本轮廓.在这里,您可以找到距离字段生成的C++实现.
如果您坚持使用特定于供应商的硬件,那就是NVidia,您可以尝试NVidia Path扩展,它允许直接在GPU上渲染图形.记住,这只是NVidia的事情.但总的来说,基于签名距离场的方法是最顺利和最容易实现的.
顺便说一句,freetype-gl使用Valve的方法和现代管道.
| 归档时间: |
|
| 查看次数: |
4749 次 |
| 最近记录: |