Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Duda Sobre Sombras...

Iniciado por SkyNetBCN, 05 de Octubre de 2005, 03:33:38 PM

« anterior - próximo »

SkyNetBCN

 tengo una duda a cerca de cómo hacer sombras (Utilizo D3D).
En un capítulo de un libro que compré, explica como renderizar sombras, no volumétricas. pero creo que el ejemplo no es demasiao útil. Hay alguna manera de representar todas las sombras de una escena llena de objetos 3D (en mi caso, .x Files)? O hay que ir dibujando objeto por objeto su sombra?
Sk sinceramente no pillo cómo se hace.... :P  Gracias


Topper

 echa un vistazo a los shadowmaps. Te aplica sombras sin importar qué tipo de geometría se encuentre en la escena. Dan menos calidad que los shadowmaps pero son más rápidos de procesar (aunque la escena se renderice por duplicado).

saludos.

Edit: quería decir que dan menos calidad que los shadow volumes con  Stencil Buffer.  :P  

Ray

 Creo que hara falta un buen teorico para explicar esto, de todos modos en el foro del motor de haddd ya se comento este tema.

Lo mejor es el sombreado de volumen, el problema que tiene es que hay que calcular el contorno del objeto desde el punto de vista de la luz y crear el volumen como un nuevo objeto asociado, por lo que puede ser muy costoso aplicar a muchos objetos.

(Lo raro es que esto no lo hagan ya las tarjetas gráficas).

Quizás lo mejor es hacer una mezcla de mapas de sombras para objetos de decorados o lejanos y volumenes de sombras para protagonistas.

basicamente es así el shadow volume:

1- se crea el volumen de la sombra con respecto a la luz

2- se dibuja en el stencil buffer

3- se renderiza un rectangulo negro en toda la pantalla, y este solo sera dibujado de acuerdo a los valores del stencil buffer donde corresponda.

A ver si alguien pone un enlace donde se explique bien el tema este, mientras aqui hay un ejemplo de sombras de volumen, realmente lo único   complejo es crear la proyección de la sombra del objeto.

ShadowVolume.cpp

AK47

 Tambien puedes renderizar el objeto a una textura en blanco y negro (negro el objeto, blanco el fondo) y proyectarlo en la escena. Perderas las auto-sombras (que un objeto lance sombra sobre si mismo) y si no te montas un tinglado de ordenacion y tal tambien perderas que todo lance sombra sobre todo. Aun asi te ahorraras costosas extrusiones o que ni siquiera arrance en tarjetas de Geforce 3 para abajo ;)

Haddd

 Las sombras es una de las cosas más difíciles, y que probablemente sea el motivo final para que pasemos al fin a raytracing.

No existe un solución perfecta, pero eso sí, hay muuuucha literatura. En Internet encontrarás todo lo que necesites, incluso los últimos algoritmos sobre shadowmap, que es la técnica que parece que al final se impone sobre las stencil...

SkyNetBCN

 Bua, todo lo que veo me asusta, para mi nivel (bajo), las cosas que veo son demasiado complicadas pk para empezar, no entiendo muchos de los ejemplos que veo...  me pasa = al intentar hacer un espejo, queria que un objeto (ID3DXMesh) reflejara toda una escena... y me fue imposible, los libros que utilizo tampoco tiene ejemplos en los que usen (por ejemplo) ID3DXMesh, si no que lo hacen todo con Planos, etc...

En resumen, que hay puntos en los que no progreso, ni sé como progresar...  (nooo)  

AK47

 Jejeje, por el progreso no te preocupes, ya iras poco a poco ;)
Respecto a lo de que un objeto refleje todo una escena pues, asi dicho, mas bien parece el environment mapping. Aun asi te recomiendo que te documentes y salsees todo lo posible, que asi se como se aprende  :ph34r:  

Haddd

 pues yo creo que lo que has conseguido ya es mucho  (ole)  

SkyNetBCN

 Gracias Haddd. Conseguí la escena que e puesto en el otro post, y la veis perfecta, y a los 5 minutos veia que le faltaban 1cientos de cosas, y que no sabía hacer ninguna de ellas...  no sé si alguna vez habeis tenido esta sensación..."La programacion grafica es genial..." :P . jeje.

Por cierto, esa escena era de los créditos de un juego que quiero hacer. El juego será de Naves y de acción en 1ª persona (cada mision será de un estilo...). Alguien me puede dar algún consejo? sobre todo con los objetos 3D, actualmente lo hago todo en 3D studio y lo exporto a .X (directX), pero a veces, los objetos (sobre todo los más complejos) no se ven correctamente... alguien puede guiarme un poco?

Gracias!!


[EX3]

 
Cita de: "SkyNetBCN"Alguien me puede dar algún consejo?
Para empezar lo mas recomendable, pienso yo, seria que te centraras primero en hacer el motor y el juego en si, que te va a traer mas quebraderos de cabeza y mas trabajo que el resto de cosas. Despues, una vez hecho los "cimientos" y los "tabiques" puedes perder el tiempo mas relajadamente con el "tejado", osease, los menus y pantallas de credito ;)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Ray

Cita de: "SkyNetBCN"Por cierto, esa escena era de los créditos de un juego que quiero hacer. El juego será de Naves y de acción en 1ª persona (cada mision será de un estilo...). Alguien me puede dar algún consejo? sobre todo con los objetos 3D, actualmente lo hago todo en 3D studio y lo exporto a .X (directX), pero a veces, los objetos (sobre todo los más complejos) no se ven correctamente... alguien puede guiarme un poco?

Gracias!!
Creo recordar un fallo al exportar a x (no se con que modelador) que era que algunos polígonos eran rectangulares en lugar de triangulares y no servian.

Mira a ver si es por casualidad eso y convierte todos los polígonos a triangulos antes de exportar. De todos modos no especificas si el fallo se da en la geometria, texturas o normales.

Podría ayudarte en un futuro con el tema de las shadow volume porque yo ya lo tengo implementado con éxito en DirectX sobre objetos usando D3DX.

un saludo.






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.