J'ai besoin de dessiner des contours autour d'objets 2D dans un espace 3D. J'ai essayé de dessiner des lignes autour de l'objet (+ points pour combler l'écart), mais en raison de la largeur de la ligne, une partie (~ 50%) couvrait l'objet. J'ai essayé d'utiliser le tampon de pochoir, pour éliminer ce problème, mais je suis arrivé comme ça (le contour est vert):
http://goo.gl/OI5uc (désolé, je ne peux pas publier d'images, en raison de ma réputation)
Vous pouvez voir (là où la flèche pointe), que certaines parties de la ligne sont derrière l'objet et d'autres au-dessus. Cela change lorsque je déplace la caméra, mais il y a toujours une partie qui la recouvre. Voici le code que j'utilise pour dessiner un objet:
glColorMask(1,1,1,1);
std::list<CObjectOnScene*>::iterator objIter=ptr->objects.begin(),objEnd=ptr->objects.end();
int countStencilBit=1;
while(objIter!=objEnd)
{
glColorMask(1,1,1,1);
glStencilFunc(GL_ALWAYS,countStencilBit,countStencilBit);
glStencilOp(GL_REPLACE,GL_KEEP,GL_REPLACE );
(*objIter)->DrawYourVertices();
glStencilFunc(GL_NOTEQUAL,countStencilBit,countStencilBit);
glStencilOp(GL_KEEP,GL_KEEP,GL_REPLACE);
(*objIter)->DrawYourBorder();
++objIter;
++countStencilBit;
}
J'ai essayé différents paramètres de tampon de pochoir, mais je recevais toujours quelque chose comme ça. Voici la question: 1.Suis-je en train de définir un tampon de pochoir incorrect?
2. Existe-t-il d'autres moyens simples de créer des contours sur de tels objets?
Merci d'avance.
ÉDITER:
1. Je n'ai pas de normales d'objets.
2. L' objet peut être concave.
3. Je ne peux pas utiliser de shaders (voir ci-dessous pourquoi).