Destello de luz

Started by Futu-block, October 01, 2011, 11:11:13 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

Quiero hacer un destello de luz que alumbre un poco la zona donde vá...


Es un ambiente oscuro, asi que podria oscurecerlo con un grafico igual que la pantalla en negro con alpha al 50% delante del grafico a oscurecer; pero quisiera que donde pasara el personaje se viera mas claro, asi que le voy a poner un grafico redondo y blanco...


¿como le quito ese alpha en esa zona?
habia tambien algo como blur o algo de eso que igual me podria servir ¿no?


kim-elet-o

Se me ocurre una idea, necesitaras para ello ademas de tu grafico oscurecedor, un grafico que tenga la forma de la zona a aclarar con alfa trasparente (si quieres darle aspecto mas realista añadele por el borde de la figura algun tipo de difuminado en el canal alfa), y un mapa para mezclar los dos mapas, primero pegas el grafico oscurecedor en el mapa de mezclado, y luego el mapa de zona de aclarado, en la posicion donde en la pantalla vayas a aclarar, prueba esto haber si te sirve.


|/
|\im-elet-o el yayo programador.

Futu-block

wo wo wo, mas lento porfa que soy torpe de entendimiento; ¿que es un mapa de mezclado???

kim-elet-o

#3
Bueno el mapa de mezclado es un mapa vulgar y corriente creado con New_Map, le pongo nombre de mapa de mezclado para poder referirme a el, y porque en el vamos a mezclar dos imagenes.
|/
|\im-elet-o el yayo programador.

Futu-block

que guay, cuentame mas que me interesa...

aunque ya he encontrado la manera; hago una imagen el doble de ancho x doble largo de la pantalla, en negro 90% (que despues sale transparente :D) y en el centro le pongo un circulo con degradado al color deseado; Esa imagen la centro en el personaje principal y que el resto lo oscurezca con un alpha determinado...

gracias de todas formas kim-elet-o

SplinterGU

tambien puedes hacer un map_block_copy de la porcion que quieres mostrar, y luego ponerle encima una mascara con los bordes redondeados de lo que quieres ocultar, con esto tienes mucho menos informacion que procesar.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

kim-elet-o

De nada, encantado de servir.


|/
|\im-elet-o el yayo programador.

Outlaw

Podrian explicarlo paso por paso que la verdad me parece muy interesante y no entiendo todavia del todo como hacerlo...
"Life is cheap when the bounty is high"

Drumpi

Bueno no sé si funcionaría, pero sabiendo que hay un mapa negro con 50% de transparencia ¿si le ponemos encima un gráfico gris (128,128,128) y usamos el blit aditivo no debería verse la imagen a su color real?

Esto mejor que lo explique Momia, que es el que más ha trabajdo con flags aditivos/sustractivos.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Outlaw

Drumpi, pero esas dos imagenes no deberian ser a 16 bits de color?
"Life is cheap when the bounty is high"

Futu-block

si si si, pero aqui no explica naide, ni siquiera un enlace al wiki...



(wiki te odio)

SplinterGU

Quote from: Outlaw on October 05, 2011, 09:26:53 PM
Drumpi, pero esas dos imagenes no deberian ser a 16 bits de color?

16 o 32

Quote from: Futublock on October 06, 2011, 08:20:09 AM
(wiki te odio)

jajaja!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Los flags aditivos se encuentran... en la variable local FLAGS. Su función: sumar a cada componente de los gráficos que están por detrás el valor de cada componente del pixel del gráfico que tiene el flag aditivo activado. Ejemplos... pues sólo recuerdo cierto Bola de Dragón que abandonó Momia hace ya muuuucho tiempo... o aquella demo que hice en Fenix para GP2X, que llamé Space_invaders_H2H o algo así (que tengo que portar a Bennu, a ver si así funciona bien el tema de las alphas y va mejor de rendimiento, que fue el primer juego al que le hice gráficos 3D pre-render).

Hace muuuucho tiempo, me dijeron un truco para hacer el clásico foco circular, en el que se veía la imagen de fondo a través del interior de un círculo, mientras el resto se veía negro: si el círculo tenía 50 pixels de diámetro, se creaba una imagen de 50x50, con un círculo transparente y el resto negro opaco. La imagen oculta se ponía en la región 1 y esta se definía con un tamaño de 50x50, de forma que sólo se vería esa porción de la imagen. Ya sólo queda poner el foco sobre la región y mover ambos a la vez.
Se podría hacer algo similar usando dos veces la imagen de fondo, una de ellas oscurecida, y encima, la que no está oscurecida dentro de la región.

No sé si me he explicado con claridad.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block