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

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

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

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

1 ответ

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

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

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

Другие вопросы по тегам