2017-09-24 4 views
0

Je viens de découvrir qu'OpenGL a un éclairage intégré qui peut être activé avec glEnable(GL_LIGHTING);. Pourquoi les didacticiels, etc. utilisent-ils un personnalisé fait avec des shaders? Il doit y avoir une raison. Qu'est-ce que l'éclairage intégré fait pire?OpenGL Utilisation de l'éclairage intégré ou personnalisé avec shaders

+0

"éclairage intégré" utilise l'ombrage Gouraud. Alors que l'ombrage de Gouraud calcule la lumière dans le vertex shader, Phong shading calcule la lumière dans le fragment shader - voir [remplacement de programme de fragment de fonction fixe GLSL] (https://stackoverflow.com/questions/8421778/glsl-fixed-function- fragment-programme-replacement/45716107 # 45716107) – Rabbid76

Répondre

3

intégré OpenGL a éclairage

Non, il ne fonctionne pas. Toutes ces choses étaient removed from OpenGL in 3.1 and put into the compatibility profile. Qui est pas requis pour être pris en charge.

Qu'est-ce que l'éclairage intégré fait de pire?

Tout. Ça fait tout pire.

L'éclairage à fonction fixe est au sommet, tandis que l'éclairage à base de shader peut être ce que vous voulez: par sommet, par fragment, etc. L'éclairage à fonction fixe ne fonctionne pas avec le rendu différé, les pré-passes d'éclairage ou diverses autres techniques de rendu. L'éclairage à fonction fixe ne peut pas gérer l'éclairage HDR ou gamma correct.

L'éclairage à fonction fixe ne peut rien faire qu'un éclairage défini par l'utilisateur ne peut pas faire. Bien qu'il y ait une tonne de choses que l'éclairage défini par l'utilisateur peut faire, cette fonction fixe ne peut pas.

Il est bon que les tutoriels OpenGL modernes n'enseignent pas cette poubelle obsolète.

+0

Que diriez-vous de glShadeModel (GL_SMOOTH). Est-ce bon à utiliser ou devrais-je en faire un personnalisé en géométrie shader? – Maineri