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