メッシュ処理アルゴリズムの結果を表示するためのレンダリング プラットフォームが必要です。これは非常に基本的で簡単です。OpenGL のデフォルトの照明が少し奇妙であることを除けば、私はそれを実行しました。
私のレンダリング結果は次のようになります。
OpenGL のライティング パラメータは次のようになります。
// Lights properties
float ambientProperties[] = {0.4f, 0.4f, 0.4f, 1.0f};
float diffuseProperties[] = {0.8f, 0.8f, 0.8f, 1.0f};
float specularProperties[] = {1.0f, 1.0f, 1.0f, 1.0f};
float lightPosition[] = {0.2f, -0.3f, -0.3f, 0.0f};
glLightfv(GL_LIGHT0, GL_AMBIENT, ambientProperties);
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseProperties);
glLightfv(GL_LIGHT0, GL_SPECULAR, specularProperties);
glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1.0);
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
// Material Properties
float MatAmbient[] = {0.3f, 0.3f, 0.3f, 1.0f};
float MatDiffuse[] = {0.7f, 0.7f, 0.7f, 1.0f};
float MatSpecular[] = {0.8f, 0.8f, 0.8, 1.0f};
float MatShininess[] = { 64 };
float MatEmission[] = {0.0f, 0.0f, 0.0f, 1.0f};
glMaterialfv(GL_FRONT, GL_AMBIENT, MatAmbient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, MatDiffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, MatSpecular);
glMaterialfv(GL_FRONT, GL_SHININESS, MatShininess);
glMaterialfv(GL_FRONT, GL_EMISSION, MatEmission);
私が欲しいのは次のようなものです:
手 http://iparla.inria.fr/publications/2007/BS07b/sketch_teaser.jpg
レンダリング結果のフル解像度バージョンを頂点法線に変更し、単純化したバージョンを追加して、比較をより説得力のあるものにしました。色を無視して、後者の方が明らかに明るく照らされていることがわかります。
デフォルトの OpenGL 照明は、希望する結果のようにパラメータ調整できますか?? または、照明用の高品質 GLSL シェーダーのコードを取得するにはどうすればよいですか?? 私はグラフィックス レンダリングの初心者であり、そのようなライティング ルーチンは珍しくないと思います。