libIGL を使用して tet-mesh を生成しており、このメッシュを色で視覚化したいと考えています。各頂点には異なる値 (グラフ ラプラシアンを使用して二次エネルギーを最小化した結果) があり、これらの値は を使用して色に変換されていますigl::jet
。異なる z 値で tet-mesh を「スライス」したいと考えており、そのために例 605に従いました。
これを視覚化すると、色は問題ありませんが、シェーディングはすべて間違っています (下の画像を参照)。シェーディングを修正する (簡単な) 方法はありますか? bfs_orientとembree:: reorient_faces_raycastの両方を使用してみましたが、役に立ちませんでした。
問題を再現するには、例 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 を公開するものでしょうか?