[OpenGL] arètes cachés en pointillés
Résolu
Flachy Joe
Messages postés
2102
Date d'inscription
Statut
Membre
Dernière intervention
-
Flachy Joe Messages postés 2102 Date d'inscription Statut Membre Dernière intervention -
Flachy Joe Messages postés 2102 Date d'inscription Statut Membre Dernière intervention -
Salut,
Je cherche à afficher en OpenGL des géométries avec les arêtes cachés en pointillés et les arêtes visibles en traits plein.
Je sis qu'il faut utiliser le DepthBuffer et le StencilBuffer en multi-passes mais je n'arrive pas à obtenir ce que je veux.
Merci à ceux qui ont une solution à me proposer
Je cherche à afficher en OpenGL des géométries avec les arêtes cachés en pointillés et les arêtes visibles en traits plein.
Je sis qu'il faut utiliser le DepthBuffer et le StencilBuffer en multi-passes mais je n'arrive pas à obtenir ce que je veux.
Merci à ceux qui ont une solution à me proposer
A voir également:
- [OpenGL] arètes cachés en pointillés
- Jeux cachés google - Guide
- Comment faire des pointillés sur word - Guide
- Comment voir les messages cachés sur whatsapp - Guide
- Appeler en numero caché - Guide
- C'est quoi les caches des applications - Guide
2 réponses
J'ai trouvé la solution :
- Tracer les lignes dans le StencilBuffer (avec le DepthMask et tous les ColorMask à False) avec les paramètres :
- Tracer les faces avec les paramètres :
- Activer le ColorMask : glColorMask(True, True, True, True) puis retracer les lignes
- Tracer les lignes en pointillés avec les paramètres
Et voilà !
- Tracer les lignes dans le StencilBuffer (avec le DepthMask et tous les ColorMask à False) avec les paramètres :
glStencilFunc(GL_ALWAYS, 1, 1) glStencilOp(GL_KEEP, GL_KEEP GL_REPLACE)
- Tracer les faces avec les paramètres :
glPolygonOffset(0.8, 0.8) glEnable(GL_POLYGON_OFFSET_FILL) glDepthMask(True) glStencilFunc(GL_EQUAL, 1, 0) glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE)
- Activer le ColorMask : glColorMask(True, True, True, True) puis retracer les lignes
- Tracer les lignes en pointillés avec les paramètres
glDisable(GL_DEPTH_TEST) glClear(GL_STENCIL_BUFFER_BIT) glStencilFunc(GL_EQUAL, 0, 1) glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE)
Et voilà !