曲面的梯度方向 隱式曲面網格生成 DMC

2021-10-16 12:14:49 字數 3069 閱讀 2800

**資訊標題 dual marching cubes: primal contouring of dual grids
隱式曲面表示技術在許多領域都有廣泛應用,例如體繪製、三維重建等等。相比網格表示方法,隱式曲面是一種連續、準確的表示方法,由於擺脫了離散拓撲的限制,使得隱式曲面非常適合描述動態變化的物體。隱式曲面網格生成方法是一類將三維場景的隱式表達用離散網格顯式表示出來的方法。在大部分的應用中,衡量這類網格生成方法好壞的標準主要是兩條:計算效率以及對隱式表達的逼近程度。

首先,我們看三維空間中的隱式曲面是如何定義的,通常是由level-set函式來刻畫:

level-set(水平集)函式是個神奇的發明,它揭示了乙個非常直觀的幾何現象:任何n維曲面都可以表示為乙個n+1維曲面與乙個n維超平面的交集,或稱為n+1維曲面在乙個n維超平面上的投影。在三維空間中的隱式曲面就是由

所定義的等值面,又叫iso-su***ce,其中

給定乙個離散表示的隱函式,如何準確地抽取網格?

這個主題的文章已經非常多了,有興趣的同學可以翻閱這篇綜述。在這些方法中,marching cube是最常用的方法。傳統的marching cube無法很好地抽取隱函式特徵。我們看下圖的隱函式,在體素邊上的點位零等值點,其箭頭代表該點處梯度方向。marching cube由於只能通過連線邊上的零等值點來生成麵片,無法表示體素內存在的特徵,因此有一系列方法通過在體素格仔內增加點來更好得表示特徵,本文就是其中之一。

「離析」這個詞是我yy的,原文是 feature isolation,用來指從隱函式中提取出特徵。面對這樣的需求,我們會問的第乙個問題是:什麼是特徵?

在離散網格中,特徵的描述方式有許多種,例如二面角,高斯曲率、最大主曲率,以及網格簡化中常用的qef二次型。本文選用的就是 qem 中定義的qef二次型來定義隱函式中的特徵。在本文之前 dc 方法,emc 也都選用qef能量來定義特徵,其形式為:

是體素格仔邊上的零等值點,其定義了乙個切平面,這個能量的幾何意義是定義了點

到平面集合

距離的二範數之和。因此dc 方法認為特徵點即為距離這些切平面距離最近的點。本文認為用歐式距離最小來刻畫特徵是不準確的,應該用隱函式值的差異來描述「距離」才準確。其能量的形式化定義如下:

上式粗看有點難以理解,不過結合下圖就好多了。我們先看一維的例子,在

處的切平面方程可以定義為

。也可以理解為函式

在 處的一階泰勒展開:

,注意

是零等值點,即

在定義域內任取一點

,則其在切平面

上的投影為

,其隱函式值為

。因此兩者的差異為

。當空間內有多個取樣點

,則變成上述最小二乘問題。

通過求解線性方程組

可以求解上述變數。但在實際工程中,這個線性方程往往是欠定的,特別是當取樣點

的梯度方向比較接近時,欠定方程的解有無窮多個,該取哪個?本文提出,尋找距離體素格仔中心

最近的解。

首先將線性方程組改寫成

的形式,注意此時a是對稱方陣,然後做如下推導:

此時,尋找距離

的 等價於求解:

而這剛好是最小範數問題,其解是well defined,即為:

其中,

為其偽逆,可通過out-of-core的方法對其svd分解的奇異值做校正來得到。

上述方法看起來很順暢,其實隱藏了幾個問題,第

一、求解處的

未必落在體素格仔內,倘若落在格仔外還需要根據情況將格仔做細分,或者將

投回格仔表面;第

二、該方法很依賴取樣點的梯度,對雜訊的抵抗能力並不強;第

三、需要對每個格仔都進行svd分解,速度慢。很遺憾這幾個問題並沒有在本文中很好得解決。

上述抽點方法能保證每個格仔若存在隱函式符號變化則必有乙個特徵點。注意此處的「特徵」並不代表該點會落在零等值面上,事實上優化出來的

也並不等於0。這個點只是會比較靠近零等值面。例如下圖各個格仔中的小黃點,其餘區域的偽彩表示隱函式值。

文中提出以上述特徵點代表primal grid中的每個格仔,作為dual grid中的乙個頂點,完成對偶圖的構建,並在對偶圖上用傳統marching cube抽取最終網格。

我也一度思考,為什麼要用這種方式,為什麼不直接置

,一步抽取零等值面上的特徵點?後來才意識到其中有兩個問題:

構建好dual grid,然後在dual grid的格仔上用mc來抽取網格時候,需要注意此時dual grid並非軸對齊的,而且有些格仔並非8個點,文中通過增加重複點的方式確保每個格仔都和cube同胚(參考第三章),然後計算每個邊上的零等值點,並用mc來抽取麵片,其結果如下圖所示。

文中還有些細節,如怎麼根據

對八叉樹細分,怎麼處理silver ********就不多贅述了,先看幾個結果。

總體上對尖銳特徵處理地還是挺不錯。如前文所說,該方法本身的最大問題,我想就是qef能量的求解速度及魯棒性,以及對雜訊的抵抗能力較弱。

dual contouring of hermite data

梯度,方向梯度,拉格朗日乘數法

一 梯度 函式 z f x,y 梯度表示為 其梯度方向始終指向函式較大值處。函式 z f x,y 幾何圖形需要三維空間表示,為了更方便觀察函式,可以使用二維平面上等高線表示函式。例如 函式 等高線可表示為xy平面上的同心圓。同理,函式 f x,y,z 梯度表示為 可以使用三為空間等值面表示函式。函式...

函式的梯度方向和切線方向 偏導數 方向導數與梯度

兩個變數的函式 值域為 圖 graph 是所有點 集合,使得 多變數函式的定義與兩個變數的函式類似。函式相對於它的某個自變數的偏導數,是假定其他自變數不變時,對該自變數的導數。對於兩個變數的函式 它的偏導數 和 定義為 和其他表示方法有 單變數函式中,函式的圖是乙個二維平面上的曲線,導數對應了一條直...

為什麼梯度方向與等高線垂直

有些結論用起來習以為常,卻不知道背後的原理,比如為什麼梯度方向與等高線垂直,弄明白後心裡才舒暢 要解決這個問題首先得有等高線的數學表示式 以三維空間為例,設某曲面的表示式為z f x,y z f x,y z f x,y 對於任意高度且平行於xoy的平面z c z cz c來說,等高線為z f x,y...