2010-05-03 13 views
2

J'essaie de trouver comme les tutoriels de NeHe pour Qt qui sont tous dans GLSL. Parce que laisse les choses en face, OpenGL dans l'ancien temps est mort et Shaders est le seul moyen maintenant. Et avec Qt-4.6, ils ont introduit les classes QMatrix4x4, QVector3 et Shader. Mais je ne trouve aucun tutoriel pour cela. Tous ceux que je trouve, utilisent tous des SDL et/ou des GLUT (qui sont tout simplement inutiles).Qt 4.6 OpenGL GLSL

+6

SDL et GLUT ne sont pas inutiles. IMO ils sont juste des bibliothèques différentes avec des objectifs différents. Qt est le même. –

+0

Pour moi, ils sont depuis que je ne vais pas les utiliser – Zeke

Répondre

2

Portage du code OpenGL entre les langages et les cadres GUI ne devrait pas beaucoup changer le code. Lorsque vous passez de GLUT à Qt, par exemple, vous déplacez le code de remodelage de GLUT dans la fonction resizeGL de QGLWidget et la fonction d'affichage de GLUT dans la fonction paintGL de QGLWidget. C'est le plus grand changement qui va de GLUT à Qt en plus de la configuration. En plus de cela, tout est très bien vu en tant que petits utilitaires et classes bonus. Vous devez essentiellement chercher un cours quand vous en avez besoin. Comme "Je vais utiliser un shader, alors voyons si Qt a des classes auxiliaires". Vous trouvez une classe appelée QGLShader, qui semble aider, mais elle n'a pas de documentation, donc vous devriez essayer une autre classe qui pourrait avoir une documentation comme QGLShaderProgram.

http://doc.trolltech.com/4.6/qglshaderprogram.html#details

Sauter vers le bas pour les détails, il vous donne un exemple/tutorial de comment l'utiliser et la classe QGLShader.

Pour les classes plus petites comme les vecteurs et les matrices, il suffit de lire leur documentation de fonction, ce qui est assez simple. Les vecteurs, par exemple, ont une classe QVector3. Je peux regarder sa page de classe et voir qu'elle a la fonctionnalité normale que je m'attendrais dans une classe de vecteur comme la normalisation, l'ajout, etc. Un tutoriel sur quelque chose d'aussi simple ne m'aiderait pas vraiment. D'après mon expérience, c'est la façon standard d'utiliser les wrappers dans OpenGL. Dans JOGL, par exemple, il y a une grande classe Texture, ce qui est utile pour la texture io. Quand j'ai eu besoin d'ajouter des textures, je l'ai trouvé juste en cherchant "texture" dans le javadoc.

Questions connexes