Não sei se estou fazendo algo errado ou faltando alguma coisa, mas quero simular a luz do sol, como em um dia ensolarado.
Quando o objeto está voltado para a luz direcional, está bem iluminado e não há problemas. Se eu der uma volta no objeto e olhar para ele de volta, está escuro. Não está muito escuro porque estou usando, GL_AMBIENT
mas ainda está muito escuro para um dia ensolarado. Se eu aumentar o valor, ele nunca ficará melhor porque o lado do objeto voltado para a luz será muito brilhante.
E há outro problema irritante com a luz ambiente: ao olhar para a parte de trás do objeto, não consigo ver nenhuma forma, apenas uma cor lisa. Difícil de explicar, aqui estão algumas fotos:
Frente do objeto: http://i.stack.imgur.com/YW53X.png
Voltar ao objeto: http://i.stack.imgur.com/Qufha.png
Como você pode ver facilmente, a parte da frente está bonita, você pode ver a forma daquela coisa vermelha. No verso, é claro, você não pode ver a mesma forma.
Agora, eu sei que estou olhando para a parte de trás de um objeto e olhando na direção da luz e ela deve ser mais escura que a parte da frente. Mas não deve parecer tão simples assim. Não é isso que vemos ao ir contra a luz do sol olhando para algum objeto, vemos que os objetos formam alguma forma.
Como posso ter o mesmo efeito (ou similar) no OpenGL?
Minha luz está atualmente definida assim:
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);