2011-03-22 55 views
2

我有一個由許多三角形組成的3D網格。我只需要渲染這個網格的輪廓。請參見此圖像http://postimage.org/image/2jnaopqro/如何檢查邊是否是網格的輪廓?

我檢查邊緣是否爲輪廓的方法是檢查相鄰的兩個相鄰三角形是否具有與當前觀察方向相反的正常符號。視圖方向被定義爲指向屏幕外的矢量。

但是,這種方法並不總是奏效。如同時箭頭所示,你可以看到我確實錯過了一些大綱。你知道爲什麼嗎?

注:

1> I have checked that all normals are computed in CCW 
2> The given mesh data is also correct. In other words, 
    no given triangle is returned with wrong order. 

我會非常有興趣知道這種檢測方法的侷限性。正如我早期提到的那樣,它大部分時間都適用。

謝謝

+1

很難從該圖像看到3D中發生了什麼。它甚至不清楚它顯示的是什麼 - 這是網格的輪廓?網格本身?它看起來是非凸的,在這種情況下,可能存在不應位於輪廓中的口袋,但會滿足您的符號更改標準。除了「大量的三角形」還有更多的限制嗎? – 2011-03-22 21:46:21

+1

我無法從圖表中看出,您指向的邊緣似乎只是一個三角形的一部分,而不是兩個? – addfasdf 2011-03-22 21:46:46

+0

由兩個白色箭頭指向的最近的淺棕色邊緣是此網格的構思大綱。但是,專用方法根本找不到該邊緣。順便說一句,網格顏色淺褐色,而檢測到的輪廓是淺藍色。 - 謝謝 – q0987 2011-03-22 21:55:00

回答

0

如果你正在尋找做「卡通着色」,這往往不被發現實際的邊緣進行,而是通過(例如)用白色填充,繪製網格爲純黑色概述三角形(可能填充的位),然後在網格前面繪製網格作爲非輪廓的白色三角形。結果是網格的黑色輪廓。

+0

我沒有看到這個答案和我的問題之間的關係 – q0987 2011-03-23 03:44:20

+0

對不起。如果它真的是構成你所追求的視覺輪廓的數學邊緣,而不僅僅是繪製輪廓的方式,那麼我的答案根本無濟於事。但是這是一種常用於繪製網格輪廓的技術。 – 2011-03-23 03:46:38