Ver Mensaje Individual
  #1  
Antiguo 28-05-2017
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 102
Reputación: 14
FENIXadr Va por buen camino
problemas con STENCIL TEST

Hola gente tengo un problema con el STENCIL TEST de OpenGL. La idea es seleccionar objetos con el Mouse, con lo cual dibujo una mascara de los objetos y si hago click en la mascara por ende estoy haciendo click en el objeto.
En realidad el problema se genera en la función glStencilOp .

Este es el código del Stencil Test :

Código Delphi [-]
    glClearStencil(0);
    glClear(GL_STENCIL_BUFFER_BIT);

    glEnable(GL_STENCIL_TEST);

    glStencilFunc(GL_ALWAYS, 1, 255);
    glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);

    RenderObject;

    glDisable(GL_STENCIL_TEST);

como ven estoy diciéndole por medio de glStencilOp que :

* cuando falle el STENCIL TEST, deje el Byte como esta.. (GL_KEEP)
* cuando falle el DEPTH TEST pero pase el STENCIL TEST también, que deje el Byte como esta .. (GL_KEEP)
* cuando pase el DEPTH TEST y el STENCIL TEST, que reemplace el valor del Byte.. (GL_REPLACE)

de esta manera el STENCIL BUFFER queda todo con "0" o sea borrado y esto se debe a que no pasa el DEPTH TEST..

Si yo tengo una sola figura como puede ser que no pase su propio test de profundidad..

Si en el segundo parámetro pongo GL_REPLACE o sea fallando el DEPTH TEST y pasando el STENCIL TEST, entonces funciona, tengo una mascara de la figura correctamente ... pero si no respeto el test de profundidad cuando tengo mas figuras no sabe cual esta adelante..

Alguna idea de que puede estar pasando?


Desde ya Muchas Gracias..
Responder Con Cita