Non so se sto facendo qualcosa di sbagliato o mi manca qualcosa, ma voglio simulare la luce del sole, come in una giornata di sole.
Quando l'oggetto è rivolto verso la luce direzionale, è ben illuminato e non ci sono problemi. Se giro intorno all'oggetto e guardo che è tornato, è buio. Non è troppo buio perché lo sto usando GL_AMBIENT
ma è ancora troppo buio per una giornata di sole. Se aumento il valore, non sembrerà mai migliore perché il lato dell'oggetto rivolto verso la luce sarà troppo luminoso.
E c'è un altro fastidioso problema con la luce ambientale, quando guardo il retro dell'oggetto, non riesco a vedere alcuna forma, solo un colore semplice. Difficile da spiegare, ecco alcune immagini:
Parte anteriore dell'oggetto: http://i.stack.imgur.com/YW53X.png
Parte posteriore dell'oggetto: http://i.stack.imgur.com/Qufha.png
Come puoi facilmente vedere, il lato anteriore sembra carino, puoi vedere la forma di quella cosa rossa. Sul retro, è semplice, non puoi vedere la stessa forma.
Ora, so che sto guardando il retro di un oggetto e sto guardando nella direzione della luce e dovrebbe essere più scuro del lato anteriore. Ma non dovrebbe apparire così semplice. Non è quello che vediamo quando andiamo contro la luce del sole guardando un oggetto, vediamo che gli oggetti formano una forma.
Come posso avere lo stesso (o simile) effetto su OpenGL?
La mia luce è attualmente definita in questo modo:
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);