0
我试图使用javafx将.svg文件转换为3d(.obj文件)。是否有可能将SVGPath转换为javafx中的网格
我可以将Shape - Cylinder,Box等图元转换为Mesh。是否有可能转换SVGPath转换为任何特定的网格。
我试图使用javafx将.svg文件转换为3d(.obj文件)。是否有可能将SVGPath转换为javafx中的网格
我可以将Shape - Cylinder,Box等图元转换为Mesh。是否有可能转换SVGPath转换为任何特定的网格。
的开源库FXyz有你在寻找什么:给定一个2D SVGPath
(或它的内容的字符串)一个SVG3DMesh
类将返回3D TriangleMesh,挤出2D图形到一定高度。
稍后,您可以将该网格导出到obj文件。
这是你如何使用它的代码片段:
SVG3DMesh svg3DMesh = new SVG3DMesh("M40,60 C42,48 44,30 25,32", 10);
您可以显示网格:
svg3DMesh.setDrawMode(DrawMode.LINE);
svg3DMesh.setCullFace(CullFace.NONE);
或显示了坚实的3D物体的颜色你想要:
svg3DMesh.setTextureModeNone(Color.RED);
对于网格导出到OBJ:
OBJWriter writer=new OBJWriter((TriangleMesh) ((TexturedMesh) svg3DMesh.getMeshFromLetter("")).getMesh(), "svg");
writer.setMaterialColor(Color.RED);
writer.exportMesh();
它会产生svg.obj和svg.mtl。
Pereda,非常感谢您的意见。这将帮助我理解转换背后的过程。 – Sharan
@José是否也可以创建一个扁平(非挤压)网格? – mipa
@mipa是的,的确,这是3D网格生成的第一部分:2D封闭路径使用Poly2Tri生成2D网格。您需要添加一些API才能从SVG3DMesh中获取网格... –