Question

Je voudrais créer un jeu en mode wireframe sans toutefois la commande glPolygoneMode Je ne sais pas comment je le ferais. Est-ce quelque chose que je pourrais moi-même code avec ce qui est disponible? Je suis tout à fait nouveau pour opengl. Si quelqu'un a fait cela et a le extrait de code que j'aimerais le voir. Toute aide est appréciée.

Était-ce utile?

La solution

vous pouvez rendre l'utilisation GL_LINES On peut imaginer toute la scène

Autres conseils

Malheureusement, vous pourriez avoir à réellement complètement convertir la géométrie aux primitives de ligne et de les rendre à l'aide GL_LINES . Cependant, il est bien sûr pas fait en remplaçant simplement GL_TRIANGLES (ou autre) avec GL_LINES dans vos appels tirage, vous devrez entièrement réorganiser vos sommets pour accueillir le nouveau mode primitif. Cela vous oblige à utiliser au moins différents tableaux d'index dans les appels glDrawElements... ou, pour le rendu non indexé (glDrawArrays...), les tableaux de sommets complètement différents (bien que, dans le cas où vous choisissez vraiment faire, cela pourrait être le bon moment pour passer à indexé dessin au lieu).

Si, cependant, vous avez Geometry Shader disponible (cependant, il semble WebGL ne prend en charge pas, OpenGL ES doit depuis la version 3.2, comme desptop GL, mais qui a un bon vieux glPolygonMode de toute façon) et ne les utilisent pas déjà quelque chose d'autre, les choses deviennent plus faciles. Dans ce cas, vous pouvez simplement installer un assez simple la géométrie Shader entre le sommet et le traitement fragment qui prend des triangles et des sorties 3 lignes pour chacun d'eux:

layout(triangles) in;
layout(line_strip, max_vertices=4) out;

void main()
{
    for(int i=0; i<4; ++i)
    {
        // and whatever other attributes of course
        gl_Position = gl_in[i%3].gl_Position;
        EmitVertex();
    }
}

Si vous utilisez shaders à base de bloc approprié d'interface, vous devriez être en mesure d'utiliser vos sommets existants et fragment shaders pour le reste et juste crochet geometry shader entre eux pour le rendu wireframe de toutes sortes pour les primitives à base de triangle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top