diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 9d1bc85ea..6630ec830 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -217,6 +217,7 @@ {"name":"blinker","order":2,"path":"folders/shader/generator/blinker.yy",}, {"name":"cell","order":3,"path":"folders/shader/generator/cell.yy",}, {"name":"grid","order":1,"path":"folders/shader/generator/grid.yy",}, + {"name":"noise","order":4,"path":"folders/shader/generator/noise.yy",}, {"name":"random_shape","order":5,"path":"folders/shader/generator/random_shape.yy",}, {"name":"reaction_diffusion","order":6,"path":"folders/shader/generator/reaction_diffusion.yy",}, {"name":"region","order":7,"path":"folders/shader/generator/region.yy",}, @@ -229,7 +230,6 @@ {"name":"Fracture","order":2,"path":"folders/shader/MK effects/Fracture.yy",}, {"name":"Subpixel","order":3,"path":"folders/shader/MK effects/Subpixel.yy",}, {"name":"Tile","order":1,"path":"folders/shader/MK effects/Tile.yy",}, - {"name":"noise","order":4,"path":"folders/shader/generator/noise.yy",}, {"name":"pixel_builder","order":13,"path":"folders/shader/pixel_builder.yy",}, {"name":"ray march","order":17,"path":"folders/shader/ray march.yy",}, {"name":"sprites","order":14,"path":"folders/shader/sprites.yy",}, @@ -699,7 +699,7 @@ {"name":"node_3d_transform","order":6,"path":"scripts/node_3d_transform/node_3d_transform.yy",}, {"name":"node_3d_uv_remap","order":5,"path":"scripts/node_3d_uv_remap/node_3d_uv_remap.yy",}, {"name":"node_3dsurf","order":4,"path":"scripts/node_3dsurf/node_3dsurf.yy",}, - {"name":"node_9slice","order":5,"path":"scripts/node_9slice/node_9slice.yy",}, + {"name":"node_9slice","order":6,"path":"scripts/node_9slice/node_9slice.yy",}, {"name":"node_action_object","order":1,"path":"scripts/node_action_object/node_action_object.yy",}, {"name":"node_active_canvas","order":2,"path":"scripts/node_active_canvas/node_active_canvas.yy",}, {"name":"node_alpha_cutoff","order":10,"path":"scripts/node_alpha_cutoff/node_alpha_cutoff.yy",}, @@ -750,20 +750,21 @@ {"name":"node_attributes","order":11,"path":"scripts/node_attributes/node_attributes.yy",}, {"name":"node_audio_loudness","order":1,"path":"scripts/node_audio_loudness/node_audio_loudness.yy",}, {"name":"node_base_convert","order":8,"path":"scripts/node_base_convert/node_base_convert.yy",}, - {"name":"node_bend","order":18,"path":"scripts/node_bend/node_bend.yy",}, + {"name":"node_bend","order":19,"path":"scripts/node_bend/node_bend.yy",}, {"name":"node_blend_edge","order":19,"path":"scripts/node_blend_edge/node_blend_edge.yy",}, {"name":"node_blend","order":1,"path":"scripts/node_blend/node_blend.yy",}, {"name":"node_blobify","order":1,"path":"scripts/node_blobify/node_blobify.yy",}, {"name":"node_bloom","order":2,"path":"scripts/node_bloom/node_bloom.yy",}, {"name":"node_blur_bokeh","order":3,"path":"scripts/node_blur_bokeh/node_blur_bokeh.yy",}, + {"name":"node_blur_box","order":5,"path":"scripts/node_blur_box/node_blur_box.yy",}, {"name":"node_blur_contrast","order":4,"path":"scripts/node_blur_contrast/node_blur_contrast.yy",}, - {"name":"node_blur_directional","order":5,"path":"scripts/node_blur_directional/node_blur_directional.yy",}, - {"name":"node_blur_path","order":13,"path":"scripts/node_blur_path/node_blur_path.yy",}, - {"name":"node_blur_radial","order":6,"path":"scripts/node_blur_radial/node_blur_radial.yy",}, - {"name":"node_blur_shape","order":7,"path":"scripts/node_blur_shape/node_blur_shape.yy",}, - {"name":"node_blur_simple","order":8,"path":"scripts/node_blur_simple/node_blur_simple.yy",}, - {"name":"node_blur_slope","order":9,"path":"scripts/node_blur_slope/node_blur_slope.yy",}, - {"name":"node_blur_zoom","order":10,"path":"scripts/node_blur_zoom/node_blur_zoom.yy",}, + {"name":"node_blur_directional","order":6,"path":"scripts/node_blur_directional/node_blur_directional.yy",}, + {"name":"node_blur_path","order":14,"path":"scripts/node_blur_path/node_blur_path.yy",}, + {"name":"node_blur_radial","order":7,"path":"scripts/node_blur_radial/node_blur_radial.yy",}, + {"name":"node_blur_shape","order":8,"path":"scripts/node_blur_shape/node_blur_shape.yy",}, + {"name":"node_blur_simple","order":9,"path":"scripts/node_blur_simple/node_blur_simple.yy",}, + {"name":"node_blur_slope","order":10,"path":"scripts/node_blur_slope/node_blur_slope.yy",}, + {"name":"node_blur_zoom","order":11,"path":"scripts/node_blur_zoom/node_blur_zoom.yy",}, {"name":"node_blur","order":2,"path":"scripts/node_blur/node_blur.yy",}, {"name":"node_boolean","order":17,"path":"scripts/node_boolean/node_boolean.yy",}, {"name":"node_box_pattern","order":11,"path":"scripts/node_box_pattern/node_box_pattern.yy",}, @@ -799,8 +800,8 @@ {"name":"node_convolution","order":4,"path":"scripts/node_convolution/node_convolution.yy",}, {"name":"node_corner","order":5,"path":"scripts/node_corner/node_corner.yy",}, {"name":"node_counter","order":2,"path":"scripts/node_counter/node_counter.yy",}, - {"name":"node_crop_content","order":14,"path":"scripts/node_crop_content/node_crop_content.yy",}, - {"name":"node_crop","order":7,"path":"scripts/node_crop/node_crop.yy",}, + {"name":"node_crop_content","order":15,"path":"scripts/node_crop_content/node_crop_content.yy",}, + {"name":"node_crop","order":8,"path":"scripts/node_crop/node_crop.yy",}, {"name":"node_cross_section","order":13,"path":"scripts/node_cross_section/node_cross_section.yy",}, {"name":"node_csv_file_read","order":6,"path":"scripts/node_csv_file_read/node_csv_file_read.yy",}, {"name":"node_csv_file_write","order":10,"path":"scripts/node_csv_file_write/node_csv_file_write.yy",}, @@ -843,7 +844,7 @@ {"name":"node_FLIP_update","order":10,"path":"scripts/node_FLIP_update/node_FLIP_update.yy",}, {"name":"node_FLIP_vortex","order":13,"path":"scripts/node_FLIP_vortex/node_FLIP_vortex.yy",}, {"name":"node_FLIP_wall","order":9,"path":"scripts/node_FLIP_wall/node_FLIP_wall.yy",}, - {"name":"node_flip","order":13,"path":"scripts/node_flip/node_flip.yy",}, + {"name":"node_flip","order":14,"path":"scripts/node_flip/node_flip.yy",}, {"name":"node_flood_fill","order":3,"path":"scripts/node_flood_fill/node_flood_fill.yy",}, {"name":"node_flow_noise","order":19,"path":"scripts/node_flow_noise/node_flow_noise.yy",}, {"name":"node_fn_constant","order":3,"path":"scripts/node_fn_constant/node_fn_constant.yy",}, @@ -855,7 +856,7 @@ {"name":"node_fold_noise","order":15,"path":"scripts/node_fold_noise/node_fold_noise.yy",}, {"name":"node_frame","order":3,"path":"scripts/node_frame/node_frame.yy",}, {"name":"node_functions","order":2,"path":"scripts/node_functions/node_functions.yy",}, - {"name":"node_FXAA","order":11,"path":"scripts/node_FXAA/node_FXAA.yy",}, + {"name":"node_FXAA","order":12,"path":"scripts/node_FXAA/node_FXAA.yy",}, {"name":"node_gabor_noise","order":12,"path":"scripts/node_gabor_noise/node_gabor_noise.yy",}, {"name":"node_gamma_map","order":15,"path":"scripts/node_gamma_map/node_gamma_map.yy",}, {"name":"node_global","order":3,"path":"scripts/node_global/node_global.yy",}, @@ -883,7 +884,7 @@ {"name":"node_group_thumbnail","order":3,"path":"scripts/node_group_thumbnail/node_group_thumbnail.yy",}, {"name":"node_guide","order":9,"path":"scripts/node_guide/node_guide.yy",}, {"name":"node_herringbone_tile","order":7,"path":"scripts/node_herringbone_tile/node_herringbone_tile.yy",}, - {"name":"node_high_pass","order":14,"path":"scripts/node_high_pass/node_high_pass.yy",}, + {"name":"node_high_pass","order":15,"path":"scripts/node_high_pass/node_high_pass.yy",}, {"name":"node_hlsl","order":13,"path":"scripts/node_hlsl/node_hlsl.yy",}, {"name":"node_honey_noise","order":21,"path":"scripts/node_honey_noise/node_honey_noise.yy",}, {"name":"node_hsv_channel","order":1,"path":"scripts/node_hsv_channel/node_hsv_channel.yy",}, @@ -937,6 +938,7 @@ {"name":"node_mesh_transform","order":2,"path":"scripts/node_mesh_transform/node_mesh_transform.yy",}, {"name":"node_mesh_warp","order":8,"path":"scripts/node_mesh_warp/node_mesh_warp.yy",}, {"name":"node_midi_in","order":14,"path":"scripts/node_midi_in/node_midi_in.yy",}, + {"name":"node_mirror_polar","order":4,"path":"scripts/node_mirror_polar/node_mirror_polar.yy",}, {"name":"node_mirror","order":3,"path":"scripts/node_mirror/node_mirror.yy",}, {"name":"node_mk_blinker","order":11,"path":"scripts/node_mk_blinker/node_mk_blinker.yy",}, {"name":"node_mk_brownian","order":9,"path":"scripts/node_mk_brownian/node_mk_brownian.yy",}, @@ -971,12 +973,12 @@ {"name":"node_normalize","order":17,"path":"scripts/node_normalize/node_normalize.yy",}, {"name":"node_note","order":17,"path":"scripts/node_note/node_note.yy",}, {"name":"node_number","order":1,"path":"scripts/node_number/node_number.yy",}, - {"name":"node_offset","order":17,"path":"scripts/node_offset/node_offset.yy",}, + {"name":"node_offset","order":18,"path":"scripts/node_offset/node_offset.yy",}, {"name":"node_onion_skin","order":12,"path":"scripts/node_onion_skin/node_onion_skin.yy",}, {"name":"node_outline","order":12,"path":"scripts/node_outline/node_outline.yy",}, {"name":"node_override_channel","order":2,"path":"scripts/node_override_channel/node_override_channel.yy",}, {"name":"node_pack_sprites","order":4,"path":"scripts/node_pack_sprites/node_pack_sprites.yy",}, - {"name":"node_padding","order":9,"path":"scripts/node_padding/node_padding.yy",}, + {"name":"node_padding","order":10,"path":"scripts/node_padding/node_padding.yy",}, {"name":"node_palette_extract","order":8,"path":"scripts/node_palette_extract/node_palette_extract.yy",}, {"name":"node_palette_replace","order":2,"path":"scripts/node_palette_replace/node_palette_replace.yy",}, {"name":"node_palette_shift","order":13,"path":"scripts/node_palette_shift/node_palette_shift.yy",}, @@ -1057,7 +1059,7 @@ {"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",}, {"name":"node_plot_linear","order":5,"path":"scripts/node_plot_linear/node_plot_linear.yy",}, {"name":"node_point_in_area","order":1,"path":"scripts/node_point_in_area/node_point_in_area.yy",}, - {"name":"node_polar","order":4,"path":"scripts/node_polar/node_polar.yy",}, + {"name":"node_polar","order":5,"path":"scripts/node_polar/node_polar.yy",}, {"name":"node_posterize","order":13,"path":"scripts/node_posterize/node_posterize.yy",}, {"name":"node_print","order":10,"path":"scripts/node_print/node_print.yy",}, {"name":"node_processor","order":6,"path":"scripts/node_processor/node_processor.yy",}, @@ -1094,8 +1096,8 @@ {"name":"node_rm_render","order":6,"path":"scripts/node_rm_render/node_rm_render.yy",}, {"name":"node_rm_terrain","order":2,"path":"scripts/node_rm_terrain/node_rm_terrain.yy",}, {"name":"node_sampler","order":3,"path":"scripts/node_sampler/node_sampler.yy",}, - {"name":"node_scale_algo","order":12,"path":"scripts/node_scale_algo/node_scale_algo.yy",}, - {"name":"node_scale","order":8,"path":"scripts/node_scale/node_scale.yy",}, + {"name":"node_scale_algo","order":13,"path":"scripts/node_scale_algo/node_scale_algo.yy",}, + {"name":"node_scale","order":9,"path":"scripts/node_scale/node_scale.yy",}, {"name":"node_scatter_points","order":7,"path":"scripts/node_scatter_points/node_scatter_points.yy",}, {"name":"node_scatter","order":10,"path":"scripts/node_scatter/node_scatter.yy",}, {"name":"node_segment_filter","order":25,"path":"scripts/node_segment_filter/node_segment_filter.yy",}, @@ -1108,10 +1110,10 @@ {"name":"node_shard_noise","order":13,"path":"scripts/node_shard_noise/node_shard_noise.yy",}, {"name":"node_shell","order":15,"path":"scripts/node_shell/node_shell.yy",}, {"name":"node_shuffle","order":28,"path":"scripts/node_shuffle/node_shuffle.yy",}, - {"name":"node_skew","order":11,"path":"scripts/node_skew/node_skew.yy",}, + {"name":"node_skew","order":12,"path":"scripts/node_skew/node_skew.yy",}, {"name":"node_sky","order":16,"path":"scripts/node_sky/node_sky.yy",}, {"name":"node_slideshow","order":28,"path":"scripts/node_slideshow/node_slideshow.yy",}, - {"name":"node_smear","order":12,"path":"scripts/node_smear/node_smear.yy",}, + {"name":"node_smear","order":13,"path":"scripts/node_smear/node_smear.yy",}, {"name":"node_smoke_add_collider","order":7,"path":"scripts/node_smoke_add_collider/node_smoke_add_collider.yy",}, {"name":"node_smoke_add","order":5,"path":"scripts/node_smoke_add/node_smoke_add.yy",}, {"name":"node_smoke_apply_velocity","order":6,"path":"scripts/node_smoke_apply_velocity/node_smoke_apply_velocity.yy",}, @@ -1166,7 +1168,7 @@ {"name":"node_text","order":9,"path":"scripts/node_text/node_text.yy",}, {"name":"node_texture_remap","order":2,"path":"scripts/node_texture_remap/node_texture_remap.yy",}, {"name":"node_threshold","order":9,"path":"scripts/node_threshold/node_threshold.yy",}, - {"name":"node_tile_random","order":16,"path":"scripts/node_tile_random/node_tile_random.yy",}, + {"name":"node_tile_random","order":17,"path":"scripts/node_tile_random/node_tile_random.yy",}, {"name":"node_tile","order":5,"path":"scripts/node_tile/node_tile.yy",}, {"name":"node_tiler_convert","order":8,"path":"scripts/node_tiler_convert/node_tiler_convert.yy",}, {"name":"node_tiler_export","order":5,"path":"scripts/node_tiler_export/node_tiler_export.yy",}, @@ -1266,8 +1268,8 @@ {"name":"node_wavelet_noise","order":14,"path":"scripts/node_wavelet_noise/node_wavelet_noise.yy",}, {"name":"node_websocket_sender","order":1,"path":"scripts/node_websocket_sender/node_websocket_sender.yy",}, {"name":"node_widget_test","order":16,"path":"scripts/node_widget_test/node_widget_test.yy",}, - {"name":"node_wrap_area","order":10,"path":"scripts/node_wrap_area/node_wrap_area.yy",}, - {"name":"node_wrap_perspective","order":15,"path":"scripts/node_wrap_perspective/node_wrap_perspective.yy",}, + {"name":"node_wrap_area","order":11,"path":"scripts/node_wrap_area/node_wrap_area.yy",}, + {"name":"node_wrap_perspective","order":16,"path":"scripts/node_wrap_perspective/node_wrap_perspective.yy",}, {"name":"node_xml_file_read","order":18,"path":"scripts/node_xml_file_read/node_xml_file_read.yy",}, {"name":"node_xml_file_write","order":19,"path":"scripts/node_xml_file_write/node_xml_file_write.yy",}, {"name":"node_zigzag","order":5,"path":"scripts/node_zigzag/node_zigzag.yy",}, @@ -1434,7 +1436,7 @@ {"name":"sh_alpha_hash","order":2,"path":"shaders/sh_alpha_hash/sh_alpha_hash.yy",}, {"name":"sh_atlas_scan","order":53,"path":"shaders/sh_atlas_scan/sh_atlas_scan.yy",}, {"name":"sh_atlas","order":29,"path":"shaders/sh_atlas/sh_atlas.yy",}, - {"name":"sh_bend_arc","order":13,"path":"shaders/sh_bend_arc/sh_bend_arc.yy",}, + {"name":"sh_bend_arc","order":14,"path":"shaders/sh_bend_arc/sh_bend_arc.yy",}, {"name":"sh_bevel_highp","order":3,"path":"shaders/sh_bevel_highp/sh_bevel_highp.yy",}, {"name":"sh_bevel","order":2,"path":"shaders/sh_bevel/sh_bevel.yy",}, {"name":"sh_BGR","order":2,"path":"shaders/sh_BGR/sh_BGR.yy",}, @@ -1475,6 +1477,7 @@ {"name":"sh_blur_alpha","order":2,"path":"shaders/sh_blur_alpha/sh_blur_alpha.yy",}, {"name":"sh_blur_bokeh","order":3,"path":"shaders/sh_blur_bokeh/sh_blur_bokeh.yy",}, {"name":"sh_blur_box_contrast","order":4,"path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",}, + {"name":"sh_blur_box","order":15,"path":"shaders/sh_blur_box/sh_blur_box.yy",}, {"name":"sh_blur_directional","order":5,"path":"shaders/sh_blur_directional/sh_blur_directional.yy",}, {"name":"sh_blur_final","order":6,"path":"shaders/sh_blur_final/sh_blur_final.yy",}, {"name":"sh_blur_gaussian","order":7,"path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",}, @@ -1555,8 +1558,8 @@ {"name":"sh_dialog_palette_selector","order":7,"path":"shaders/sh_dialog_palette_selector/sh_dialog_palette_selector.yy",}, {"name":"sh_diffuse_flow","order":1,"path":"shaders/sh_diffuse_flow/sh_diffuse_flow.yy",}, {"name":"sh_diffuse_post","order":2,"path":"shaders/sh_diffuse_post/sh_diffuse_post.yy",}, - {"name":"sh_dilate","order":4,"path":"shaders/sh_dilate/sh_dilate.yy",}, - {"name":"sh_displace","order":5,"path":"shaders/sh_displace/sh_displace.yy",}, + {"name":"sh_dilate","order":5,"path":"shaders/sh_dilate/sh_dilate.yy",}, + {"name":"sh_displace","order":6,"path":"shaders/sh_displace/sh_displace.yy",}, {"name":"sh_dither_screen","order":2,"path":"shaders/sh_dither_screen/sh_dither_screen.yy",}, {"name":"sh_dither","order":1,"path":"shaders/sh_dither/sh_dither.yy",}, {"name":"sh_downsample","order":1,"path":"shaders/sh_downsample/sh_downsample.yy",}, @@ -1599,7 +1602,7 @@ {"name":"sh_find_pixel","order":3,"path":"shaders/sh_find_pixel/sh_find_pixel.yy",}, {"name":"sh_FLIP_draw_droplet","order":2,"path":"shaders/sh_FLIP_draw_droplet/sh_FLIP_draw_droplet.yy",}, {"name":"sh_FLIP_render_threshold","order":1,"path":"shaders/sh_FLIP_render_threshold/sh_FLIP_render_threshold.yy",}, - {"name":"sh_flip","order":7,"path":"shaders/sh_flip/sh_flip.yy",}, + {"name":"sh_flip","order":8,"path":"shaders/sh_flip/sh_flip.yy",}, {"name":"sh_flood_fill_it","order":1,"path":"shaders/sh_flood_fill_it/sh_flood_fill_it.yy",}, {"name":"sh_flood_fill_replace","order":2,"path":"shaders/sh_flood_fill_replace/sh_flood_fill_replace.yy",}, {"name":"sh_freeform_fill_cleanup","order":2,"path":"shaders/sh_freeform_fill_cleanup/sh_freeform_fill_cleanup.yy",}, @@ -1621,7 +1624,7 @@ {"name":"sh_grid_pentagonal","order":7,"path":"shaders/sh_grid_pentagonal/sh_grid_pentagonal.yy",}, {"name":"sh_grid_tri","order":3,"path":"shaders/sh_grid_tri/sh_grid_tri.yy",}, {"name":"sh_herringbone_tile","order":5,"path":"shaders/sh_herringbone_tile/sh_herringbone_tile.yy",}, - {"name":"sh_high_pass","order":15,"path":"shaders/sh_high_pass/sh_high_pass.yy",}, + {"name":"sh_high_pass","order":16,"path":"shaders/sh_high_pass/sh_high_pass.yy",}, {"name":"sh_image_trace","order":49,"path":"shaders/sh_image_trace/sh_image_trace.yy",}, {"name":"sh_interlaced","order":58,"path":"shaders/sh_interlaced/sh_interlaced.yy",}, {"name":"sh_invert","order":17,"path":"shaders/sh_invert/sh_invert.yy",}, @@ -1644,7 +1647,8 @@ {"name":"sh_mask_invert","order":20,"path":"shaders/sh_mask_invert/sh_mask_invert.yy",}, {"name":"sh_mask_modify","order":2,"path":"shaders/sh_mask_modify/sh_mask_modify.yy",}, {"name":"sh_mesh_generation","order":4,"path":"shaders/sh_mesh_generation/sh_mesh_generation.yy",}, - {"name":"sh_mirror_mask","order":8,"path":"shaders/sh_mirror_mask/sh_mirror_mask.yy",}, + {"name":"sh_mirror_mask","order":9,"path":"shaders/sh_mirror_mask/sh_mirror_mask.yy",}, + {"name":"sh_mirror_polar","order":1,"path":"shaders/sh_mirror_polar/sh_mirror_polar.yy",}, {"name":"sh_mk_ballGrid","order":5,"path":"shaders/sh_mk_ballGrid/sh_mk_ballGrid.yy",}, {"name":"sh_mk_flag_shade","order":1,"path":"shaders/sh_mk_flag_shade/sh_mk_flag_shade.yy",}, {"name":"sh_mk_flipGrid","order":6,"path":"shaders/sh_mk_flipGrid/sh_mk_flipGrid.yy",}, @@ -1687,7 +1691,7 @@ {"name":"sh_normal_light_apply","order":5,"path":"shaders/sh_normal_light_apply/sh_normal_light_apply.yy",}, {"name":"sh_normal_light","order":1,"path":"shaders/sh_normal_light/sh_normal_light.yy",}, {"name":"sh_normalize","order":23,"path":"shaders/sh_normalize/sh_normalize.yy",}, - {"name":"sh_offset","order":12,"path":"shaders/sh_offset/sh_offset.yy",}, + {"name":"sh_offset","order":13,"path":"shaders/sh_offset/sh_offset.yy",}, {"name":"sh_outline_only","order":33,"path":"shaders/sh_outline_only/sh_outline_only.yy",}, {"name":"sh_outline","order":24,"path":"shaders/sh_outline/sh_outline.yy",}, {"name":"sh_override_channel","order":21,"path":"shaders/sh_override_channel/sh_override_channel.yy",}, @@ -1716,7 +1720,7 @@ {"name":"sh_pixel_math","order":57,"path":"shaders/sh_pixel_math/sh_pixel_math.yy",}, {"name":"sh_pixel_sample","order":29,"path":"shaders/sh_pixel_sample/sh_pixel_sample.yy",}, {"name":"sh_pixel_sort","order":34,"path":"shaders/sh_pixel_sort/sh_pixel_sort.yy",}, - {"name":"sh_polar","order":1,"path":"shaders/sh_polar/sh_polar.yy",}, + {"name":"sh_polar","order":2,"path":"shaders/sh_polar/sh_polar.yy",}, {"name":"sh_posterize_palette","order":21,"path":"shaders/sh_posterize_palette/sh_posterize_palette.yy",}, {"name":"sh_posterize","order":25,"path":"shaders/sh_posterize/sh_posterize.yy",}, {"name":"sh_preview_histogram_outline","order":1,"path":"shaders/sh_preview_histogram_outline/sh_preview_histogram_outline.yy",}, @@ -1757,17 +1761,17 @@ {"name":"sh_seperate_shape_ite","order":2,"path":"shaders/sh_seperate_shape_ite/sh_seperate_shape_ite.yy",}, {"name":"sh_seperate_shape_sep","order":3,"path":"shaders/sh_seperate_shape_sep/sh_seperate_shape_sep.yy",}, {"name":"sh_shadow_cast_light_sep","order":1,"path":"shaders/sh_shadow_cast_light_sep/sh_shadow_cast_light_sep.yy",}, - {"name":"sh_shape_map_circle","order":14,"path":"shaders/sh_shape_map_circle/sh_shape_map_circle.yy",}, - {"name":"sh_shape_map_polygon","order":15,"path":"shaders/sh_shape_map_polygon/sh_shape_map_polygon.yy",}, + {"name":"sh_shape_map_circle","order":15,"path":"shaders/sh_shape_map_circle/sh_shape_map_circle.yy",}, + {"name":"sh_shape_map_polygon","order":16,"path":"shaders/sh_shape_map_polygon/sh_shape_map_polygon.yy",}, {"name":"sh_shape","order":11,"path":"shaders/sh_shape/sh_shape.yy",}, {"name":"sh_simplex","order":16,"path":"shaders/sh_simplex/sh_simplex.yy",}, - {"name":"sh_skew","order":6,"path":"shaders/sh_skew/sh_skew.yy",}, + {"name":"sh_skew","order":7,"path":"shaders/sh_skew/sh_skew.yy",}, {"name":"sh_sky_hosek","order":2,"path":"shaders/sh_sky_hosek/sh_sky_hosek.yy",}, {"name":"sh_sky_scattering","order":1,"path":"shaders/sh_sky_scattering/sh_sky_scattering.yy",}, {"name":"sh_slice_spritesheet_empty_scan","order":7,"path":"shaders/sh_slice_spritesheet_empty_scan/sh_slice_spritesheet_empty_scan.yy",}, {"name":"sh_smear","order":13,"path":"shaders/sh_smear/sh_smear.yy",}, {"name":"sh_solid","order":16,"path":"shaders/sh_solid/sh_solid.yy",}, - {"name":"sh_spherize","order":11,"path":"shaders/sh_spherize/sh_spherize.yy",}, + {"name":"sh_spherize","order":12,"path":"shaders/sh_spherize/sh_spherize.yy",}, {"name":"sh_stripe","order":12,"path":"shaders/sh_stripe/sh_stripe.yy",}, {"name":"sh_surface_replace_fast_find","order":2,"path":"shaders/sh_surface_replace_fast_find/sh_surface_replace_fast_find.yy",}, {"name":"sh_surface_replace_fast_replace","order":3,"path":"shaders/sh_surface_replace_fast_replace/sh_surface_replace_fast_replace.yy",}, @@ -1783,11 +1787,11 @@ {"name":"sh_tiler_autoterrain_mask","order":7,"path":"shaders/sh_tiler_autoterrain_mask/sh_tiler_autoterrain_mask.yy",}, {"name":"sh_tiler_convert_mask","order":12,"path":"shaders/sh_tiler_convert_mask/sh_tiler_convert_mask.yy",}, {"name":"sh_tiler_convert","order":11,"path":"shaders/sh_tiler_convert/sh_tiler_convert.yy",}, - {"name":"sh_time_remap","order":2,"path":"shaders/sh_time_remap/sh_time_remap.yy",}, + {"name":"sh_time_remap","order":3,"path":"shaders/sh_time_remap/sh_time_remap.yy",}, {"name":"sh_trail_filler_pass1","order":41,"path":"shaders/sh_trail_filler_pass1/sh_trail_filler_pass1.yy",}, {"name":"sh_trail_filler_pass2","order":43,"path":"shaders/sh_trail_filler_pass2/sh_trail_filler_pass2.yy",}, {"name":"sh_trail_filler","order":42,"path":"shaders/sh_trail_filler/sh_trail_filler.yy",}, - {"name":"sh_twirl","order":3,"path":"shaders/sh_twirl/sh_twirl.yy",}, + {"name":"sh_twirl","order":4,"path":"shaders/sh_twirl/sh_twirl.yy",}, {"name":"sh_ui_shape_circle","order":4,"path":"shaders/sh_ui_shape_circle/sh_ui_shape_circle.yy",}, {"name":"sh_ui_slider","order":1,"path":"shaders/sh_ui_slider/sh_ui_slider.yy",}, {"name":"sh_vertex_depth_pass","order":2,"path":"shaders/sh_vertex_depth_pass/sh_vertex_depth_pass.yy",}, @@ -1796,8 +1800,8 @@ {"name":"sh_vertex_pt","order":5,"path":"shaders/sh_vertex_pt/sh_vertex_pt.yy",}, {"name":"sh_vignette","order":48,"path":"shaders/sh_vignette/sh_vignette.yy",}, {"name":"sh_voronoi_extra","order":17,"path":"shaders/sh_voronoi_extra/sh_voronoi_extra.yy",}, - {"name":"sh_warp_4points_pers","order":10,"path":"shaders/sh_warp_4points_pers/sh_warp_4points_pers.yy",}, - {"name":"sh_warp_4points","order":9,"path":"shaders/sh_warp_4points/sh_warp_4points.yy",}, + {"name":"sh_warp_4points_pers","order":11,"path":"shaders/sh_warp_4points_pers/sh_warp_4points_pers.yy",}, + {"name":"sh_warp_4points","order":10,"path":"shaders/sh_warp_4points/sh_warp_4points.yy",}, {"name":"sh_water_caustic","order":22,"path":"shaders/sh_water_caustic/sh_water_caustic.yy",}, {"name":"sh_widget_rotator_range","order":5,"path":"shaders/sh_widget_rotator_range/sh_widget_rotator_range.yy",}, {"name":"sh_widget_rotator","order":4,"path":"shaders/sh_widget_rotator/sh_widget_rotator.yy",}, @@ -2189,6 +2193,7 @@ {"name":"s_node_blobify","order":7,"path":"sprites/s_node_blobify/s_node_blobify.yy",}, {"name":"s_node_bloom","order":8,"path":"sprites/s_node_bloom/s_node_bloom.yy",}, {"name":"s_node_blur_bokeh","order":6,"path":"sprites/s_node_blur_bokeh/s_node_blur_bokeh.yy",}, + {"name":"s_node_blur_box","order":11,"path":"sprites/s_node_blur_box/s_node_blur_box.yy",}, {"name":"s_node_blur_contrast","order":2,"path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",}, {"name":"s_node_blur_directional","order":3,"path":"sprites/s_node_blur_directional/s_node_blur_directional.yy",}, {"name":"s_node_blur_path","order":9,"path":"sprites/s_node_blur_path/s_node_blur_path.yy",}, @@ -2379,6 +2384,7 @@ {"name":"s_node_mesh_type","order":14,"path":"sprites/s_node_mesh_type/s_node_mesh_type.yy",}, {"name":"s_node_mesh_warp","order":10,"path":"sprites/s_node_mesh_warp/s_node_mesh_warp.yy",}, {"name":"s_node_midi_in","order":24,"path":"sprites/s_node_midi_in/s_node_midi_in.yy",}, + {"name":"s_node_mirror_polar","order":25,"path":"sprites/s_node_mirror_polar/s_node_mirror_polar.yy",}, {"name":"s_node_mirror","order":3,"path":"sprites/s_node_mirror/s_node_mirror.yy",}, {"name":"s_node_mk_blinker","order":10,"path":"sprites/s_node_mk_blinker/s_node_mk_blinker.yy",}, {"name":"s_node_mk_brownian","order":8,"path":"sprites/s_node_mk_brownian/s_node_mk_brownian.yy",}, @@ -2402,6 +2408,7 @@ {"name":"s_node_name_type","order":137,"path":"sprites/s_node_name_type/s_node_name_type.yy",}, {"name":"s_node_new_badge","order":21,"path":"sprites/s_node_new_badge/s_node_new_badge.yy",}, {"name":"s_node_noise_aniso","order":9,"path":"sprites/s_node_noise_aniso/s_node_noise_aniso.yy",}, + {"name":"s_node_noise_blue","order":59,"path":"sprites/s_node_noise_blue/s_node_noise_blue.yy",}, {"name":"s_node_noise_bubble","order":45,"path":"sprites/s_node_noise_bubble/s_node_noise_bubble.yy",}, {"name":"s_node_noise_cristal","order":53,"path":"sprites/s_node_noise_cristal/s_node_noise_cristal.yy",}, {"name":"s_node_noise_fbm","order":26,"path":"sprites/s_node_noise_fbm/s_node_noise_fbm.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index a63114fcb..53fc7721c 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -300,6 +300,7 @@ {"$GMFolder":"","%Name":"cell","folderPath":"folders/shader/generator/cell.yy","name":"cell","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"grid","folderPath":"folders/shader/generator/grid.yy","name":"grid","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"interpret","folderPath":"folders/shader/generator/interpret.yy","name":"interpret","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"noise","folderPath":"folders/shader/generator/noise.yy","name":"noise","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"random_shape","folderPath":"folders/shader/generator/random_shape.yy","name":"random_shape","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"reaction_diffusion","folderPath":"folders/shader/generator/reaction_diffusion.yy","name":"reaction_diffusion","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"region","folderPath":"folders/shader/generator/region.yy","name":"region","resourceType":"GMFolder","resourceVersion":"2.0",}, @@ -314,7 +315,6 @@ {"$GMFolder":"","%Name":"Fracture","folderPath":"folders/shader/MK effects/Fracture.yy","name":"Fracture","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"Subpixel","folderPath":"folders/shader/MK effects/Subpixel.yy","name":"Subpixel","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"Tile","folderPath":"folders/shader/MK effects/Tile.yy","name":"Tile","resourceType":"GMFolder","resourceVersion":"2.0",}, - {"$GMFolder":"","%Name":"noise","folderPath":"folders/shader/generator/noise.yy","name":"noise","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"pixel_builder","folderPath":"folders/shader/pixel_builder.yy","name":"pixel_builder","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"ray march","folderPath":"folders/shader/ray march.yy","name":"ray march","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"sprites","folderPath":"folders/shader/sprites.yy","name":"sprites","resourceType":"GMFolder","resourceVersion":"2.0",}, @@ -1268,6 +1268,7 @@ {"id":{"name":"node_blobify","path":"scripts/node_blobify/node_blobify.yy",},}, {"id":{"name":"node_bloom","path":"scripts/node_bloom/node_bloom.yy",},}, {"id":{"name":"node_blur_bokeh","path":"scripts/node_blur_bokeh/node_blur_bokeh.yy",},}, + {"id":{"name":"node_blur_box","path":"scripts/node_blur_box/node_blur_box.yy",},}, {"id":{"name":"node_blur_contrast","path":"scripts/node_blur_contrast/node_blur_contrast.yy",},}, {"id":{"name":"node_blur_directional","path":"scripts/node_blur_directional/node_blur_directional.yy",},}, {"id":{"name":"node_blur_path","path":"scripts/node_blur_path/node_blur_path.yy",},}, @@ -1472,6 +1473,7 @@ {"id":{"name":"node_mesh_transform","path":"scripts/node_mesh_transform/node_mesh_transform.yy",},}, {"id":{"name":"node_mesh_warp","path":"scripts/node_mesh_warp/node_mesh_warp.yy",},}, {"id":{"name":"node_midi_in","path":"scripts/node_midi_in/node_midi_in.yy",},}, + {"id":{"name":"node_mirror_polar","path":"scripts/node_mirror_polar/node_mirror_polar.yy",},}, {"id":{"name":"node_mirror","path":"scripts/node_mirror/node_mirror.yy",},}, {"id":{"name":"node_mk_blinker","path":"scripts/node_mk_blinker/node_mk_blinker.yy",},}, {"id":{"name":"node_mk_brownian","path":"scripts/node_mk_brownian/node_mk_brownian.yy",},}, @@ -2078,6 +2080,7 @@ {"id":{"name":"sh_blur_alpha","path":"shaders/sh_blur_alpha/sh_blur_alpha.yy",},}, {"id":{"name":"sh_blur_bokeh","path":"shaders/sh_blur_bokeh/sh_blur_bokeh.yy",},}, {"id":{"name":"sh_blur_box_contrast","path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",},}, + {"id":{"name":"sh_blur_box","path":"shaders/sh_blur_box/sh_blur_box.yy",},}, {"id":{"name":"sh_blur_directional","path":"shaders/sh_blur_directional/sh_blur_directional.yy",},}, {"id":{"name":"sh_blur_final","path":"shaders/sh_blur_final/sh_blur_final.yy",},}, {"id":{"name":"sh_blur_gaussian","path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",},}, @@ -2269,6 +2272,7 @@ {"id":{"name":"sh_mask","path":"shaders/sh_mask/sh_mask.yy",},}, {"id":{"name":"sh_mesh_generation","path":"shaders/sh_mesh_generation/sh_mesh_generation.yy",},}, {"id":{"name":"sh_mirror_mask","path":"shaders/sh_mirror_mask/sh_mirror_mask.yy",},}, + {"id":{"name":"sh_mirror_polar","path":"shaders/sh_mirror_polar/sh_mirror_polar.yy",},}, {"id":{"name":"sh_mirror","path":"shaders/sh_mirror/sh_mirror.yy",},}, {"id":{"name":"sh_mk_ballGrid","path":"shaders/sh_mk_ballGrid/sh_mk_ballGrid.yy",},}, {"id":{"name":"sh_mk_flag_mrt","path":"shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.yy",},}, @@ -2864,6 +2868,7 @@ {"id":{"name":"s_node_blobify","path":"sprites/s_node_blobify/s_node_blobify.yy",},}, {"id":{"name":"s_node_bloom","path":"sprites/s_node_bloom/s_node_bloom.yy",},}, {"id":{"name":"s_node_blur_bokeh","path":"sprites/s_node_blur_bokeh/s_node_blur_bokeh.yy",},}, + {"id":{"name":"s_node_blur_box","path":"sprites/s_node_blur_box/s_node_blur_box.yy",},}, {"id":{"name":"s_node_blur_contrast","path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",},}, {"id":{"name":"s_node_blur_directional","path":"sprites/s_node_blur_directional/s_node_blur_directional.yy",},}, {"id":{"name":"s_node_blur_path","path":"sprites/s_node_blur_path/s_node_blur_path.yy",},}, @@ -3067,6 +3072,7 @@ {"id":{"name":"s_node_mesh_type","path":"sprites/s_node_mesh_type/s_node_mesh_type.yy",},}, {"id":{"name":"s_node_mesh_warp","path":"sprites/s_node_mesh_warp/s_node_mesh_warp.yy",},}, {"id":{"name":"s_node_midi_in","path":"sprites/s_node_midi_in/s_node_midi_in.yy",},}, + {"id":{"name":"s_node_mirror_polar","path":"sprites/s_node_mirror_polar/s_node_mirror_polar.yy",},}, {"id":{"name":"s_node_mirror","path":"sprites/s_node_mirror/s_node_mirror.yy",},}, {"id":{"name":"s_node_mk_blinker","path":"sprites/s_node_mk_blinker/s_node_mk_blinker.yy",},}, {"id":{"name":"s_node_mk_brownian","path":"sprites/s_node_mk_brownian/s_node_mk_brownian.yy",},}, @@ -3091,6 +3097,7 @@ {"id":{"name":"s_node_name_type","path":"sprites/s_node_name_type/s_node_name_type.yy",},}, {"id":{"name":"s_node_new_badge","path":"sprites/s_node_new_badge/s_node_new_badge.yy",},}, {"id":{"name":"s_node_noise_aniso","path":"sprites/s_node_noise_aniso/s_node_noise_aniso.yy",},}, + {"id":{"name":"s_node_noise_blue","path":"sprites/s_node_noise_blue/s_node_noise_blue.yy",},}, {"id":{"name":"s_node_noise_bubble","path":"sprites/s_node_noise_bubble/s_node_noise_bubble.yy",},}, {"id":{"name":"s_node_noise_cristal","path":"sprites/s_node_noise_cristal/s_node_noise_cristal.yy",},}, {"id":{"name":"s_node_noise_fbm","path":"sprites/s_node_noise_fbm/s_node_noise_fbm.yy",},}, diff --git a/scripts/node_blur_box/node_blur_box.gml b/scripts/node_blur_box/node_blur_box.gml new file mode 100644 index 000000000..142bf858c --- /dev/null +++ b/scripts/node_blur_box/node_blur_box.gml @@ -0,0 +1,82 @@ +function Node_Blur_Box(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Box Blur"; + + newInput(0, nodeValue_Surface("Surface in", self)); + + newInput(1, nodeValue_Int("Size", self, 3)) + .setUnitRef(function(index) /*=>*/ {return getDimension(index)}); + + newInput(2, nodeValue_Surface("Mask", self)); + + newInput(3, nodeValue_Float("Mix", self, 1)) + .setDisplay(VALUE_DISPLAY.slider); + + newInput(4, nodeValue_Bool("Active", self, true)); + active_index = 4; + + newInput(5, nodeValue_Toggle("Channel", self, 0b1111, { data: array_create(4, THEME.inspector_channel) })); + + __init_mask_modifier(2); // inputs 6, 7, + + newInput(8, nodeValue_Bool("Separate Axis", self, false)); + + newInput(9, nodeValue_Vec2("2D Size", self, [ 3, 3 ])); + + input_display_list = [ 4, 5, + ["Surfaces", true], 0, 2, 3, 6, 7, + ["Blur", false], 8, 1, 9, + ] + + newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone)); + + temp_surface = [ surface_create(1, 1) ]; + + attribute_surface_depth(); + attribute_oversample(); + attribute_interpolation(); + + static step = function() { + __step_mask_modifier(); + } + + static processData = function(_outSurf, _data, _output_index, _array_index) { + var _surf = _data[0]; + var _mask = _data[2]; + var _mix = _data[3]; + + var _sepa = _data[8]; + var _siz2 = _data[9]; + var _size = _data[1]; + + inputs[1].setVisible(!_sepa); + inputs[9].setVisible( _sepa); + + var ww = surface_get_width_safe(_surf); + var hh = surface_get_height_safe(_surf); + temp_surface[0] = surface_verify(temp_surface[0], ww, hh, attrDepth()); + + surface_set_shader(temp_surface[0], sh_blur_box); + shader_set_interpolation(_data[0]); + shader_set_i("sampleMode", getAttribute("oversample")); + shader_set_2("dimension", [ ww, hh ]); + shader_set_f("size", max(0, round(_sepa? _siz2[0] : _size))); + shader_set_i("axis", 0); + + draw_surface_safe(_surf); + surface_reset_shader(); + + surface_set_shader(_outSurf, sh_blur_box); + shader_set_interpolation(_data[0]); + shader_set_f("size", max(0, round(_sepa? _siz2[1] : _size))); + shader_set_i("axis", 1); + + draw_surface_safe(temp_surface[0]); + surface_reset_shader(); + + __process_mask_modifier(_data); + _outSurf = mask_apply(_data[0], _outSurf, _mask, _mix); + _outSurf = channel_apply(_data[0], _outSurf, _data[5]); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_blur_box/node_blur_box.yy b/scripts/node_blur_box/node_blur_box.yy new file mode 100644 index 000000000..8c5c27ffb --- /dev/null +++ b/scripts/node_blur_box/node_blur_box.yy @@ -0,0 +1,14 @@ +{ + "$GMScript":"v1", + "%Name":"node_blur_box", + "isCompatibility":false, + "isDnD":false, + "name":"node_blur_box", + "parent":{ + "name":"blur", + "path":"folders/nodes/data/filter/blur.yy", + }, + "resourceType":"GMScript", + "resourceVersion":"2.0", + "tags":[], +} \ No newline at end of file diff --git a/scripts/node_blur_slope/node_blur_slope.gml b/scripts/node_blur_slope/node_blur_slope.gml index 7f26449a0..81fae976d 100644 --- a/scripts/node_blur_slope/node_blur_slope.gml +++ b/scripts/node_blur_slope/node_blur_slope.gml @@ -43,13 +43,13 @@ function Node_Blur_Slope(_x, _y, _group = noone) : Node_Processor(_x, _y, _group attribute_oversample(); attribute_interpolation(); - static step = function() { #region + static step = function() { __step_mask_modifier(); inputs[1].mappableStep(); - } #endregion + } - static processData = function(_outSurf, _data, _output_index, _array_index) { #region + static processData = function(_outSurf, _data, _output_index, _array_index) { surface_set_shader(_outSurf, sh_blur_slope); shader_set_interpolation(_data[0]); shader_set_f("dimension", surface_get_dimension(_data[0])); @@ -68,5 +68,5 @@ function Node_Blur_Slope(_x, _y, _group = noone) : Node_Processor(_x, _y, _group _outSurf = channel_apply(_data[0], _outSurf, _data[6]); return _outSurf; - } #endregion + } } \ No newline at end of file diff --git a/scripts/node_kuwahara/node_kuwahara.gml b/scripts/node_kuwahara/node_kuwahara.gml index dfaaa3002..5ec21a15e 100644 --- a/scripts/node_kuwahara/node_kuwahara.gml +++ b/scripts/node_kuwahara/node_kuwahara.gml @@ -40,7 +40,7 @@ function Node_Kuwahara(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) ["Effects", false], 9, 2, 10, 11, 12, 13, ]; - temp_surfaces = array_create(4); + temp_surface = array_create(4); attribute_surface_depth(); @@ -69,28 +69,28 @@ function Node_Kuwahara(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) break; case 1 : - for( var i = 0; i < 3; i++ ) temp_surfaces[i] = surface_verify(temp_surfaces[i], _dim[0], _dim[1]); + for( var i = 0; i < 3; i++ ) temp_surface[i] = surface_verify(temp_surface[i], _dim[0], _dim[1]); - surface_set_shader(temp_surfaces[0], sh_kuwahara_ani_pass1); + surface_set_shader(temp_surface[0], sh_kuwahara_ani_pass1); shader_set_2("dimension", _dim); draw_surface_safe(_surf); surface_reset_shader(); - surface_set_shader(temp_surfaces[1], sh_kuwahara_ani_pass2); + surface_set_shader(temp_surface[1], sh_kuwahara_ani_pass2); shader_set_2("dimension", _dim); - draw_surface_safe(temp_surfaces[0]); + draw_surface_safe(temp_surface[0]); surface_reset_shader(); - surface_set_shader(temp_surfaces[2], sh_kuwahara_ani_pass3); + surface_set_shader(temp_surface[2], sh_kuwahara_ani_pass3); shader_set_2("dimension", _dim); - draw_surface_safe(temp_surfaces[1]); + draw_surface_safe(temp_surface[1]); surface_reset_shader(); surface_set_shader(_outSurf, sh_kuwahara_ani_pass4); - shader_set_surface("tfm", temp_surfaces[2]); + shader_set_surface("tfm", temp_surface[2]); shader_set_2("dimension", _dim); shader_set_f("alpha", _data[10]); diff --git a/scripts/node_mirror/node_mirror.gml b/scripts/node_mirror/node_mirror.gml index d680c7323..d723e84c8 100644 --- a/scripts/node_mirror/node_mirror.gml +++ b/scripts/node_mirror/node_mirror.gml @@ -23,7 +23,7 @@ function Node_Mirror(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co attribute_surface_depth(); - static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region + static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { PROCESSOR_OVERLAY_CHECK var _pos = current_data[1]; @@ -44,9 +44,9 @@ function Node_Mirror(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co var hv = inputs[2].drawOverlay(hover, active, _posx, _posy, _s, _mx, _my, _snx, _sny); active &= !hv; _hov |= hv; return _hov; - } #endregion + } - static processData = function(_outSurf, _data, _output_index, _array_index) { #region + static processData = function(_outSurf, _data, _output_index, _array_index) { var _suf = _data[0]; var _pos = _data[1]; var _ang = _data[2]; @@ -62,5 +62,5 @@ function Node_Mirror(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co surface_reset_shader(); return _outSurf; - } #endregion + } } \ No newline at end of file diff --git a/scripts/node_mirror_polar/node_mirror_polar.gml b/scripts/node_mirror_polar/node_mirror_polar.gml new file mode 100644 index 000000000..22c903ec2 --- /dev/null +++ b/scripts/node_mirror_polar/node_mirror_polar.gml @@ -0,0 +1,72 @@ +function Node_Mirror_Polar(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "Polar Mirror"; + + newInput(0, nodeValue_Surface("Surface in", self)); + + newInput(1, nodeValue_Vec2("Position", self, [ 0.5, 0.5 ])) + .setUnitRef(function(index) { return getDimension(index); }, VALUE_UNIT.reference); + + newInput(2, nodeValue_Rotation("Angle", self, 0)); + + newInput(3, nodeValue_Bool("Active", self, true)); + active_index = 3; + + newInput(4, nodeValue_Float("Spokes", self, 4)); + + newInput(5, nodeValue_Bool("Reflective", self, false)); + + newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone)); + + input_display_list = [ 3, + ["Surfaces", false], 0, + ["Mirror", false], 1, 2, + ["Spokes", false], 4, 5, + ] + + attribute_surface_depth(); + + static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { + PROCESSOR_OVERLAY_CHECK + + var _pos = current_data[1]; + var _ang = current_data[2]; + var _posx = _pos[0] * _s + _x; + var _posy = _pos[1] * _s + _y; + + var dx0 = _posx + lengthdir_x(1000, _ang); + var dx1 = _posx + lengthdir_x(1000, _ang + 180); + var dy0 = _posy + lengthdir_y(1000, _ang); + var dy1 = _posy + lengthdir_y(1000, _ang + 180); + + draw_set_color(COLORS._main_accent); + draw_line(dx0, dy0, dx1, dy1); + + var _hov = false; + var hv = inputs[1].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny); active &= !hv; _hov |= hv; + var hv = inputs[2].drawOverlay(hover, active, _posx, _posy, _s, _mx, _my, _snx, _sny); active &= !hv; _hov |= hv; + + return _hov; + } + + static processData = function(_outSurf, _data, _output_index, _array_index) { + var _suf = _data[0]; + var _pos = _data[1]; + var _ang = _data[2]; + var _spk = _data[4]; + var _ref = _data[5]; + + var _dim = surface_get_dimension(_suf); + + surface_set_shader(_outSurf, sh_mirror_polar); + shader_set_f("dimension", _dim); + shader_set_2("position", _pos); + shader_set_f("angle", degtorad(_ang)); + shader_set_f("spokes", _spk); + shader_set_i("reflecc", _ref); + + draw_surface_safe(_suf); + surface_reset_shader(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_mirror_polar/node_mirror_polar.yy b/scripts/node_mirror_polar/node_mirror_polar.yy new file mode 100644 index 000000000..c7c8f839f --- /dev/null +++ b/scripts/node_mirror_polar/node_mirror_polar.yy @@ -0,0 +1,14 @@ +{ + "$GMScript":"v1", + "%Name":"node_mirror_polar", + "isCompatibility":false, + "isDnD":false, + "name":"node_mirror_polar", + "parent":{ + "name":"transform", + "path":"folders/nodes/data/transform.yy", + }, + "resourceType":"GMScript", + "resourceVersion":"2.0", + "tags":[], +} \ No newline at end of file diff --git a/scripts/node_noise_blue/node_noise_blue.gml b/scripts/node_noise_blue/node_noise_blue.gml index 7e5c1cece..d7717d9d0 100644 --- a/scripts/node_noise_blue/node_noise_blue.gml +++ b/scripts/node_noise_blue/node_noise_blue.gml @@ -5,56 +5,26 @@ function Node_Noise_Blue(_x, _y, _group = noone) : Node_Processor(_x, _y, _group newInput(1, nodeValueSeed(self)); - newInput(2, nodeValue_Enum_Button("Color mode", self, 0, [ "Greyscale", "RGB", "HSV" ])); - - newInput(3, nodeValue_Slider_Range("Color R range", self, [ 0, 1 ])); - - newInput(4, nodeValue_Slider_Range("Color G range", self, [ 0, 1 ])); - - newInput(5, nodeValue_Slider_Range("Color B range", self, [ 0, 1 ])); - input_display_list = [ ["Output", false], 0, - ["Noise", false], 1, - ["Color", false], 2, 3, 4, 5, + ["Noise", false], 1, ]; newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone)); attribute_surface_depth(); - static step = function() { - var _col = getInputData(2); - - inputs[3].setVisible(_col != 0); - inputs[4].setVisible(_col != 0); - inputs[5].setVisible(_col != 0); - - inputs[3].name = _col == 1? "Color R range" : "Color H range"; - inputs[4].name = _col == 1? "Color G range" : "Color S range"; - inputs[5].name = _col == 1? "Color B range" : "Color V range"; - } + temp_surface = [ noone, noone ]; static processData = function(_outSurf, _data, _output_index, _array_index) { var _dim = _data[0]; var _sed = _data[1]; - var _col = _data[2]; - var _clr = _data[3]; - var _clg = _data[4]; - var _clb = _data[5]; - _outSurf = surface_verify(_outSurf, _dim[0], _dim[1], attrDepth()); - surface_set_shader(_outSurf, sh_noise); - shader_set_f("seed", _sed); - - shader_set_i("colored", _col); - shader_set_2("colorRanR", _clr); - shader_set_2("colorRanG", _clg); - shader_set_2("colorRanB", _clb); - - draw_sprite_ext(s_fx_pixel, 0, 0, 0, _dim[0], _dim[1], 0, c_white, 1); + surface_set_shader(_outSurf, sh_noise_blue_interpret); + shader_set_f("seed", _sed); + draw_empty(); surface_reset_shader(); return _outSurf; diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 05ddf85e9..efb1e6251 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -35,8 +35,9 @@ function NodeObject(_name, _spr, _node, _create, _tooltip = "") constructor { } } - static setTags = function(_tags) { tags = _tags; return self; } - static setSpr = function(_spr) { spr = _spr; return self; } + static setTags = function(_tags) { tags = _tags; return self; } + static setSpr = function(_spr) { spr = _spr; return self; } + static setTooltip = function(_tool) { tooltip = _tool; return self; } static setVersion = function(version) { INLINE @@ -271,9 +272,11 @@ function nodeBuild(_name, _x, _y, _group = PANEL_GRAPH.getCurrentContext()) { return _bnode; } -function addNodeObject(_list, _name, _node = "", _fun = [], tooltip = "") { +function addNodeObject(_list, _name = "", _node = "", _fun = [], tooltip = "") { if(ds_map_exists(ALL_NODES, _node)) { var _n = ALL_NODES[? _node]; + if(tooltip != "") _n.setTooltip(tooltip); + ds_list_add(_list, _n); return _n; } @@ -281,6 +284,8 @@ function addNodeObject(_list, _name, _node = "", _fun = [], tooltip = "") { var _s = asset_get_index($"s_{string_lower(_node)}"); if(_s == -1) _s = 0; var _n = new NodeObject(_name, _s, _node, _fun, tooltip); + if(tooltip != "") _n.setTooltip(tooltip); + ALL_NODES[? _node] = _n; ds_list_add(_list, _n); @@ -406,8 +411,8 @@ function __initNodes() { var vfx = ds_list_create(); NODE_ADD_CAT("VFX", vfx, ["Node_VFX_Group", "Node_VFX_Group_Inline"], COLORS.node_blend_vfx); ds_list_add(vfx, "Groups"); - addNodeObject(vfx, "Input", "Node_Group_Input", [1, Node_Group_Input]).setSpr(s_node_vfx_input).hideRecent().hideGlobal(); - addNodeObject(vfx, "Output", "Node_Group_Output", [1, Node_Group_Output]).setSpr(s_node_vfx_output).hideRecent().hideGlobal(); + addNodeObject(vfx, "Input", "Node_Group_Input", [1, Node_Group_Input]).hideRecent().hideGlobal(); + addNodeObject(vfx, "Output", "Node_Group_Output", [1, Node_Group_Output]).hideRecent().hideGlobal(); addNodeObject(vfx, "Renderer", "Node_VFX_Renderer_Output", [1, Node_VFX_Renderer_Output]).setSpr(s_node_vfx_render_output).hideRecent().hideGlobal(); ds_list_add(vfx, "Main"); @@ -600,6 +605,8 @@ function __initNodes() { addNodeObject(transform, "Scale Algorithm", "Node_Scale_Algo", [0, Node_create_Scale_Algo], "Scale image using pixel-art based scaling algorithms.").setTags(["scale2x", "scale3x", "cleanedge"]); addNodeObject(transform, "Flip", "Node_Flip", [1, Node_Flip], "Flip image horizontally or vertically.").setTags(["mirror"]); addNodeObject(transform, "Offset", "Node_Offset", [1, Node_Offset], "Shift image with tiling.").setTags(["shift"]); + addNodeObject(transform, "Mirror", "Node_Mirror", [1, Node_Mirror], "Reflect the image along a reflection line.").setVersion(1070); + addNodeObject(transform, "Polar Mirror", "Node_Mirror_Polar", [1, Node_Mirror_Polar], "Reflect the image along multiple reflection lines.").setTags(["kaleidoscope"]).setVersion(1_18_06_2); ds_list_add(transform, "Crops"); addNodeObject(transform, "Crop", "Node_Crop", [1, Node_Crop], "Crop out image to create smaller ones."); @@ -637,6 +644,7 @@ function __initNodes() { addNodeObject(filter, "Blur", "Node_Blur", [1, Node_Blur], "Blur image smoothly.").setTags(["gaussian blur"]); addNodeObject(filter, "Non-Uniform Blur", "Node_Blur_Simple", [1, Node_Blur_Simple], "Blur image using simpler algorithm. Allowing for variable blur strength.").setVersion(1070); addNodeObject(filter, "Contrast Blur", "Node_Blur_Contrast", [1, Node_Blur_Contrast], "Blur only pixel of a similiar color."); + addNodeObject(filter, "Box Blur", "Node_Blur_Box", [1, Node_Blur_Box], "Blur pixel in square area uniformly.").setVersion(1_18_06_2); addNodeObject(filter, "Shape Blur", "Node_Blur_Shape", [1, Node_Blur_Shape], "Blur image using another image as blur map.").setVersion(11650); addNodeObject(filter, "High Pass", "Node_High_Pass", [1, Node_High_Pass], "Apply high pass filter").setTags(["sharpen"]).setVersion(1_18_01_0); ds_list_add(filter, "/Linear"); @@ -654,7 +662,8 @@ function __initNodes() { ds_list_add(filter, "Warps"); ds_list_add(filter, "/Effects"); - addNodeObject(filter, "Mirror", "Node_Mirror", [1, Node_Mirror], "Reflect the image along a reflection line.").setVersion(1070); + addNodeObject(filter,, "Node_Mirror"); + addNodeObject(filter,, "Node_Mirror_Polar"); addNodeObject(filter, "Twirl", "Node_Twirl", [1, Node_Twirl], "Twist the image around a mid point.").setTags(["twist"]); addNodeObject(filter, "Dilate", "Node_Dilate", [1, Node_Dilate], "Expand the image around a mid point.").setTags(["inflate"]); addNodeObject(filter, "Spherize", "Node_Spherize", [1, Node_Spherize], "Wrap a texture on to sphere.").setVersion(11630); @@ -696,7 +705,7 @@ function __initNodes() { addNodeObject(filter, "Shuffle", "Node_Shuffle", [1, Node_Shuffle], "Shuffle image while keeping pixel colors.").setVersion(1_18_05_6); ds_list_add(filter, "/Lights"); addNodeObject(filter, "2D Light", "Node_2D_light", [1, Node_2D_light], "Apply different shaped light on the image."); - addNodeObject(filter, "Cast Shadow", "Node_Shadow_Cast", [1, Node_Shadow_Cast], "Apply light that create shadow using shadow mask.").setTags(["raycast"]).setVersion(1100); + addNodeObject(filter, "Cast Shadow", "Node_Shadow_Cast", [1, Node_Shadow_Cast], "Apply light that casts shadow.").setTags(["raycast"]).setVersion(1100); ds_list_add(filter, "/Animations"); addNodeObject(filter, "Interlace", "Node_Interlaced", [1, Node_Interlaced], "Apply interlace effect to an image.").setVersion(11760); addNodeObject(filter, "Trail", "Node_Trail", [1, Node_Trail], "Blend animation by filling in the pixel 'in-between' two or more frames.").setVersion(1130); @@ -833,6 +842,7 @@ function __initNodes() { addNodeObject(generator, "Simplex Noise", "Node_Noise_Simplex", [1, Node_Noise_Simplex], "Generate simplex noise, similiar to perlin noise with better fidelity but non-tilable.").setTags(["perlin"]).setVersion(1080); addNodeObject(generator, "Cellular Noise", "Node_Cellular", [1, Node_Cellular], "Generate voronoi pattern.").setTags(["voronoi", "worley"]); addNodeObject(generator, "Anisotropic Noise", "Node_Noise_Aniso", [1, Node_Noise_Aniso], "Generate anisotropic noise."); + // addNodeObject(generator, "Blue Noise", "Node_Noise_Blue", [1, Node_Noise_Blue], "Generate blue noise texture").setVersion(1_18_06_2); addNodeObject(generator, "Extra Perlins", "Node_Perlin_Extra", [1, Node_Perlin_Extra], "Random perlin noise made with different algorithms.").setTags(["noise"]).patreonExtra(); addNodeObject(generator, "Extra Voronoi", "Node_Voronoi_Extra", [1, Node_Voronoi_Extra], "Random voronoi noise made with different algorithms.").setTags(["noise"]).patreonExtra(); ds_list_add(generator, "/Artistics"); diff --git a/shaders/sh_blur_box/sh_blur_box.fsh b/shaders/sh_blur_box/sh_blur_box.fsh new file mode 100644 index 000000000..e65441a9b --- /dev/null +++ b/shaders/sh_blur_box/sh_blur_box.fsh @@ -0,0 +1,109 @@ +#pragma use(sampler) + +#region -- sampler -- [1730686036.7372286] + uniform int interpolation; + uniform vec2 sampleDimension; + uniform int sampleMode; + + const float PI = 3.14159265358979323846; + float sinc ( float x ) { return x == 0.? 1. : sin(x * PI) / (x * PI); } + + vec4 texture2D_bicubic( sampler2D texture, vec2 uv ) { + uv = uv * sampleDimension + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + uv = iuv + fuv * fuv * (3.0 - 2.0 * fuv); + uv = (uv - 0.5) / sampleDimension; + return texture2D( texture, uv ); + } + + const int RSIN_RADIUS = 1; + vec4 texture2D_rsin( sampler2D texture, vec2 uv ) { + vec2 tx = 1.0 / sampleDimension; + vec2 p = uv * sampleDimension; + + vec4 col = vec4(0.); + float wei = 0.; + + for (int x = -RSIN_RADIUS; x <= RSIN_RADIUS; x++) + for (int y = -RSIN_RADIUS; y <= RSIN_RADIUS; y++) { + vec2 sx = vec2(float(x), float(y)); + float a = length(sx) / float(RSIN_RADIUS); + // if(a > 1.) continue; + + vec4 sample = texture2D(texture, uv + sx * tx); + float w = sinc(a * PI * tx.x) * sinc(a * PI * tx.y); + + col += w * sample; + wei += w; + } + + col /= wei; + return col; + } + + const int LANCZOS_RADIUS = 3; + float lanczosWeight(float d, float n) { return d == 0.0 ? 1.0 : (d * d < n * n ? sinc(d) * sinc(d / n) : 0.0); } + + vec4 texture2D_lanczos3( sampler2D texture, vec2 uv ) { + vec2 center = uv - (mod(uv * sampleDimension, 1.0) - 0.5) / sampleDimension; + vec2 offset = (uv - center) * sampleDimension; + vec2 tx = 1. / sampleDimension; + + vec4 col = vec4(0.); + float wei = 0.; + + for(int x = -LANCZOS_RADIUS; x < LANCZOS_RADIUS; x++) + for(int y = -LANCZOS_RADIUS; y < LANCZOS_RADIUS; y++) { + + float wx = lanczosWeight(float(x) - offset.x, float(LANCZOS_RADIUS)); + float wy = lanczosWeight(float(y) - offset.y, float(LANCZOS_RADIUS)); + float w = wx * wy; + + col += w * texture2D(texture, center + vec2(x, y) * tx); + wei += w; + } + + col /= wei; + return col; + } + + vec4 texture2Dintp( sampler2D texture, vec2 uv ) { + if(interpolation <= 2) return texture2D( texture, uv ); + else if(interpolation == 3) return texture2D_bicubic( texture, uv ); + else if(interpolation == 4) return texture2D_lanczos3( texture, uv ); + + return texture2D( texture, uv ); + } + + vec4 sampleTexture( sampler2D texture, vec2 pos) { + if(pos.x >= 0. && pos.y >= 0. && pos.x <= 1. && pos.y <= 1.) + return texture2Dintp(texture, pos); + + if(sampleMode <= 1) return vec4(0.); + else if(sampleMode == 2) return texture2Dintp(texture, clamp(pos, 0., 1.)); + else if(sampleMode == 3) return texture2Dintp(texture, fract(pos)); + else if(sampleMode == 4) return vec4(vec3(0.), 1.); + + return vec4(0.); + } +#endregion -- sampler -- + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform vec2 dimension; +uniform float size; +uniform int axis; + +void main() { + vec2 tx = 1. / dimension; + vec2 ax = axis == 0? vec2(tx.x, 0.) : vec2(0., tx.y); + vec4 cc = vec4(0.); + + for(float i = -size; i <= size; i++) + cc += sampleTexture(gm_BaseTexture, v_vTexcoord + ax * i); + + cc /= size * 2. + 1.; + gl_FragColor = cc; +} \ No newline at end of file diff --git a/shaders/sh_blur_box/sh_blur_box.vsh b/shaders/sh_blur_box/sh_blur_box.vsh new file mode 100644 index 000000000..1a5ddfa49 --- /dev/null +++ b/shaders/sh_blur_box/sh_blur_box.vsh @@ -0,0 +1,14 @@ +attribute vec3 in_Position; // (x, y, z) +attribute vec4 in_Colour; // (r, g, b, a) +attribute vec2 in_TextureCoord; // (u, v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() { + vec4 object_space_pos = vec4(in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} \ No newline at end of file diff --git a/shaders/sh_blur_box/sh_blur_box.yy b/shaders/sh_blur_box/sh_blur_box.yy new file mode 100644 index 000000000..359b692b1 --- /dev/null +++ b/shaders/sh_blur_box/sh_blur_box.yy @@ -0,0 +1,13 @@ +{ + "$GMShader":"", + "%Name":"sh_blur_box", + "name":"sh_blur_box", + "parent":{ + "name":"blur", + "path":"folders/shader/filter/blur.yy", + }, + "resourceType":"GMShader", + "resourceVersion":"2.0", + "tags":[], + "type":1, +} \ No newline at end of file diff --git a/shaders/sh_grid_hex/sh_grid_hex.fsh b/shaders/sh_grid_hex/sh_grid_hex.fsh index 3071892f5..bd7697234 100644 --- a/shaders/sh_grid_hex/sh_grid_hex.fsh +++ b/shaders/sh_grid_hex/sh_grid_hex.fsh @@ -238,6 +238,7 @@ void main() { uv.y = mod(floor(uv.y * (tileY + 1.)), tileY) / tileY; colr = gradientEval(random(uv)); + } else if(mode == 2) { vec2 uv = (pos - hc.zw) + vec2(0.5, 0.5); diff --git a/shaders/sh_grid_tri/sh_grid_tri.fsh b/shaders/sh_grid_tri/sh_grid_tri.fsh index 7343be7ce..39fa009ae 100644 --- a/shaders/sh_grid_tri/sh_grid_tri.fsh +++ b/shaders/sh_grid_tri/sh_grid_tri.fsh @@ -168,7 +168,7 @@ float random (in vec2 st) { return fract(sin(dot(st.xy + vec2(85.456034, 64.5406 #endregion //////////////////////////////////// GRADIENT //////////////////////////////////// -vec3 triGrid(vec2 p){ #region +vec3 triGrid(vec2 p) { float _stx = (p.x + c30 / 2.0 * p.y); float stx = abs(fract(_stx) - 0.5); @@ -183,7 +183,7 @@ vec3 triGrid(vec2 p){ #region n = (n - .16) / (.35 - .16); return vec3((floor(_stx) + floor(_sty) + 1.) / 2., floor(p.y * c30), n); -} #endregion +} void main() { #region #region params diff --git a/shaders/sh_mirror/sh_mirror.fsh b/shaders/sh_mirror/sh_mirror.fsh index 547174e75..c3be47bb9 100644 --- a/shaders/sh_mirror/sh_mirror.fsh +++ b/shaders/sh_mirror/sh_mirror.fsh @@ -2,35 +2,29 @@ varying vec2 v_vTexcoord; varying vec4 v_vColour; #define TAU 6.283185307179586 -#define pi1 3.14159 -#define pi2 1.57079 +#define PI 3.141592653589793 uniform vec2 dimension; uniform vec2 position; uniform float angle; -float angle_different(in float a1, in float a2) { #region - float _d = (a2 - a1) + pi2; - return (_d - floor(_d / pi1) * pi1) - pi2; -} #endregion - void main() { - vec2 pos = v_vTexcoord; - vec2 pixel_pos = v_vTexcoord * dimension; + vec2 ps = v_vTexcoord; + vec2 px = v_vTexcoord * dimension - position; float _angle; - _angle = atan((pixel_pos.y - position.y), (pixel_pos.x - position.x)) + angle; + _angle = atan(px.y, px.x) + angle; _angle = TAU - (_angle - floor(_angle / TAU) * TAU); - if(_angle < pi1) { - float _alpha = (angle + pi1) - (_angle + angle); - float inv_angle = (angle + pi1) + _alpha; - float dist = distance(pixel_pos, position); + if(_angle < PI) { + float _alpha = (angle + PI) - (_angle + angle); + float inv_angle = (angle + PI) + _alpha; + float dist = length(px); - pos = (position + vec2(cos(inv_angle) * dist, -sin(inv_angle) * dist )) / dimension; + ps = (position + vec2(cos(inv_angle) * dist, -sin(inv_angle) * dist )) / dimension; } gl_FragColor = vec4(0.); - if(pos.x > 0. && pos.x < 1. && pos.y > 0. && pos.y < 1.) - gl_FragColor = v_vColour * texture2D( gm_BaseTexture, pos ); + if(ps.x > 0. && ps.x < 1. && ps.y > 0. && ps.y < 1.) + gl_FragColor = texture2D( gm_BaseTexture, ps ); } diff --git a/shaders/sh_mirror_polar/sh_mirror_polar.fsh b/shaders/sh_mirror_polar/sh_mirror_polar.fsh new file mode 100644 index 000000000..a2e236ad1 --- /dev/null +++ b/shaders/sh_mirror_polar/sh_mirror_polar.fsh @@ -0,0 +1,42 @@ +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +#define TAU 6.283185307179586 +#define PI 3.141592653589793 + +uniform vec2 dimension; +uniform vec2 position; +uniform float angle; +uniform float spokes; +uniform int reflecc; + +float round(in float a) { return floor(a + .5); } + +void main() { + vec2 ps = v_vTexcoord; + vec2 px = v_vTexcoord * dimension - position; + float _angle; + float a = TAU / spokes; + if(reflecc == 1) a *= 2.; + + _angle = atan(px.y, px.x) + angle; + _angle = TAU - mod(_angle, TAU); + _angle = mod(_angle, a); + + if(reflecc == 1 && _angle > a / 2.) _angle = a - _angle; + + if(_angle < PI) { + float _alpha = (angle + PI) - (_angle + angle); + float inv_angle = (angle + PI) + _alpha; + float dist = length(px); + + ps = (position + vec2(cos(inv_angle) * dist, -sin(inv_angle) * dist )) / dimension; + } + + ps = fract(ps); + + if(mod(floor(ps.x), 2.) > 1.) ps.x = 1. - ps.x; + if(mod(floor(ps.y), 2.) > 1.) ps.y = 1. - ps.y; + + gl_FragColor = texture2D( gm_BaseTexture, ps ); +} diff --git a/shaders/sh_mirror_polar/sh_mirror_polar.vsh b/shaders/sh_mirror_polar/sh_mirror_polar.vsh new file mode 100644 index 000000000..1a5ddfa49 --- /dev/null +++ b/shaders/sh_mirror_polar/sh_mirror_polar.vsh @@ -0,0 +1,14 @@ +attribute vec3 in_Position; // (x, y, z) +attribute vec4 in_Colour; // (r, g, b, a) +attribute vec2 in_TextureCoord; // (u, v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() { + vec4 object_space_pos = vec4(in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} \ No newline at end of file diff --git a/shaders/sh_mirror_polar/sh_mirror_polar.yy b/shaders/sh_mirror_polar/sh_mirror_polar.yy new file mode 100644 index 000000000..94d1c4a17 --- /dev/null +++ b/shaders/sh_mirror_polar/sh_mirror_polar.yy @@ -0,0 +1,13 @@ +{ + "$GMShader":"", + "%Name":"sh_mirror_polar", + "name":"sh_mirror_polar", + "parent":{ + "name":"warp", + "path":"folders/shader/filter/warp.yy", + }, + "resourceType":"GMShader", + "resourceVersion":"2.0", + "tags":[], + "type":1, +} \ No newline at end of file diff --git a/shaders/sh_noise_blue_interpret/sh_noise_blue_interpret.fsh b/shaders/sh_noise_blue_interpret/sh_noise_blue_interpret.fsh index e28a17897..523971f24 100644 --- a/shaders/sh_noise_blue_interpret/sh_noise_blue_interpret.fsh +++ b/shaders/sh_noise_blue_interpret/sh_noise_blue_interpret.fsh @@ -1,10 +1,22 @@ -// -// Simple passthrough fragment shader -// +// Cheap BLuenoise by FabriceNeyret2 +// https://www.shadertoy.com/view/tllcR2 + +#define hash(p) fract(sin(dot(p, vec2(11.9898, 78.233))) * 43758.5453) // iq suggestion, for Windows + varying vec2 v_vTexcoord; varying vec4 v_vColour; -void main() -{ - gl_FragColor = v_vColour * texture2D( gm_BaseTexture, v_vTexcoord ); +uniform float seed; + +float B(vec2 U) { + float v = hash( U + vec2(-1., 0.) ) + + hash( U + vec2( 1., 0.) ) + + hash( U + vec2( 0., 1.) ) + + hash( U + vec2( 0., -1.) ); + return hash(U) - v / 4. + .5; +} + +void main() { + vec2 u = v_vTexcoord - mod(seed, 1000.); + gl_FragColor = vec4(vec3(B(u)), 1.); } diff --git a/shaders/sh_noise_blue_iterate/sh_noise_blue_iterate.fsh b/shaders/sh_noise_blue_iterate/sh_noise_blue_iterate.fsh index 6e1db6bd6..3ae7d3100 100644 --- a/shaders/sh_noise_blue_iterate/sh_noise_blue_iterate.fsh +++ b/shaders/sh_noise_blue_iterate/sh_noise_blue_iterate.fsh @@ -1,6 +1,8 @@ varying vec2 v_vTexcoord; varying vec4 v_vColour; +uniform vec2 seed; + void main() { - gl_FragColor = v_vColour * texture2D(gm_BaseTexture, v_vTexcoord); + gl_FragColor = texture2D(gm_BaseTexture, v_vTexcoord); } \ No newline at end of file diff --git a/sprites/s_node_blur_box/746780f2-1825-44d6-8a72-58007fa9cca5.png b/sprites/s_node_blur_box/746780f2-1825-44d6-8a72-58007fa9cca5.png new file mode 100644 index 000000000..7cc627708 Binary files /dev/null and b/sprites/s_node_blur_box/746780f2-1825-44d6-8a72-58007fa9cca5.png differ diff --git a/sprites/s_node_blur_box/layers/746780f2-1825-44d6-8a72-58007fa9cca5/376028a4-0570-4526-8337-4b389fc9399e.png b/sprites/s_node_blur_box/layers/746780f2-1825-44d6-8a72-58007fa9cca5/376028a4-0570-4526-8337-4b389fc9399e.png new file mode 100644 index 000000000..7cc627708 Binary files /dev/null and b/sprites/s_node_blur_box/layers/746780f2-1825-44d6-8a72-58007fa9cca5/376028a4-0570-4526-8337-4b389fc9399e.png differ diff --git a/sprites/s_node_blur_box/s_node_blur_box.yy b/sprites/s_node_blur_box/s_node_blur_box.yy new file mode 100644 index 000000000..55e5126f1 --- /dev/null +++ b/sprites/s_node_blur_box/s_node_blur_box.yy @@ -0,0 +1,90 @@ +{ + "$GMSprite":"", + "%Name":"s_node_blur_box", + "bboxMode":0, + "bbox_bottom":54, + "bbox_left":5, + "bbox_right":58, + "bbox_top":4, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"746780f2-1825-44d6-8a72-58007fa9cca5","name":"746780f2-1825-44d6-8a72-58007fa9cca5","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":64, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"376028a4-0570-4526-8337-4b389fc9399e","blendMode":0,"displayName":"default","isLocked":false,"name":"376028a4-0570-4526-8337-4b389fc9399e","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_node_blur_box", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"blur", + "path":"folders/nodes/icons/filter/blur.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_node_blur_box", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"s_node_blur_box", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"746780f2-1825-44d6-8a72-58007fa9cca5","path":"sprites/s_node_blur_box/s_node_blur_box.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"4909e39f-b706-41bb-92fd-c0fe2d246364","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange":null, + "volume":1.0, + "xorigin":32, + "yorigin":32, + }, + "swatchColours":null, + "swfPrecision":0.5, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":64, +} \ No newline at end of file diff --git a/sprites/s_node_mirror_polar/3da4b352-4fd5-4f6a-ab44-21f458642cc5.png b/sprites/s_node_mirror_polar/3da4b352-4fd5-4f6a-ab44-21f458642cc5.png new file mode 100644 index 000000000..45e418d4e Binary files /dev/null and b/sprites/s_node_mirror_polar/3da4b352-4fd5-4f6a-ab44-21f458642cc5.png differ diff --git a/sprites/s_node_mirror_polar/layers/3da4b352-4fd5-4f6a-ab44-21f458642cc5/30eefea9-c945-4e01-abb4-f567ec154ad2.png b/sprites/s_node_mirror_polar/layers/3da4b352-4fd5-4f6a-ab44-21f458642cc5/30eefea9-c945-4e01-abb4-f567ec154ad2.png new file mode 100644 index 000000000..45e418d4e Binary files /dev/null and b/sprites/s_node_mirror_polar/layers/3da4b352-4fd5-4f6a-ab44-21f458642cc5/30eefea9-c945-4e01-abb4-f567ec154ad2.png differ diff --git a/sprites/s_node_mirror_polar/s_node_mirror_polar.yy b/sprites/s_node_mirror_polar/s_node_mirror_polar.yy new file mode 100644 index 000000000..f5b8a4a05 --- /dev/null +++ b/sprites/s_node_mirror_polar/s_node_mirror_polar.yy @@ -0,0 +1,90 @@ +{ + "$GMSprite":"", + "%Name":"s_node_mirror_polar", + "bboxMode":0, + "bbox_bottom":61, + "bbox_left":2, + "bbox_right":61, + "bbox_top":2, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"3da4b352-4fd5-4f6a-ab44-21f458642cc5","name":"3da4b352-4fd5-4f6a-ab44-21f458642cc5","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":64, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"30eefea9-c945-4e01-abb4-f567ec154ad2","blendMode":0,"displayName":"default","isLocked":false,"name":"30eefea9-c945-4e01-abb4-f567ec154ad2","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_node_mirror_polar", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"transform", + "path":"folders/nodes/icons/transform.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_node_mirror_polar", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"s_node_mirror_polar", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"3da4b352-4fd5-4f6a-ab44-21f458642cc5","path":"sprites/s_node_mirror_polar/s_node_mirror_polar.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"9709de7d-ad3f-4354-9aa9-70df4a3c9b99","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange":null, + "volume":1.0, + "xorigin":32, + "yorigin":32, + }, + "swatchColours":null, + "swfPrecision":0.5, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":64, +} \ No newline at end of file diff --git a/sprites/s_node_noise_blue/0f673059-20ef-4899-8927-64fd45970667.png b/sprites/s_node_noise_blue/0f673059-20ef-4899-8927-64fd45970667.png new file mode 100644 index 000000000..2c82718ca Binary files /dev/null and b/sprites/s_node_noise_blue/0f673059-20ef-4899-8927-64fd45970667.png differ diff --git a/sprites/s_node_noise_blue/layers/0f673059-20ef-4899-8927-64fd45970667/d9fe52c1-2602-415b-a8ff-e6b4141a21c2.png b/sprites/s_node_noise_blue/layers/0f673059-20ef-4899-8927-64fd45970667/d9fe52c1-2602-415b-a8ff-e6b4141a21c2.png new file mode 100644 index 000000000..2c82718ca Binary files /dev/null and b/sprites/s_node_noise_blue/layers/0f673059-20ef-4899-8927-64fd45970667/d9fe52c1-2602-415b-a8ff-e6b4141a21c2.png differ diff --git a/sprites/s_node_noise_blue/s_node_noise_blue.yy b/sprites/s_node_noise_blue/s_node_noise_blue.yy new file mode 100644 index 000000000..0aaaebed1 --- /dev/null +++ b/sprites/s_node_noise_blue/s_node_noise_blue.yy @@ -0,0 +1,90 @@ +{ + "$GMSprite":"", + "%Name":"s_node_noise_blue", + "bboxMode":0, + "bbox_bottom":61, + "bbox_left":2, + "bbox_right":61, + "bbox_top":2, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"0f673059-20ef-4899-8927-64fd45970667","name":"0f673059-20ef-4899-8927-64fd45970667","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":64, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"d9fe52c1-2602-415b-a8ff-e6b4141a21c2","blendMode":0,"displayName":"default","isLocked":false,"name":"d9fe52c1-2602-415b-a8ff-e6b4141a21c2","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_node_noise_blue", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"generator", + "path":"folders/nodes/icons/generator.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_node_noise_blue", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"s_node_noise_blue", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"0f673059-20ef-4899-8927-64fd45970667","path":"sprites/s_node_noise_blue/s_node_noise_blue.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"91623e7b-7f13-4df6-b920-17ec620c4929","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange":null, + "volume":1.0, + "xorigin":32, + "yorigin":32, + }, + "swatchColours":null, + "swfPrecision":0.5, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":64, +} \ No newline at end of file