как сохранить цвет с помощью vcglib?

Я пытаюсь сохранить цвет вершин с помощью vcglib, но не получается. Даже если я читаю файл и сохраняю его, ничего не делая, цвет исходного файла теряется. Вот код, который я написал:

vcg::tri::io::ImporterPLY<MyMesh>::Open(*srcMesh,"bunny.ply");   
vcg::tri::io::ExporterPLY<MyMesh>::Save(*srcMesh,"out.ply");

После этого out.ply не имеет цвета, в то время как исходный слой bunny.ply имеет. Может ли кто-нибудь дать мне пример кода, чтобы сделать это? Благодарю вас!


person Sui    schedule 20.10.2014    source источник


Ответы (1)


У меня была точно такая же проблема пару недель назад. Проведя некоторое время с отладчиком и просматривая большое количество исходного кода, я обнаружил, что методы open и save должны иметь общую маску int. Это позволяет методу Open передать, какие атрибуты были считаны из исходной сетки (также убедитесь, что вы добавили атрибут Color4b в определение сетки.

int mask=0;
vcg::tri::io::ImporterPLY<MyMesh>::Open(*srcMesh,"bunny.ply",mask);   
vcg::tri::io::ExporterPLY<MyMesh>::Save(*srcMesh,"out.ply",mask);

Надеюсь, это поможет.

person BRuNTza    schedule 27.10.2014