(creo oportuno abrir otro tema pues este puede dar mucho de sí)neophox nos explica en qué consiste el Scattering
CitarSimula el comportamiento de la luz en sus distintas longitudes de onda segun la distancia que recorre. Suele dividirse en Mie-Scattering y Raleigh-Scattering en funcion del tamaño de las particulas que intervienen.
Para mas informacion hay papers de hoffman y preetham que lo explican, ademas creo recordar que hay alguna presentacion de ATI o nVidia de alguna GDC.
El efecto viene a ser que cuanto mas lejos mas disminuye el contraste. Ademas consigues unas puestas de sol impresionantes . No te asustes con los formuloides que encontraras en la documentacion, es algo sencillo de entender leyendolo despacio un par de veces.
...bueno creo que más un par de veces... pero merece la pena el esfuerzo por los resultados que se obtienen.
Hay un paper muy bueno con ilustraciones y con código, "Real Time Rendering Of Atmospheric Scattering Effects for Flight Simulators", por Ralf Stockholm Nielsen que también hace referencia a Hoffman y Preetham. También merece la pena que le echéis un vistazo.
(http://nis-lab.is.s.u-tokyo.ac.jp/~nis/img/sky_du.jpg)(http://nis-lab.is.s.u-tokyo.ac.jp/~nis/img/sky_sd.jpg)
Estas imágenes no son de Ralf, pero ilustran lo que es el scattering.
(No sé donde conseguí el paper en pdf de Ralf. Si lo queréis decirme dónde os lo puedo dejar, o también por e-mail privado)
El enlace de ATI es este (http://www.ati.com/developer/dx9/ATI-LightScattering.pdf)
Ejemplo de ATI para descargar (http://www.ati.com/developer/samples/Scattering.zip)
Mas links:
Preetham -> A Practical Analytic Model for Daylight (http://www.cs.utah.edu/~preetham/papers/p91-preetham.pdf)
Presentacion de Naty Hoffman-> Rendering Outdoor Light Scattering in Real Time (http://www.gamasutra.com/features/gdcarchive/2002/naty_hoffman.ppt)
La tesis de Ralp está aquí: http://www.imm.dtu.dk/pubdb/views/edoc_download.php/2554/pdf/imm2554.pdf. Son 134 páginas.
Si tenéis experiencia sobre scattering en grandes escenarios, contárnosla!. :)
Para los que no quieran compilar el ejemplo de ATI del enlace que habia puesto, aqui lo teneis compilado.
(http://www.gdmag.com/src/aug02.zip)
Merece la pena verlo, asi podeis ver en toda su extension el efecto del scattering y el cambio radical que supone para una escena con terreno.
Al final de la demo recordad cerrar la boca y parpadear ;D.
Es impresionante sí.
A ver si empiezo a darle pronto a los shaders y consigo esos efectos.
Cita de: "JL10"
La tesis de Ralp está aquí: http://www.imm.dtu.dk/pubdb/views/edoc_download.php/2554/pdf/imm2554.pdf. Son 134 páginas.
A este paso va a hacer falta 100 años para aprender a hacer un videojuego.
Cita de: "marcode"....A este paso va a hacer falta 100 años para aprender a hacer un videojuego.
Tienes toda la razón, y a medidas que vas descubriendo cosas que descubren otros, esos cien años se van estirando más. Pero yo ya me daría con un canto en los dientes si consigo hacer un décimo de lo que hay. (Para hacer algo grande hay que trabajar en equipo y cada uno especializarse en un tema en concreto. Si uno va solo hay que ponerse los objetivos más acotados).
De todas las maneras, ¡mucho ánimo marcode!. que otros estamos empezando, y tú ya tienes mucho recorrido. (Ya me gustaría saber hacer hoy lo que a tí te ha costado en mucho tiempo). :wink:
Cita de: "marcode"A este paso va a hacer falta 100 años para aprender a hacer un videojuego.
Bueno, te van a hacer falta 100 años para hacer un motor gráfico de exteriores. Para hacer un videojuego ( e incluso un muy buen videojuego ) necesitaras mucho menos tiempo... siempre que no quieras implementar scattering claro :P
Bueno, para eso son los papers, para no tener que dedicar 100 años y directamente reutilizar lo que otros hicieron.
Yo por mi parte he hecho pruebas sobre scatering para mi render de planetas, pero todas son muy precarias, no merecen ser mencionadas, pero si hay algo que he comprobado es que el efecto de por si es facil de emular con formulas sencillas, siempre que no se busque realismo "fisico".
Basta tener un valor de distancia de pixel a camara y aplicar un efecto a lo fog pero teniendo en cuenta algun valor más como la altitud del pixel sobre el suelo. Y en lugar de aplicar simplemente un fundido lineal a un color aplicas algo más complejo y ya está.
Tan pronto como tenga algunos screenshots decentes intentaré reflotar este thread.