Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Helius en 18 de Febrero de 2005, 04:06:40 PM

Título: Destellos De Sol En Battlefront
Publicado por: Helius en 18 de Febrero de 2005, 04:06:40 PM
 ¿Alguien ha jugado a Star Wars Battlefront?

¿Cómo harán esos destellos de sol que se aprecian entre las ramas de los árboles cuando miras hacia el sol?
Son totalmente dinámicos y estan genial  (genial)
Voy a ver si consigo una captura pero se ven mejor en movimiento.

Saludos.
Título: Destellos De Sol En Battlefront
Publicado por: CoLSoN2 en 18 de Febrero de 2005, 05:03:22 PM
 ¿Es como el del Halo? Lo vi en la versión de PC y me gustó el efecto, aunque no se si el que tú dices es una versión mejorada. Hay árboles típicos cuyas hojas son varios planos cruzados, pero luego el sol hace un efecto chulo al filtrarse entre las hojas, ¿no?
Título: Destellos De Sol En Battlefront
Publicado por: BeRSeRKeR en 18 de Febrero de 2005, 05:18:47 PM
 ¿Hay algún sitio donde ver el efecto?.

Saludos.
Título: Destellos De Sol En Battlefront
Publicado por: Helius en 18 de Febrero de 2005, 06:12:02 PM
 5 capturas pero no le hacen justicia, mucho mejor en movimiento:

http://www.geardome.com/files/scr_0000.jpg
http://www.geardome.com/files/scr_0001.jpg
http://www.geardome.com/files/scr_0002.jpg
http://www.geardome.com/files/scr_0003.jpg
http://www.geardome.com/files/scr_0004.jpg

Lo mejor es dejar la cámara quieta y ver como el viento que ondula las ramas hace cambiar los destellos, es genial  (uoh)

Saludos.
Título: Destellos De Sol En Battlefront
Publicado por: egf en 18 de Febrero de 2005, 06:22:23 PM
 sin poner la mano en el fuego y sabiendo como es en otros juegos
es un sprite generado con el photoshop puesto en la posicion del sol apuntando siempre a la camara.
Título: Destellos De Sol En Battlefront
Publicado por: Sacrifai en 18 de Febrero de 2005, 06:23:03 PM
 Um, yo creo que es un raytracer sencillo.
Título: Destellos De Sol En Battlefront
Publicado por: Pogacha en 18 de Febrero de 2005, 06:23:04 PM
 "Radial glow"
He visto tuts en ogl.
Saludos
Título: Destellos De Sol En Battlefront
Publicado por: Helius en 18 de Febrero de 2005, 06:28:28 PM
Cita de: "egf"sin poner la mano en el fuego y sabiendo como es en otros juegos
es un sprite generado con el photoshop puesto en la posicion del sol apuntando siempre a la camara.
Nop, es totalmente dinámico, si bien parece que utiliza una textura como base pero en la 0002 se ve claramente cómo salen 2 rayos por la parte de abajo que coinciden con 2 agujeros entre la vegetación.

Sacrifai: ¿Un raytracer?, buffffff lo dudo, parece un efecto per pixel.

Pogacha puede tener razón, ¿puedes darnos algún enlace?

Saludos.
Título: Destellos De Sol En Battlefront
Publicado por: Pogacha en 18 de Febrero de 2005, 06:31:02 PM
 No encontre el link, pero la idea es dibujar el escenario con alfa unicamente en lo que brilla, luego tomas el screen como textura y sumas al screen  color_de_brillo * screen(desp).alpha muchas veces con un escalamiento progresivo con centro en el sol (en este caso). Con los pixel shaders puedes hacerlo en una sola pasada.
Saludos
Título: Destellos De Sol En Battlefront
Publicado por: Helius en 18 de Febrero de 2005, 06:36:26 PM
 Me gustaría saber si este efecto les sale a los que juegan al Battlefront sin pixel shaders. Muy posiblemente no, pero por curiosidad :huh:

Si bien lo que comentas Pogacha parece lo más plausible.

Este juego me ha gustado mucho y para las partys de la uni esta genial  (ole)

Saludos.
Título: Destellos De Sol En Battlefront
Publicado por: Pogacha en 18 de Febrero de 2005, 06:38:01 PM
 Viendo mas detalladamente estas imagenes veo que tambien modulan por una textura tipo flare... o sea no por un color de brillo solamente.
Título: Destellos De Sol En Battlefront
Publicado por: BeRSeRKeR en 18 de Febrero de 2005, 06:42:44 PM
 También cabe la posibilidad de que el "flare" sea una serie de triángulos en abanico (y como dice Pogacha, modulado por una textura típica de "flare") y después al pintar cada hoja del abanico, utiliza las occlusion queries y dependiendo de la cantidad de pixels visibles la intensidad de cada hoja es mayor o menor.

Si puedes ponlo en wireframe. Si el flare está formado por polígonos debería ser algo como lo que digo si no puede ser lo que dice Pogacha.

Saludos.
Título: Destellos De Sol En Battlefront
Publicado por: BeRSeRKeR en 18 de Febrero de 2005, 06:45:12 PM
 Por cierto,  aquí tienes un ejemplo de radial blur.
Título: Destellos De Sol En Battlefront
Publicado por: Pogacha en 18 de Febrero de 2005, 07:02:11 PM
 Ese link es el que habia visto ! , pero no lo encontraba   (nooo)
Me parece que es así como lo hacen ... 1024x768 integrales es insano -> Screen.RGB( p ) = Integral [   Screen.Alpha (  (p - centro) * t + centro) (T-t) ]  [con t=0 a T]  * TexturaFlare(p-Centro + (0.5,0.5)) ... esto seria lo que harian con un pixel shader y muchas muestras ... lo mas probable es que solo sean muchas pasadas moduladas con una textura.

for( t=0; t< 0.1; t+=0.01)
 for(p; p<Screen; p++)
  Screen.RGB (p) + = Screen.Alpha( (p-Centro ) *t ) * TexturaFlare(p - Centro + (0.5,0.5));


Saludos
Título: Destellos De Sol En Battlefront
Publicado por: Ithaqua en 18 de Febrero de 2005, 07:22:28 PM
 Esos efectos suelen hacerse pintando lo "brillante" y después por encima y en negro cualquier elemento que pueda taparlo. Al resultado se le aplica un radial blur y luego se coloca con aditivo en la pantalla del render final. Queda muy resultón porque los elementos que pueden tapar al origen del brillo modifican los rayos según pasan por delante (lo que lo hace dinámico, como indica Helius).
Título: Destellos De Sol En Battlefront
Publicado por: Pogacha en 18 de Febrero de 2005, 10:04:18 PM
 Debo tener el cerebro atrofiado, recien ahora caigo que era radial blur a diferencia del "radial Glow"??? que propuse(nooo).  Se me traspapelaron las palabras y cai en decadencia luego ...
Si, si! ... eso es radial blur!
Saludos
Título: Destellos De Sol En Battlefront
Publicado por: CoLSoN2 en 18 de Febrero de 2005, 11:30:03 PM
Cita de: "Helius"Me gustaría saber si este efecto les sale a los que juegan al Battlefront sin pixel shaders. Muy posiblemente no, pero por curiosidad :huh:
A mi en el Halo me salía y tengo una GF4Ti, y no vi demasiado pixel shader por ahí (más bien ninguno), así que no se si se hará con PS.
Título: Destellos De Sol En Battlefront
Publicado por: Ithaqua en 19 de Febrero de 2005, 02:45:59 AM
Cita de: "Helius"Me gustaría saber si este efecto les sale a los que juegan al Battlefront sin pixel shaders. Muy posiblemente no, pero por curiosidad :huh:
Esos efectos se pueden hacer perfectamente sin pixel shaders. Lo único que el hecho de tener pixel shaders hace que el aplicar filtros sea más cómodo, pero hay bastantes ejemplos que muestran lo fácil que es también hacerlo sin ellos.
Título: Destellos De Sol En Battlefront
Publicado por: Ithaqua en 19 de Febrero de 2005, 02:49:20 AM
 
Cita de: "Helius"Me gustaría saber si este efecto les sale a los que juegan al Battlefront sin pixel shaders. Muy posiblemente no, pero por curiosidad :huh:
Esos efectos se pueden hacer perfectamente sin pixel shaders. Lo único que el hecho de tener pixel shaders hace que el aplicar filtros sea más cómodo, pero hay bastantes ejemplos que muestran lo fácil que es también hacerlo sin ellos.
Título: Destellos De Sol En Battlefront
Publicado por: Pogacha en 19 de Febrero de 2005, 01:27:36 PM
 
CitarEscrito el 18/02/05, 22:45
--------------------------------------------------------------------------------
QUOTE (Helius @ 18/02/05, 17:36 )
Me gustaría saber si este efecto les sale a los que juegan al Battlefront sin pixel shaders. Muy posiblemente no, pero por curiosidad   

Esos efectos se pueden hacer perfectamente sin pixel shaders. Lo único que el hecho de tener pixel shaders hace que el aplicar filtros sea más cómodo, pero hay bastantes ejemplos que muestran lo fácil que es también hacerlo sin ellos.
Puedes compartir dicha información?.
Se me ocurre como, pero no se ... tal vez me sorprenda.
Lo que me intriga es el tema de resolver integrales y hacer filtros multipunto.
Saludos
Título: Destellos De Sol En Battlefront
Publicado por: Ithaqua en 19 de Febrero de 2005, 02:31:52 PM
Serían 2 pasos principales

1) Obtener el brillo
2) aplicarle radial blur
Luego se renderiza la escena de forma normal y se coloca el resultado de 2) por encima con aditivo.

Para 1) se pueden utilizar muchos métodos, el que da la sensación que utilizan en el BF (me guío por el par de shots que he visto, aunque me gustaría verlo en movimiento) es simplemente colocar un pequeño sprite blanco con rayitos. Luego se renderiza por encima todos los objetos en negro con lo que el resultado sería ese sprite con las zonas tapadas en negro.

El paso 2) supongo que es al que te refieres tú. Se le aplica un radial blur al resultado de 1) para conseguir que las partes que han quedado visibles (a través de las hojas por ejemplo) se extiendan y difuminen en forma de rayos.
Aplicar filtros generalmente se consigue sampleando la textura en diferentes sitios y operar con los valores para conseguir un valor resultado. Por ejemplo hacer la media de los 8 pixels vecinos. Eso sin pixel shaders se puede hacer simplemente renderizando a textura y aplicarlo con quads sobre la pantalla de una forma determinada y con los blendings adecuados.

En el caso concreto del radial blur puedes renderizar el frame que quieres blurrear a una textura, eso lo copias por encima de nuevo con blending pero con 1 pixel más de márgenes laterales (proyección ortho). Vuelves a copiar eso a una textura y repites la operación pero con 2 pixeles de márgen, luego vuelta a empezar y con 4, luego 8 así hasta el radio deseado (potencia de 2).  Es decir, vas haciendo radial blur y reutilizas el resultado anterior en el siguiente paso para aumentar el márgen. Si no vas acumulando los resultados sale bastante feo porque se notarían los escalones entre los diferentes radios.
Esta forma de hacer radial blur tiene la ventaja de que puedes hacer radios bastante grandes sin sacrificar mucha velocidad.

Hay una revista sobre la demoscene llamada Becanne en cuyo número anterior escribí un artículo precisamente acerca de la realización de filtros (box blur, radial blur...), si te interesa puedes bajarte el PDF aquí (el número 3, último artículo). Ahí se explica todo con bastante más detalle :)

El efecto ese lo hice de forma parecida en una demo. Shot:

(http://ithaqua.stravaganza.org/misc/radial.jpg)

Aunque el método para obtener los brillos es otro, el paso del radial blur es el mismo.
La demo te la puedes bajar aquí.

Y eso :)