où est GL_MULTISAMPLE défini?
Bien que j'ai été découragé à partir de la lecture de l'OpenGL redbook, je suis encore en train de faire, parce que c'est la seule livre conçu pour les débutants, et des tutoriels et/ou de la documentation n'est pas tout à fait remplacer un livre, bien que très important. Autant pour me justifier 🙂
Maintenant, il y a un exemple pour l'antialiasing en utilisant le multisampling, qui a impliqué
glEnable(GL_MULTISAMPLE);
Je suis à l'aide de Qt, et j'ai une erreur de compilation, car GL_MULTISAMPLE est un identificateur non déclaré. Je vois actuellement les raisons suivantes:
- Pour certaines implémentations, y compris celui qui vient avec Qt, GL_MULTISAMPLE n'est pas défini.
- Il n'est pas dans GL/gl.h ou GL/glu.h mais plutôt dans certains autres d'en-tête qui n'est pas inclus dans
<QGLWidget>
ou ne vient pas avec Qt - Il est obsolète/obsolète
Est l'une des raisons ci-dessus est correcte? Si non, qui est la raison pour laquelle je ne l'ai pas, et comment puis-je obtenir? Merci d'avance
- Il y a beaucoup de opengl livres d'ailleurs, le livre rouge, la plupart d'entre eux sont beaucoup mieux pour les débutants.
- Qui recommanderiez-vous?
- Je ne sais pas pourquoi les gens vous déconseillons de le lire, je pense que c'est un excellent livre qui obtient les concepts de base.
- Armen Tsirunyan Si vous avez juste besoin d'apprendre l'API, je propose l'OpenGL Super Bible. Si vous ne savez rien à propos de l'informatique graphique et la nécessité d'en savoir plus sur les mathématiques côté des choses de l'Informatique Graphique en Utilisant OpenGL par Hill et Kelley
Vous devez vous connecter pour publier un commentaire.
GL_MULTISAMPLE
est uneutilisé pour être une extension OpenGL, jusqu'à 1.3, et si oui ou non il est mis en œuvre dépend de votre matériel/drivers/vendor mise en œuvre. Vous pourriez voulez vraiment utiliserGL_MULTISAMPLE_ARB
à la place. Si vous êtes sur Windows, la plate-forme fournie OpenGL en-têtes ne comprendront pas cette macro.Voir aussi:
La réponse de RA permettra de simplifier l'extension de la manipulation - je préfère l'utilisation de
GLee
moi-même, mais ils sont à peu près interchangeables (et GLee ne paresseux init qui m'a aidé à résoudre un problème critique sur Solaris), mais GLEW est gardé jusqu'à ce jour (GLee est obsolète maintenant que Kos a porté à mon attention.).Puisque vous avez dit que vous êtes à l'aide de Qt bibliothèques GLEW etc n'est probablement pas nécessaire puisque Qt enveloppements et lie les extensions pour vous.
Si vous utilisez QGLWidget il est particulièrement facile. Vérifier cet exemple fourni avec Qt et utilise
GL_MULTISAMPLE
, en particulier la glwidget.cpp fichier qui définit:Si vous souhaitez personnaliser le FSAA échantillons, passer votre propre QGLFormat à la QGLWidget constructeur par exemple:
Changement
format.setSamples(4)
à votre goût. Assurez-vous d'ajouterglEnable(GL_MULTISAMPLE)
dans votre paintGL() de la fonction avant le rendu de votre scène.Une bibliothèque pour aider avec les extensions http://glew.sourceforge.net/
GL_MULTISAMPLE est défini dans glext.h, glext.h est contenue à l'intérieur de certains linux package: glew, gtkglext ou avec un pilote opengl (avoir un coup d'oeil ici: http://www.opengl.org/registry/#headers).