本当に小さな粒子を扱うとき、照明に問題があります。私は粒子ベースの流体シミュレーションを行っており、現在、流体を非常に小さなポリゴン化された球体としてレンダリングしています (非常に小さいということは、球体の半径が約 0.03 単位であると言っています)。シーンの照明が思いどおりに照明されておらず、正しく表示されません。この画像のパーティクルの柔らかな照明に似たものを探しています...
しかし、私の粒子はこのように見えます...
パーティクルに明るい白いセクションがあるのに対し、緑のパーティクルは柔らかく照らされており、大きな白いホットスポットがないことを確認してください。その理由は、ライトの設定か、単にパーティクルが小さすぎてライトがより大きなスペースを占めるという事実であることはわかっています (それは可能ですか??)。照明の設定は次のとおりです...
GLfloat mat_ambient[] = {0.5, 0.5, 0.5, 1.0};
GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0};
GLfloat mat_shininess[] = {10.0};
GLfloat light_position[] = {0.0, 0.1, p_z, 1.0};
GLfloat model_ambient[] = {0.5, 0.5, 0.5, 1.0};
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, model_ambient);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);