Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Oclusion Query

Iniciado por Haddd, 22 de Junio de 2004, 08:29:28 PM

« anterior - próximo »

Haddd

 Quiero utilizar oclusion query para saber si tengo que dibujar algo o  no. Mi duda viene en la forma de utilizarlo:

Para todos los objetos

1. Renderizo el Bounding Box del objeto sólo afectando a Z.
2. Si el valor de oclusion query es 0, signfica que no se ve y no lo dibujo
3. Si no es 0, dibujo el objeto


El problema es que si se ve, al dibujar un rectángulo, estoy poniendo valores en la Z que no tienen que estar. ¿Conoceis alguna forma de evitar esto? No vale no escribir en el Z, porque entonces oclusion query siempre devuelve 0.

DraKKaR

 Lo primero que se me ocurre es deshabilitar la escritura en el z-buffer cuando pintas el bounding box para el occlusion query. De esta forma al pintarlo, utilizaría la información del z-buffer, pero nunca escribiría en él.

No veo porque el occlusion query tiene que devolver 0 deshabilitando el zbuffer. Al menos en el occlusion query de opengl parece que aunmenta el contador por cada fragmento que hay pasado el depth buffer. Por lo tanto, aunque tengas la escritura en zbuffer deshabilitada (que no zbuffer deshabilitado) debería funcionar.

Puede que el fallo esté en otra parte.

tamat

 glDepthMask(GL_FALSE)

De esta manera testea el z buffer pero no lo modifica cuando el test da que debe pintar el pixel
Por un stratos menos tenso

Lord Trancos 2

 Aqui tienes una demo de occlussion culling via hardware, aunque es OpenGL+Delphi. Espero que te sirva.

http://www.delphi3d.net/download/occlusionengine.zip

on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Haddd

 Quizás esté equivocado y no sea necesario grabar en el ZBuffer. Repasaré el código que tengo de colisión de sprites. B)  

Haddd

 Cierto, era un error mio. Sólo es necesario activar el ZBuffer no es necesario activar la escritura. Así está muy muy claro, no hay problema (ole)

Gracias a todos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.