|
|
1
6
让我详细谈谈格雷格的回答。
因此,如果您决定使用Qt,您可以选择:
想知道QGLWidget到底做什么?好吧,当您向QGLWidget发出Qt渲染命令时,它们会被转换为GL调用。当SVG渲染器发出渲染命令时,也会发生这种情况。因此,最终,SVG将通过一堆GL原语(直线、多边形等)进行渲染。 这有一个缺点。不同的显卡实现OpenGL的方式略有不同,Qt不能(也不能)解释所有这些差异。因此,例如,如果您的用户有一个便宜的Intel显卡,那么他的显卡不支持OpenGL抗锯齿,这意味着如果您将SVG直接呈现给QGLWidget,它也会看起来有锯齿(jaggy)。通过一个气象可以避免这样的问题。 可以 在实时缩放时也可以使用QImage方法。这取决于你需要多快。您可能需要仔细的优化,例如重用同一个QImage,并为QPainter启用剪裁。 |
|
2
9
从2011年开始,最先进的是马克·基尔加德的孩子, NV_路径渲染
NV_path_渲染现在由谷歌的Skia库在后台使用(如果可用)。(英伟达在2013年底和2014年贡献了该准则。) 你当然可以加载SVG之类的 https://www.youtube.com/watch?v=bCrohG6PJQE . 它们还支持路径的PostScript语法。您还可以将路径渲染与其他OpenGL(3D)内容混合,如所示: 一个缺乏(或完全没有)供应商支持或学术浮华的新贵是 纳米VG https://github.com/memononen/nanovg )鉴于OpenGL上的2D库数量随着时间的推移而来又去,在我看来,使用一些主要供应商不支持的东西是一个很大的赌注。 |
|
|
3
5
第25章。在GPU上渲染矢量艺术 https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch25.html |
|
|
4
2
Qt 对使用OpenGL功能直接渲染SVG图像有很好的支持(请参阅 QSvgRenderer ).
|
|
|
5
0
它有像GLúLINE和GLúLINEúSTRIP这样的基本体,用于在空间中绘制线(如果这是您的意思的话)。编辑:此网站有一些信息: http://www.falloutsoftware.com/tutorials/gl/gl2p5.htm |