Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





generar sombras

Iniciado por marcode, 19 de Junio de 2007, 08:37:01 PM

« anterior - próximo »

marcode

¿Alguien sabe qué es lo mejor para generar shadow maps de calidad?. Sin shaders, y en un tiempo que sin ser necesariamente rápido, tampoco se tire demasiado tiempo.

Lo que quiero es calcular al principio y luego no tener que hacer más operaciones (como mucho regenerarlas de vez en cuando), simplemente blendear la textura de la sombra generada sobre el plano para que quede más o menos así.

size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

r2d2rigo

Lo quieres en tiempo de ejecucion? Porque si no lo mas facil seria recurrir a la radiosidad precompilada :P

marcode

Bueno, creo que ya lo conseguí.

Parece que lo mejor es tomar y fusionar la proyección de decenas de sombras de volumen con el origen circundando al punto de luz.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

marcode

Cita de: "r2d2rigo"Lo quieres en tiempo de ejecucion? Porque si no lo mas facil seria recurrir a la radiosidad precompilada :P

Vaya casualidad, en el mismo minuto  :o

Lo quiero en tiempo de ejecución pero sin tener que actualizar en cada frame.

¿De qué va la radiosidad precompilada? supongo que tendra en cuenta el entorno, pero de momento lo que quería era crear mapas individuales al principio para cada objeto y punto de luz para luego "pegarlos" en el suelo, y con lo antes mencionado parece que obtengo lo que deseo.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

tamat

Pero en la radiosidad precompilada la iluminacion se hace por vertice si no recuerdo mal, lo que te obliga a subdividir mucho la mesh.

Estaba pensando como lo haría yo:

Crearía una textura que estuviera desplegada sobre toda la mesh de la escena y la pintaría con la componente x,y,z de cada pixel en coordenadas de mundo.

Luego crearía un lightmap usando los shadowmaps de las luces, y ya está, y si las luces se mueven pues actualizo lightmap, claro que como haya elementos moviles en la escena estos no tendran sombra, ademas de que la textura que dice las coordenadas de cada pixel necesitaría 2 bytes por componente como poco.
Por un stratos menos tenso

Prompt

Yo optaría por PRT (Precomputed Radiance Transfer) lighting. Siempre y cuando nunca muevas los objetos te permite mover la luz todo lo que quieras. Estoy seguro que es lo que buscas.

marcode

Estoy haciéndolo como dije, es bastante rápido, 40 muestras de shadow volumes fusionadas, sobre un fondo negro voy pintando de tono gris (40/1) fuera de la sombra del volumen actual. Después para que no quede negra la parte más oscura le aplico un clareado mezclando una quad encima.

¿Que os parece?, con esto casi me doy por satisfecho, aunque con la modificación de las proyecciones del volumen se obtienen diversas formas.

Esta obtenido de un cilindro a partir de una única luz pero tengo pensado que se puedan fusionar las que sean necesarias.

size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]






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.