Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Depth Fail Y La Capping Que La....

Iniciado por Haddd, 15 de Febrero de 2006, 09:43:05 PM

« anterior - próximo »

Haddd

 Hola amigos. Tengo un problema con depth fail y las sombras. Resulta que cuando el capping es coplanar, depende de la suerte que pase o no pase el depth test. Me ayudo del Depth bias, pero claro, eso es un valor que se suma, por lo que la Z se modifica en todos los polígonos del shadow volume...

¿como lo resolveis vosotros?

Muchas gracias

(ole)  

Pogacha

 Puedes poner un diagrama ... no me oriento del todo en el problema.

El depth bias es inevitable, el problema que encontré fue que hay distintos parametros para distintas placas de video, bueno ... prácticamente la placa de Berserker y el resto de las placas del mundo.

Saludos.

Haddd

 coge un cubo. Pon la luz encima. Entonces el volumen de sombra con capping arriba es igual al plano superior del cubo no?

Entonces, como es depth fail, falla al dibujar ese capping, puesto que no lo renderiza por problemas de precisión.

Solución, depth bias al volumen, pero el depth bias es incontrolable. Yo he descubierto el SlopeDepthBias,y va bastante bien, ...

¿como lo resuelves tu?

Pogacha

 Bien, como no se nada de DX hablo matematicamente.

Despues de jugar bastante con los parametros del z-bias encontre que con multiplo tipo 1.01f y dezplazamiento de -0.01f en plan z' = 1.01f * z - 0.01f, hace que para z cercanas a la pantalla donde hay mucha presicion la diferencia sea suficiente  con (z > 1.01f) y cuando me alejo la precision disminuye y se corrije con esto el multiplo. O sea es la aproximación mas cercana a la hiperbola de presicion del z-buffer.

Pero solo usaba esto para cuando dibujaba las mismas superficies y no las sombras.

Ahora no entiendo por que usas depthfail para caras que puedes ver ( o que se dibujan )  :blink:
En mi motor esto no lo hacia, comparaba superficie por superficie para ver que superficie requeria depthfail y cuales no y creo que es la solucion a este problema.

Mi render (mas o menos):

Dibujo en ambient ( relleno depth buffer )

Desactivo escritura en depth buffer

Tomo luz y separo caras para depth pass y depth fail
 - Dibujo sombras en el stencil con depth pass
 - Dibujo sombras en el stencil con depth fail
 - Dibujo caras iluminadas modificando la z con la ecuacion de arriba ( para evitar z-fighting GLEQUAL no anda  en todas las placas)
 - repito mientras halla una luz.

Dibujo transparencias en orden.

Saludos, espero sirva de algo.

Haddd

 Gracias, lo tendré en cuenta. A ver si el domingo vuelvo con las sombras y lo terminó de redondear. :P  






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.