何か間違ったことをしているのか、何かを逃しているのかはわかりませんが、晴れた日のように太陽光をシミュレートしたいです。
オブジェクトが指向性ライトに面している場合、オブジェクトは十分に明るく、問題はありません。オブジェクトを回って戻ってきたところを見ると、暗いです。使用しGL_AMBIENT
ているので暗すぎませんが、晴れた日には暗すぎます。値を大きくしても、オブジェクトの光に面する側が明るすぎるため、見た目が良くなりません。
また、アンビエントライトにはもう1つの厄介な問題があります。オブジェクトの背面を見ると、形が見えず、無地の色しか見えません。説明が難しい、ここにいくつかの写真があります:
オブジェクト前面:http : //i.stack.imgur.com/YW53X.png
オブジェクト背面:http : //i.stack.imgur.com/Qufha.png
簡単に見ることができるように、正面が見栄えが良く、その赤いものの形を見ることができます。裏面では、それはプレーンで、同じ形を見ることができません。
今、私はオブジェクトの後ろを見ていること、そして光の方向を見ていることを知っています、そしてそれは正面より暗いはずです。しかし、このように単純に見えるべきではありません。それは、あるオブジェクトを見て太陽光に逆らったときに見えるものではなく、オブジェクトが何らかの形を形成していることがわかります。
OpenGLで同じ(または同様の)効果を得るにはどうすればよいですか?
私の光は現在このように定義されています:
float posLight0[4] = {-1.0f, 1.0f, 1.0f, 0.0f};
float ambLight0[4] = {0.5f, 0.5f, 0.5f, 0.5f};
glLightfv(GL_LIGHT0, GL_POSITION, posLight0);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambLight0);