Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: Robin28 en Enero 16, 2011, 10:04:32 PM

Título: Blur (efecto borroso) a toda la pantalla
Publicado por: Robin28 en Enero 16, 2011, 10:04:32 PM
Creador: Yo (Robin28)
Descripcion: Hace que la pantalla se vea borrosa y que los movimientos dejen una especie de rastro (motion blur)
Version de GM:  :GM8: PRO o cualquiera que tenga surfaces
Notas:

init_blur(alpha) (alpha va de 0 a 1, recomendado entre 0,05 y 0,25)
[gml]globalvar blur_alpha,blur_activated,blur_surface;
blur_alpha=argument0;
blur_activated=1;
if view_enabled[0] blur_surface=surface_create(view_wview[0],view_hview[0]);
else blur_surface=surface_create(room_width,room_height);[/gml]

blur_step() (creo que es demasiado corto como para un script ??? )
[gml]if blur_activated surface_set_target(blur_surface);[/gml]

blur_draw() (debe ir al final del evento draw del objeto con menor depth)
[gml]if !blur_activated exit
surface_reset_target();
draw_surface_ext(blur_surface,-1,-1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,1,0,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,-1,1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,0,-1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,1,1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,-1,0,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,1,-1,1,1,0,c_white,blur_alpha);
draw_surface_ext(blur_surface,0,1,1,1,0,c_white,blur_alpha);[/gml]

blur_set(activado,alpha) (se puede hacer con las variables que mencione en notas)
[gml]blur_activated=argument0;
if argument1>0 blur_alpha=min(argument1,1);[/gml]

controles del ejemplo:
flechas para mover la pelota
teclas mas y menos para ajustar el alpha
tecla B para (des)activar el blur

PD: no es necesario dar creditos si se usa
Título: Re: Blur (efecto borroso) a toda la pantalla
Publicado por: Ciberman en Enero 18, 2011, 11:33:31 PM
conozco otra t?cnica en donde dibujas antes la pantalla sobre una segunda surface y la redibujas activando el texture_set_interpolation(linear); todo con un repeat

Título: Re: Blur (efecto borroso) a toda la pantalla
Publicado por: Masterkey en Enero 19, 2011, 12:18:09 AM
Es un buen script, pero la verdad hay muchos como este, hace poco necesitaba uno, pero ya no :P
Título: Re: Blur (efecto borroso) a toda la pantalla
Publicado por: Robin28 en Enero 19, 2011, 05:46:29 PM
Cita de: Ciberman en Enero 18, 2011, 11:33:31 PM
conozco otra t?cnica en donde dibujas antes la pantalla sobre una segunda surface y la redibujas activando el texture_set_interpolation(linear); todo con un repeat


?pero no se supone que el texture_set_interpolation() no era lo mismo que activar 'interpolate colors between pixels' en la config. global?  ???
?no entiendo como aplicarlo 'todo con un repeat', podrias subir un ejemplo? quiza podria usarlo para optimizar mi tecnica
Título: Re: Blur (efecto borroso) a toda la pantalla
Publicado por: Ciberman en Enero 19, 2011, 07:12:00 PM
adjunto, lo encontr? en la gmc
osea, re dibujas la pantalla tantas veces, y en cada vez se le aplica un texture set interpolation