最近完成了計算機圖形學的實驗,實作了以halfedge(半邊)資料結構為基礎的Loop subdivision(循環細分) 和 modified butterfly subdivision(改進的蝴蝶細分)兩種算法,并用OpenGL進行可視化。
模型為.wrl(虛拟現實文本格式)檔案,可以對 #VRML V2.0 utf8 标準的模型進行讀寫和細分。
算法
細分算法主要參考了課程lecture以及兩位CSDN部落客[1,2]的部落格
關于具體實作中的出入度計算、remesh的算法如下:(來自實驗報告截圖)
Loop subdivision(循環細分) && modify butterfly subdivision(改進的蝴蝶細分)算法實作算法實作結果
Loop subdivision(循環細分) && modify butterfly subdivision(改進的蝴蝶細分)算法實作算法實作結果 實作結果
詳細實作可以參考GitHub上的工程,以下是部分結果截圖:
(1) tetrahedron
Loop subdivision
Loop subdivision(循環細分) && modify butterfly subdivision(改進的蝴蝶細分)算法實作算法實作結果 Modified-butterfly subdivision
Loop subdivision(循環細分) && modify butterfly subdivision(改進的蝴蝶細分)算法實作算法實作結果 (2)Cube
Loop subdivision
Loop subdivision(循環細分) && modify butterfly subdivision(改進的蝴蝶細分)算法實作算法實作結果 Modified-butterfly subdivision
Loop subdivision(循環細分) && modify butterfly subdivision(改進的蝴蝶細分)算法實作算法實作結果 (3)T-Shape
Loop subdivision
Loop subdivision(循環細分) && modify butterfly subdivision(改進的蝴蝶細分)算法實作算法實作結果 Modified-butterfly subdivision
Loop subdivision(循環細分) && modify butterfly subdivision(改進的蝴蝶細分)算法實作算法實作結果 歡迎交流指正。