關(guān)于帶屬性的QEM邊折疊算法的一些總結(jié)
關(guān)于帶屬性的QEM邊折疊算法的一些總結(jié),屬性主要總結(jié)的是紋理坐標(biāo)這個會產(chǎn)生接縫的屬性,如果有總結(jié)的存在誤區(qū)的地方請務(wù)必告訴我,謝謝!

【涉及到的論文】
1. Surface Simplification Using Quadric Error Metrics (Michael Garland and Paul S. Heckbert, 1997)
2. Simplifying Surfaces with Color and Texture using Quadric Error Metrics(Michael Garland and?Paul S. Heckbert, 1998)
【動機】
以前只了解過只涉及幾何屬性的版本(上面第一篇),也注意到blender里面的精簡修改器(邊塌陷)可以在簡化的同時一定程度保持uv坐標(biāo),法線,甚至蒙皮,正好最近想做的內(nèi)容里面涉及到網(wǎng)格簡化的部分,就想看看如何在QEM簡化幾何屬性的同時還可以保持其他屬性。
【一些總結(jié)】
不帶屬性的QEM邊折疊算法可以處理頂點的幾何屬性xyz, 帶屬性的QEM理論上可以處理帶uv坐標(biāo)的廣義頂點坐標(biāo)xyzuv,?帶頂點顏色的廣義頂點坐標(biāo)xyzrgb, 以及帶頂點法線的廣義頂點坐標(biāo)xyzabc以及他們的組合。
由于帶屬性的QEM本質(zhì)上是對廣義頂點坐標(biāo)的權(quán)衡,比如,對xyz優(yōu)化可以得到純幾何的簡化,而對xyzuv優(yōu)化得到的是幾何和紋理坐標(biāo)的折衷,所以得到的結(jié)果并不能保證幾何質(zhì)量。如使用xyzuvabc(幾何+頂點紋理坐標(biāo)+頂點法線)將導(dǎo)致幾何質(zhì)量顯著下降。
由于第二點,感覺一些現(xiàn)象得到了解答。如pymeshlab中(經(jīng)過查看源碼了解到他使用的是vcg庫中的簡化算法)只提供了關(guān)于QEM邊折疊算法的幾何版本以及帶紋理坐標(biāo)版本,而不是提供一個廣義頂點坐標(biāo)的版本。如blender中,似乎邊塌陷精簡修改器并不直接使用QEM進行頂點法線的優(yōu)化,而是在簡化后進行法線的計算??雌饋硭麄兌急苊庾審V義頂點坐標(biāo)過長,看起來只有xyzuv這一個組合得到了廣泛的應(yīng)用。
在原論文中,只給出了關(guān)于頂點屬性(也就是,屬性和頂點一一對應(yīng))的QEM算法的解釋,而在實際中一個頂點往往會有多個屬性(如uv接縫處),這使得簡化算法需要考慮接縫(或者說,基于三角形的屬性)而不是簡單的頂點屬性。
在blender和pymeshlab中,直接簡化帶有uv接縫的模型會導(dǎo)致uv接縫的偏移,在顯示上產(chǎn)生比較明顯的失真。而在一些其他論文方案中,對限制或阻止uv接縫處的邊的塌陷——在接縫處會限制,使得邊塌陷后還在接縫上;在接縫的根部會阻止,以防模型中多個接縫(或者說,模型的多個uv島嶼)的連接位置發(fā)生移動。
對于第五點,雖然其他論文方案中的限制和阻止方式會產(chǎn)生更還原的顯示效果,但是限制了正常的QEM執(zhí)行,也許這是他沒有成為主流方案的原因。似乎blender和pymeshlab中的簡化是主流方案,他們專注于幾何簡化并盡可能保護屬性,雖然簡化程度越高,接縫處的失真越明顯,但是他們沒有破壞正常的QEM,從而得到了穩(wěn)健的算法。而專注于保護uv接縫的方法似乎在簡化程度適中的情況下得到的結(jié)果還可以,但是在簡化程度非常高的時候,uv接縫的維持會成為簡化的阻礙,造成算法的不穩(wěn)定,產(chǎn)生很低的幾何質(zhì)量。如果把他們的uv接縫維持看作一個約束的話,看起來這個約束實在太硬了。
主流方案中未照搬原論文(上面第二篇)中的理論,而僅僅是受改論文的啟發(fā)的算法。對于每個頂點,該算法儲存了1個幾何QEM矩陣(xyz, 若寫成齊次矩陣是4x4矩陣)和多個考慮貼圖的QEM矩陣(xyzuv, 齊次矩陣是6x6矩陣)。似乎考慮貼圖的QEM矩陣部分用于實際折疊(分為直接計算優(yōu)化后的xyzuv向量,以及附帶幾何約束的版本,也就是給定xyz只計算優(yōu)化后的uv部分),每個頂點儲存的幾何QEM矩陣看起來比較深奧,他似乎在接縫根部處頂點被折疊的時候附加額外的二次誤差,源碼中的注解是“這允許模擬具有多個紋理坐標(biāo)的頂點中不存在的連續(xù)性,然而這種連續(xù)性仍然是不存在的,所以即便是算法用這種權(quán)宜之計進行了很好的折疊,顯然也計算出了不理想的折疊代價,這應(yīng)該通過額外的用戶參數(shù)權(quán)重進行調(diào)整“,不太能理解,不知道實際情況下沒有這個部分會怎么樣。
【結(jié)語】
接縫問題好麻煩,我還是在簡化過程中先不考慮接縫問題比較好。完美解決接縫問題最好的方法估計還是重新烘焙新的貼圖。