我试图将3D网格拼合成2D形状。我想要实现的是类似this如何在Three.js中将3D网格“拼合”为2D形状
基本上你在图像中看到的是给定的网格及其沿不同视图的轮廓。我想为Three.js的任何给定网格做同样的事情,但我不知道如何获得轮廓。
我想到了两个可能的解决方案:
1)复制网和沿给定轴缩放,使其得到平的(例如,如果我想我看到从看形状的剪影正Z至负面,我只是它的规模是这样的:
myMesh.scale.z = 0.001 // Small value to make it "2D-like"
问题:我复制和重新划分网格,可能是潜在的非常大的,所以这不是很有效
2)。将网格的顶点投影到2D平面,以便它们都在同一层次上,然后在顶点之间创建线条。
问题:像这样放置它根本不起作用,因为我失去了有关顶点如何连接为面的信息。得到的形状将完全取决于顶点投影的顺序。
例如,如果我们认为这mesh 和一期项目的顶点“在我面前”,从这个角度来看,我会得到these points(或多或少),但我不知道如何将它们连接起来。
我该如何继续?
mesh.geometry包含有关顶点如何连接的所有信息。只需使用getContext('2d')将所有三角形绘制到另一个画布中并将该画布用作纹理 – makc