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:
- Son 3 scripts que se ponen en los eventos create, step y draw (respectivamente) del objeto con menor depth (usar un objeto especifico para controlar el blur)
- Puedes controlar que tan borroso se ve con el efecto cambiando la variable global blur_alpha (entre 0 y 1) o con el cuarto script
- FUNCIONA CON VIEWS!!!
- la variable global blur_activated controla si se usara el efecto o no
- Desactiva el color de fondo en la room...
- Consume menos recursos de lo que yo creia (me va perfecto a 60 fps)
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
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
Es un buen script, pero la verdad hay muchos como este, hace poco necesitaba uno, pero ya no :P
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