【Blender】Delete duplicate vertices in separate objects

帽捲
Maochinn
Published in
Dec 16, 2022

使用情境是今天有一個重建的場景,因為要將裡面的樹木切割出來,所以我們要將環境中的樹挖掉。

(左)重建mesh,(右)挖掉樹的模型

但是,如果今天我想要單獨把樹切割出來呢,需要將左圖減去右圖,也就是我們期望可以達到下面的效果

也就是可不可以單純把兩個分開的mesh做相減。

那現在把問題做一個簡化,把一個平面Extrude出一個長方體,再做一個把長方體的挖掉的平面。

(左)A:平面+長方體,(右)B:平面

我們希望把左圖減掉右圖,只保留一個長方體,姑且稱左圖的Mesh為A,右圖的Mesh為B。

Solidfy + Boolean

最直覺的方法就是使用Boolean中的Difference,也就是將A-B,但是這邊會遇到一個問題就是因為這個Mesh並不是Solid的,所以結果通常不太好,因此一種變通方法就是使用Solidfy。

(左)原始,(右)Solidfy後

簡單來說就是長出體積,然後就可以做Difference了,但是其結果會變成這樣

但是可以發現,因為多長出體積,所以切割出來的東西跟我們期望的長方體有點不同。如下圖

(左)Solidfy+Difference,(右)期望的結果

可以看到長方體的底邊跟期望的結果多出一小截,這就是多長出來的體積。另外如果用這種方式,長方體就不會是一層的Mesh而是有厚度的Mesh。

Vertex Groups + Merge Vertices

由於B基本上是從A複製出來的,所以B的vertex基本上跟A的vertex大多數都重疊,因此可以利用Merge Vertices,也就是把A跟B中重複的點合併,也就是將一組重複的vertex刪掉,然後在將合併出來的點都刪掉就會得到我們要的結果。

首先,將B的所有vertex都選取起來assign給一個vertex group,這些vertex就是最後要刪掉的點。

接著將AB兩個Object利用Join合併起來,這樣才可以在edit mode使用Merge Vertices來合併。

之後只選取group中的vertex,並且按右鍵選取Merge Vertices

記得把Unselected勾起來,這樣他才會把沒有被選取的vertex跟選取的vertex中重複的點合併。結果就會長這樣。

跟前面的圖基本上長一樣,不同在於前面的圖每個點上其實是有兩個vertex。接著只要把剩下選取的點刪掉就好了。

這樣就可以得到乾淨的長方體。附個過程

--

--