Tôi không biết mình đang làm gì sai hay thiếu thứ gì nhưng tôi muốn mô phỏng ánh sáng mặt trời, như trong một ngày nắng.
Khi vật thể đối diện với ánh sáng định hướng, nó sẽ sáng và không có vấn đề gì ở đó. Nếu tôi đi xung quanh vật thể và nhìn nó trở lại, trời tối. Trời không quá tối vì tôi đang sử dụng GL_AMBIENT
nhưng trời vẫn quá tối cho một ngày nắng. Nếu tôi tăng giá trị, nó sẽ không bao giờ trông đẹp hơn vì mặt của vật thể đối diện với ánh sáng sẽ quá sáng.
Và có một vấn đề khó chịu khác với ánh sáng xung quanh, khi nhìn vào mặt sau của vật thể, tôi không thể thấy bất kỳ hình dạng nào, chỉ có một màu đơn giản. Khó giải thích, đây là một số hình ảnh:
Mặt trước đối tượng: http://i.stack.imgur.com/YW53X.png
Quay lại đối tượng: http://i.stack.imgur.com/Qufha.png
Như bạn có thể dễ dàng nhìn thấy, mặt trước trông rất đẹp, bạn có thể thấy hình dạng của thứ màu đỏ đó. Ở mặt sau, nó đơn giản, bạn không thể thấy hình dạng tương tự.
Bây giờ, tôi biết rằng tôi đang nhìn vào mặt sau của một vật thể và tôi đang nhìn theo hướng ánh sáng và nó sẽ tối hơn mặt trước. Nhưng nó không nên trông đơn giản như thế này. Đó không phải là những gì chúng ta thấy khi đi ngược lại ánh sáng mặt trời nhìn vào một vật thể nào đó, chúng ta thấy rằng các vật thể đó hình thành một số hình dạng.
Làm cách nào tôi có thể có hiệu ứng tương tự (hoặc tương tự) trên OpenGL?
Ánh sáng của tôi hiện được định nghĩa như thế này:
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);