Как сохранить цвет с помощью 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);
Надеюсь, это поможет.