Je pense que c'est une question extrêmement stupide et débutant, mais je suis un débutant dans les graphiques et OpenGL. Ayant dessiné une sphère et mis une source de lumière à proximité, ayant également une lumière ambiante spécifiée, j'ai commencé à expérimenter avec des valeurs lumineuses et matérielles et j'en suis arrivé à une conclusion surprenante: les couleurs que nous spécifions avec glColor*
n'ont aucune importance. Au lieu de cela, l'équivalent est le composant ambiant du matériau. Cette conclusion est-elle correcte? Merciquestion d'éclairage OpenGL de base
Répondre
Si l'éclairage est activé, au lieu de la couleur de sommet, la couleur du matériau(bien, les couleurs - il existe plusieurs d'entre eux pour différents types de réponse à la lumière) est utilisé. Les couleurs des matériaux sont spécifiées par les fonctions glMaterial*
.
Si vous souhaitez réutiliser votre code, vous pouvez utiliser glEnable(GL_COLOR_MATERIAL)
et glColorMaterial(GL_AMBIENT_AND_DIFFUSE)
pour que vos anciens appels glColor*
soient automatiquement mappés à la couleur du matériau.
(Et s'il vous plaît passer à Shaders aussi vite que possible - l'approche des shaders est à la fois plus facile et plus puissant)
Je suppose que vous n'utilisez pas encore de fragment shader. De glprogramming.com:
vertex color = the material emission at that vertex + the global ambient light scaled by the materials ambient property at that vertex + the ambient, diffuse, and specular contributions from all the light sources, properly attenuated
Alors oui, la couleur du sommet n'est pas utilisé.
Edit: Vous pouvez également rechercher l'équation de la foudre GL dans la spécification GL (vous en avez un à proximité, avez-vous ^^?)
- 1. opengl: question sur glutMainLoop()
- 2. Question COM de base
- 3. C++ base de question
- 4. oracle question de base
- 5. Filetage de base Question
- 6. oracle question de base
- 7. OpenGL ES alpha blending multi-texture question
- 8. OpenGL 3.2 Guide du profil de base
- 9. OpenGL Triangle Strip Question à poser
- 10. question de conception pour une bibliothèque SDL \ OpenGL Window & Widget
- 11. Question de base de gradation
- 12. Question de base SQL query
- 13. question de base sur l'interface
- 14. C++ - question Qt de base
- 15. sur sql question de base
- 16. question rewrite-règle de base
- 17. C++ - question conteneur de base
- 18. Base de données Normalisée Question
- 19. Question OAM de base OCaml
- 20. objectif C question de base
- 21. Base de données Design Question
- 22. iphone version de base question
- 23. question mod_perl base
- 24. question php base
- 25. base question mod_rewrite
- 26. Question de conception de base de données
- 27. Question de schéma de base de données
- 28. Question de conception de base de données
- 29. question de conception de base de données
- 30. Module OpenGL Python - impossible de rendre le triangle de base
J'ai tellement entendu parler de ces shaders, mais je ne sais pas ce qu'ils sont. Je suppose que je devrais juste être patient jusqu'à ce que j'arrive aux chapitres appropriés du livre rouge :) Merci pour la réponse –
Le Redbook est aussi démodé que le rendu entier de fonction fixe dont nous discutons. Vous pouvez le lire pour une théorie et c'est tout. Pour les tutoriels de shader, google pour Lighthouse3D. :) Jetez aussi un coup d'œil sur les documents de référence OpenGL 2.1 ou OpenGL 3 sur opengl.org/documentation/specs/ - ils sont assez gros, mais un aperçu vous donnera une bonne idée du fonctionnement d'OGL. – Kos
@Kos: Si le livre rouge est obsolète, quel livre recommanderiez-vous? Une documentation n'est pas un livre, c'est une bonne chose, mais les débutants ont du mal à utiliser la documentation directement –