我試圖將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