Domanda

Sull'esempio di illuminazione sfera del Redbook ho letto questo:

GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };

glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);

Poi dice:

  

In questo esempio, le prime tre chiamate   a glLightfv () sono superflui, poiché   essi sono utilizzati per specificare il   predefiniti valori per la GL_AMBIENT,   GL_DIFFUSE, e GL_SPECULAR parametro

Per quanto ho capito finora, ogni sorgente di luce ha valori di default per il suo ambiente, diffuso e parametri speculari e queste tre matrici di specificare quali sono i valori di default, è quello giusto? fa ogni sorgente di luce è di diffusa predefinita, speculari e ambiente?

È stato utile?

Soluzione

Nel modello di illuminazione OpenGL, 4 equazioni illuminazione separati vengono calcolati per un oggetto: ambiente, diffuso, speculare, ed Emissione. Ambiente non prende le normali in considerazione, diffusa e speculare fanno, e di emissione non tiene la luce in considerazione a tutti.

Tutti questi valori differenti di illuminazione vengono sommati per dare il colore finale di un oggetto.

Altri suggerimenti

Sì, questi sono i valori predefiniti per Light0: http: // www.opengl.org/sdk/docs/man/xhtml/glLight.xml

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top