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?