Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Sombras en tiempo real... x(((

Iniciado por MChiz, 24 de Mayo de 2003, 06:59:13 PM

« anterior - próximo »

MChiz

                                Hola a todos:

Estos dias me estoy pensando en intentar implementar sombras en tiempo real. Realmente es muy jodido...
He estado mirando los Shadow Maps, ya que parecen bastante faciles de implementar, pero eso de que solo sirvan para luces direccionales, no me acaba de hacer... como veis el tema de las Stencil Shadows? A mi me parecen bastante complicadas ( por lo de encontrar la silueta del modelo ) y a su vez bastante costosas.

Otra duda que tengo, con el tema de las sombras en general, es sobre el como detectar las luces que afectan al modelo. La atenuacion doy por supuesto que se utiliza, pero que pasa si al modelo le afectan dos o mas luces? O hay que hacer que esto no pase?
Lo digo porque por ejemplo, si se ponen unas luces al nivel para hacer los lightmaps, me da en la nariz que no voy a poder usar las mismas luces para las sombras ( o muy bien repartidas tendrian que estar puestas ). Esto es asi? Por mas vueltas que le doy, no consigo aclararme del todo :(

Gracias a todos!
Un saludo!                                

MChiz

                                No? Nadie?                                

Haddd

                                Sombras por Stencil es un método en el cual la geometría se expande en la dirección de la luz. El coste es "pequeño" pq puedes utilizar un modelo mucho más simple del que en realidad se ve y el problema lo resuelves mandando más geometría a la escena, con lo que el coste es pequeño y funciona en todas las tarjetas. Aunque lo de pequeño depende de la sombra final, puesto que si la sombra es muy grande, pues la tarjeta tiene que renderizar mucho más que si la sombra es pequeña.
El problema es que la sombra es "dura", es decir, en los límites no está suavizada y esto le resta mucha calidad.

Los Shadow maps permiten que las sombras sean más reales, pero lo que hace el programa es renderizar desde el punto de vista de la luz y eso tiene suis problemas para calcular el tamaño del RenderTarget.

Respecto a los Lightmaps, se puede utilizar esta técnica para crear luces en "tiempo real" aprovechando ya muchos valores precalculados. No he probado todavía esta técnica, pero creo que no tardaría mucho una CPU de hoy en día en recalcular la iluminación.                                

MChiz

                                Gracias por responder, pero sigo con la duda sobre el tema de como poner las luces.
Bueno, ya me seguire informando.
Gracias de nuevo                                

ALBSIM

                                Bueno, lo de que con los Shadow Maps solo sirvan para luces direccionales no es del todo cierto, por ejemplo en http://www.delphi3d.net tienes una demo de dual paraboloid shadow mapping, el cual permite sombras generadas por pointlights.                                

MChiz

                                ui, perdona! Queria decir luces puntuales direccionales ( focos ). Es cierto que se pueden hacer luces omni, pero me parece muy costoso lanzar 6 renders por luz y luego tener que proyectar eso en la escena.
He implementado las Stencil Shadows ( que recomiendo a quien quiera meter sombras que haga las de este tipo ) y me ha sido muchisimo mas facil de lo que me esperaba. En realidad no tienen nada!
Voy a mirar la pagina que me has dicho.
Gracias! : )                                

MaSteR

                                Estoy de acuerdo, a mi me parece muy acertado el uso de stencil, te recomiendo q lo pruebes.                                

Zaelsius

                                Si no me equivoco, hace algunos años(cuando no se utilizaba stencil buffers), las sombras se creaban renderizando los modelos(con menos polys) aplicando una transformación que los delimitaba al plano del suelo...y con esto y desactivando la luz y textura(para que la figura resultante fuese negra) se creaban las sombras. ¿No?

Creo que es la técnica que se utilizaba en motores software, pero no estoy seguro, lo mismo me lo estoy inventando ;-)                                

Daventry

                               
CitarSi no me equivoco, hace algunos años(cuando no se utilizaba stencil buffers), las sombras se creaban renderizando los modelos(con menos polys) aplicando una transformación que los delimitaba al plano del suelo...y con esto y desactivando la luz y textura(para que la figura resultante fuese negra) se creaban las sombras. ¿No?

Creo que es la técnica que se utilizaba en motores software, pero no estoy seguro, lo mismo me lo estoy inventando

No te equivocas, es justo eso ;)                                
img src='http://www.danasoft.com/sig/vipersig.jpg' border='0' alt='user posted image'>

_Grey

                                A eso no se le llamaba "proyeccion de poligonos" ?

En el libro de OpenGL de Anaya, hablan precisamente de eso.

Creas una matriz que al transformar el modelo, este se dibujaba "sobre" el poligono a donde se proyectaba.

Pero te las tienes que apañar para no dibujar fuera de ese poligono, y proyectar a tantos poligonos como sea necesario, resulta curioso que en el libro que comento, para no dibujar fuera del poligono se usa el stencil buffer :loco:

Y regresando al tema principal , no habia implementado sombras de ninguna forma, hasta que un dia me dia por probar...... pense que el shadow volumes seria lo mas facil (aun a costa de tener que requerir un hardware con stencil buffer), y la verdad creo que hacerte, lo implemente en un pis pas (como es logico pensar, se puede optimizar mucho mas lo que tengo hecho, pero para probar la teoria y tal, vale :ojo:  ), es mas, me da cosa pensar en los shadow map, tener que renderizar a una textura de niveles de gris, calculando segun le venga la luz, y luego toqueteando las coordenadas de cada vertice de cada poligono para que salgan en su sitio(salvo de las luces estaticas....creo....)(Por cierto,DirectX tiene una forma de calculo automatico de coordenadas de textura, alguien me puede decir si se puede usar para este caso), en fin, me parece una carniceria mental, ademas me gustan mas los shadow volumes, quedan perfectos, no como los shadow maps que corres el riesgo de que te salgan "cuadriculados".....

En fin, no doy mas la lata, saludotes!.                                

MChiz

                                Veo que todos estamos de acuerdo : )                                

Tei

                               
CitarVeo que todos estamos de acuerdo : )

amen                                






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.