有没有一种方法可以加载矢量图形文件,然后使用OpenGL进行渲染?由于我不太了解矢量图形格式,这是一个含糊的问题。我知道SVG。
将其转换为光栅图并不真正有用,因为我想对对象进行实时缩放。
有没有一种方法可以加载矢量图形文件,然后使用OpenGL进行渲染?由于我不太了解矢量图形格式,这是一个含糊的问题。我知道SVG。
将其转换为光栅图并不真正有用,因为我想对对象进行实时缩放。
我看到大多数答案都涉及Qt,尽管原始问题没有提到。以下是我关于OpenGL的答案(随着时间的推移,这也极大地受益于技术的进步,因为在2010年无法给出这个答案):
自2011年以来,最先进的技术是Mark Kilgard的"NV_path_rendering",目前仅作为供应商(Nvidia)扩展存在,正如你从名称中已经猜到的那样。关于此技术有很多资料:
当可用时,Google的Skia库现在在后台使用NV_path_rendering。(Nvidia在2013年底和2014年贡献了代码。)
当然,您可以加载SVG或其他https://www.youtube.com/watch?v=bCrohG6PJQE。它们还支持路径的PostScript语法。您也可以将路径渲染与其他OpenGL(3D)效果混合使用,如以下演示:
一个新兴的、没有得到更少(甚至根本没有)供应商支持或学术光环的库是NanoVG,目前正在开发和维护。(https://github.com/memononen/nanovg)在我看来,如果选择不受主要供应商支持的内容,那么您会冒着很大的风险。
这不是一个具体的实现,但与你的问题和观众非常相关。
第25章。在GPU上渲染矢量艺术 https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch25.html
如果您的意思是在空间中绘制线条,它具有像GL_LINES和GL_LINE_STRIP这样的基元。编辑:此网站提供一些信息:http://www.falloutsoftware.com/tutorials/gl/gl2p5.htm