Quelle est la meilleure façon de tirer un plein écran de quad dans OpenGL 3.2?
Je fais ray casting dans le fragment shader. Je peux penser à un couple de façons de dessiner un plein écran de quad à cette fin. Tirer un quad dans le clip de l'espace avec la matrice de projection ensemble de la matrice d'identité, ou de l'utilisation de la géométrie shader pour activer un point dans un triangle strip. Le premier utilise le mode immédiat, obsolète dans OpenGL 3.2. Le dernier, j'ai utiliser de la nouveauté, mais il utilise toujours le mode immédiat pour dessiner un point.
- La géométrie shader pour générer un quad à partir d'un point ressemble trop si vous avez juste besoin d'un seul quad. Il suffit de dessiner deux triangles ou un triangle strip. Ces quatre sommets ne vous blessera pas, du moins pas aussi dur comme une géométrie particulière shader pour quelque chose d'aussi simple.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez envoyer des deux triangles de la création d'un quad, avec leur sommet attributs -1/1 respectivement.
Vous n'avez pas besoin de les multiplier avec une matrice dans le vertex/fragment shader.
Voici quelques exemples de code, simple comme il est 🙂
Vertex Shader:
Fragment Shader :
Pour une sortie en plein écran quad geometry shader peut être utilisé:
Vertex shader est tout simplement vide:
À utiliser ce shader, vous pouvez utiliser mannequin commande de dessin avec vide VBO:
GLint vao; glGenVertexArrays( 1, &vao ); glBindVertexArray( vao ); glDrawArrays( GL_POINTS, 0, 1 );
Un indice par Chistophe Riccio:
Pas besoin d'utiliser une géométrie shader, un VBO ou de la mémoire à tous.
Un vertex shader peut générer le quad.
Lier un vide VAO. Envoyer un appel pour 6 sommets.
La suivante vient de la fonction draw de la classe qui attire fbo textures à un écran aligné quad.
Le réel quad lui-même et les coordonnées sont obtenu à partir de:
La liaison et la mise en place de la vbo est que je vous laisse.
Le vertex shader:
Parce que la position est cru, c'est pas multiplié par une matrice -1, -1::1, 1, du quad, de l'ajustement dans la fenêtre d'affichage. Recherchez Alfonse de tutoriel liée hors de l'un de ses messages sur openGL.org.