libIGL странная штриховка на гранях сетки

Я использую libIGL для генерации тет-сетки, и хотел бы визуализировать эту сетку с помощью цветов. Каждая вершина имеет свое значение (результат использования графа лапласиана для минимизации квадратичной энергии), и эти значения были преобразованы в цвета с использованием igl::jet, Я хотел бы "нарезать" свою тет-сетку при различных значениях z и следовал примеру 605, чтобы сделать это.

Когда это визуализируется, цвета все в порядке, но затенение все неправильно (как видно на рисунке ниже). Есть ли (простой) способ исправить затенение? Я пытался использовать оба bfs_orient и embree::reorient_faces_raycast безрезультатно.

окрас тетемеш со странной штриховкой

Чтобы воспроизвести проблему, просто строки 52-54 примера 605 должны быть:

    Eigen::VectorXd C = V_temp.col(2);
    Eigen::MatrixXd Col;
    igl::jet(C, true, Col);
    viewer.data.clear();
    viewer.data.set_mesh(V_temp,F_temp);
    viewer.data.set_colors(Col);
    viewer.data.set_face_based(false);

Изменить: я могу выключить освещение, добавив

    viewer.core.lighting_factor = 0;

Полученное изображение: изображение с выключенным знакомством Тем не менее, это не имеет никакого освещения, и я не могу не чувствовать, что есть лучший способ сохранить освещение. Возможно что-то, что выставляет OpenGL_Shader?

0 ответов

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