Върховете не са обединени (изход от Kinect Fusion)

В момента имам голям проблем. Използвах kinect fusion, за да заснема 3D сцена и да я изведа като .OBJ файл.

Резултатът от файла изглежда по следния начин:

v 123 123 123
v 123 123 123
v 123 123 123
vn 321 321 321
vn 321 321 321
vn 321 321 321
f 1//1 2//2 3//3

Където v е върхът, vn е нормален, а f е лицето. 3 върха образуват лице, така че броят на лицето е точно 1/3 от броя на върховете. Но проблемът е, че изходът от kinect не обединява върховете заедно. Така че след като го импортирам в maya и ги слея заедно, броят на върховете и нормалите на върховете някак стават различни!

Брой върхове след сливане: 52837
Брой върхове нормално след сливане: 299997
Брой лица след сливане: 99999

Как е възможно!? Не трябва ли всеки връх да има само 1 нормален връх? Защо има повече нормални от върховете? Кодът, който написах, може да работи само ако следва тази структура. Друг начин е да не обединявам върховете заедно, но това може да ми създаде проблеми в бъдеще.

Надявам се някой да ми помогне T_T


person Cherple    schedule 31.07.2013    source източник


Отговори (1)


Това е очаквано поведение. Представете си, че имате два триъгълника, образуващи четворка. Необединени, това са 6 върха и 6 нормали на върха. След сливането ще имате 4 върха, тъй като върховете в диагоналните ъгли вече са обединени. Ако обединената мрежа е изгладена (с помощта на нормални > омекотяване на ръба, например), споделените върхове също ще споделят нормали на върховете. Ако мрежата е фасетирана, пак ще имате 6 нормали на върха, въпреки че имате 4 върха. Вероятно оттам идват вашите допълнителни числа.

Ако оригиналната геометрия е чиста, броят на лицата ще остане същият - но лошата геометрия може да включва дублиращи се лица, които трябва да бъдат елиминирани чрез сливането, като също така се намалява броят на върховете.

Можете изкуствено да увеличите нормалния брой vert, като направите mesh > triangulate, последвано от normals > Harden edge. Това ще накара мрежата да изглежда фасетирана. Ако искате изгладени нормали (отново нормалности > омекотяване на ръба), трябва да очаквате средно около 1 нормал на връх.

person theodox    schedule 01.08.2013