2

我正在使用 libIGL 生成一个 tet 网格,并想用颜色可视化这个网格。每个顶点都有不同的值(使用 Graph Laplacian 最小化二次能量的结果),这些值已使用igl::jet. 我想以不同的 z 值对我的 tet-mesh 进行“切片”,并按照示例 605进行操作。

当这被可视化时,颜色是正确的,但是阴影是错误的(如下图所示)。有没有(简单的)方法来修复阴影?我试过同时使用bfs_orientembree::reorient_faces_raycast无济于事。

带有奇怪阴影的tetmesh着色

要重现该问题,只需将示例 605 的第 52-54 行变为:

    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 的东西?

4

0 回答 0