From bf0eabc1890b456ea5eaf50f3cca1a58daa7cb6f Mon Sep 17 00:00:00 2001
From: Tanasart <22589759+Ttanasart-pt@users.noreply.github.com>
Date: Thu, 17 Aug 2023 16:56:54 +0200
Subject: [PATCH] Convert 3D nodes to array processor
---
PixelComposer.resource_order | 31 +--
PixelComposer.yyp | 8 +-
datafiles/data/themes/default.zip | Bin 3905737 -> 3932180 bytes
scripts/_3d_rotation/_3d_rotation.yy | 4 +-
scripts/__node_3d/__node_3d.gml | 35 ++-
scripts/__node_3d_light/__node_3d_light.gml | 28 +--
scripts/__node_3d_mesh/__node_3d_mesh.gml | 4 +-
.../__node_3d_mesh_modifier.gml | 2 +-
scripts/__node_3d_object/__node_3d_object.gml | 21 +-
.../__node_value_processor.gml | 6 +-
scripts/d3_vector/d3_vector.yy | 4 +-
scripts/d3d_camera/d3d_camera.yy | 4 +-
.../d3d_camera_object/d3d_camera_object.yy | 4 +-
scripts/d3d_cube/d3d_cube.gml | 20 ++
scripts/d3d_cube_faces/d3d_cube_faces.gml | 91 ++++++++
scripts/d3d_cube_faces/d3d_cube_faces.yy | 11 +
scripts/d3d_group/d3d_group.gml | 13 ++
scripts/d3d_group/d3d_group.yy | 11 +
scripts/d3d_light/d3d_light.yy | 4 +-
.../d3d_light_directional.yy | 4 +-
scripts/d3d_light_point/d3d_light_point.yy | 4 +-
scripts/d3d_matrix3/d3d_matrix3.yy | 4 +-
scripts/d3d_matrix4/d3d_matrix4.yy | 4 +-
scripts/d3d_object/d3d_object.gml | 43 +++-
scripts/d3d_plane/d3d_plane.yy | 4 +-
scripts/d3d_rot3/d3d_rot3.yy | 4 +-
scripts/d3d_vec3/d3d_vec3.gml | 7 +
scripts/d3d_vec3/d3d_vec3.yy | 4 +-
scripts/d3d_vec4/d3d_vec4.gml | 8 +
scripts/d3d_vec4/d3d_vec4.yy | 4 +-
scripts/lerp_float/lerp_float.gml | 25 +--
scripts/node_2d_light/node_2d_light.gml | 2 +-
scripts/node_3d_camera/node_3d_camera.gml | 71 +++---
scripts/node_3d_depth/node_3d_depth.gml | 2 +-
scripts/node_3d_displace/node_3d_displace.gml | 2 +-
scripts/node_3d_extrude/node_3d_extrude.gml | 2 +-
.../node_3d_light_directional.gml | 11 +-
.../node_3d_light_point.gml | 11 +-
.../node_3d_mesh_cube/node_3d_mesh_cube.gml | 58 ++++-
scripts/node_3d_plane/node_3d_plane.gml | 2 +-
.../node_3d_prim_cone/node_3d_prim_cone.gml | 2 +-
.../node_3d_prim_cube/node_3d_prim_cube.gml | 2 +-
.../node_3d_prim_cylinder.gml | 2 +-
.../node_3d_prim_sphere.gml | 2 +-
scripts/node_3d_scene/node_3d_scene.gml | 25 +--
.../node_3d_transform/node_3d_transform.gml | 2 +-
scripts/node_9slice/node_9slice.gml | 2 +-
scripts/node_FFT/node_FFT.gml | 2 +-
scripts/node_FXAA/node_FXAA.gml | 2 +-
scripts/node_VCT/node_VCT.gml | 2 +-
.../node_alpha_cutoff/node_alpha_cutoff.gml | 2 +-
scripts/node_alpha_hash/node_alpha_hash.gml | 2 +-
.../node_alpha_to_grey/node_alpha_to_grey.gml | 2 +-
.../node_animate_curve/node_animate_curve.gml | 2 +-
scripts/node_area/node_area.gml | 2 +-
.../node_armature_bind/node_armature_bind.gml | 2 +-
scripts/node_atlas/node_atlas.gml | 2 +-
scripts/node_average/node_average.gml | 2 +-
.../node_base_convert/node_base_convert.gml | 2 +-
scripts/node_bevel/node_bevel.gml | 2 +-
scripts/node_blend/node_blend.gml | 2 +-
scripts/node_blinker/node_blinker.gml | 2 +-
scripts/node_bloom/node_bloom.gml | 2 +-
scripts/node_blur/node_blur.gml | 2 +-
scripts/node_blur_bokeh/node_blur_bokeh.gml | 2 +-
.../node_blur_contrast/node_blur_contrast.gml | 2 +-
.../node_blur_directional.gml | 2 +-
scripts/node_blur_radial/node_blur_radial.gml | 2 +-
scripts/node_blur_simple/node_blur_simple.gml | 2 +-
scripts/node_blur_zoom/node_blur_zoom.gml | 2 +-
scripts/node_boolean/node_boolean.gml | 2 +-
scripts/node_bw/node_bw.gml | 2 +-
scripts/node_camera/node_camera.gml | 4 +-
scripts/node_canvas/node_canvas.gml | 2 -
scripts/node_channels/node_channels.gml | 2 +-
.../node_channels_hsv/node_channels_hsv.gml | 2 +-
.../node_checkerboard/node_checkerboard.gml | 2 +-
.../node_chromatic_aberration.gml | 2 +-
scripts/node_color/node_color.gml | 2 +-
.../node_color_adjustment.gml | 2 +-
scripts/node_color_data/node_color_data.gml | 2 +-
.../node_color_from_hsv.gml | 2 +-
.../node_color_from_rgb.gml | 2 +-
scripts/node_color_mix/node_color_mix.gml | 2 +-
.../node_color_palette_replacement.gml | 2 +-
.../node_color_remove/node_color_remove.gml | 2 +-
.../node_color_replacement.gml | 2 +-
.../node_color_sampler/node_color_sampler.gml | 4 +-
scripts/node_colorize/node_colorize.gml | 2 +-
scripts/node_combine_hsv/node_combine_hsv.gml | 2 +-
scripts/node_combine_rgb/node_combine_rgb.gml | 2 +-
scripts/node_composite/node_composite.gml | 2 +-
scripts/node_convolution/node_convolution.gml | 2 +-
scripts/node_corner/node_corner.gml | 2 +-
scripts/node_counter/node_counter.gml | 2 +-
scripts/node_crop/node_crop.gml | 4 +-
scripts/node_curve/node_curve.gml | 2 +-
scripts/node_data/node_data.gml | 10 +-
scripts/node_de_corner/node_de_corner.gml | 2 +-
scripts/node_de_stray/node_de_stray.gml | 2 +-
scripts/node_dilate/node_dilate.gml | 2 +-
.../node_displacement/node_displacement.gml | 2 +-
scripts/node_dither/node_dither.gml | 2 +-
scripts/node_edge_detect/node_edge_detect.gml | 2 +-
scripts/node_equation/node_equation.gml | 2 +-
scripts/node_erode/node_erode.gml | 2 +-
scripts/node_find_pixel/node_find_pixel.gml | 4 +-
scripts/node_flip/node_flip.gml | 2 +-
scripts/node_flood_fill/node_flood_fill.gml | 2 +-
scripts/node_glow/node_glow.gml | 2 +-
scripts/node_gradient/node_gradient.gml | 2 +-
.../node_gradient_extract.gml | 2 +-
.../node_gradient_output.gml | 2 +-
.../node_gradient_palette.gml | 2 +-
.../node_gradient_points.gml | 2 +-
.../node_gradient_replace.gml | 2 +-
.../node_gradient_shift.gml | 2 +-
.../node_grey_to_alpha/node_grey_to_alpha.gml | 2 +-
scripts/node_greyscale/node_greyscale.gml | 2 +-
scripts/node_grid/node_grid.gml | 2 +-
scripts/node_grid_hex/node_grid_hex.gml | 2 +-
scripts/node_grid_tri/node_grid_tri.gml | 2 +-
.../node_image_splice_sheet.gml | 2 +-
scripts/node_invert/node_invert.gml | 2 +-
scripts/node_lerp/node_lerp.gml | 2 +-
scripts/node_level/node_level.gml | 2 +-
.../node_level_selector.gml | 2 +-
scripts/node_line/node_line.gml | 2 +-
.../node_local_analyze/node_local_analyze.gml | 2 +-
scripts/node_mirror/node_mirror.gml | 2 +-
.../node_morph_surface/node_morph_surface.gml | 2 +-
scripts/node_noise/node_noise.gml | 2 +-
scripts/node_noise_ani/node_noise_ani.gml | 2 +-
scripts/node_noise_cell/node_noise_cell.gml | 2 +-
scripts/node_noise_fbm/node_noise_fbm.gml | 2 +-
scripts/node_noise_grid/node_noise_grid.gml | 2 +-
.../node_noise_grid_hex.gml | 2 +-
.../node_noise_grid_tri.gml | 2 +-
.../node_noise_simplex/node_noise_simplex.gml | 2 +-
scripts/node_normal/node_normal.gml | 2 +-
.../node_normal_light/node_normal_light.gml | 2 +-
scripts/node_number/node_number.gml | 10 +-
scripts/node_outline/node_outline.gml | 2 +-
scripts/node_padding/node_padding.gml | 2 +-
scripts/node_palette/node_palette.gml | 2 +-
.../node_palette_extract.gml | 2 +-
.../node_palette_replacement.gml | 2 +-
.../node_palette_shift/node_palette_shift.gml | 2 +-
scripts/node_path_anchor/node_path_anchor.gml | 2 +-
scripts/node_path_eval/node_path_eval.gml | 2 +-
scripts/node_pb/node_pb.gml | 4 +-
.../node_pb_box_contract.gml | 2 +-
.../node_pb_box_divide/node_pb_box_divide.gml | 2 +-
.../node_pb_box_divide_grid.gml | 2 +-
.../node_pb_box_inset/node_pb_box_inset.gml | 2 +-
.../node_pb_box_mirror/node_pb_box_mirror.gml | 2 +-
.../node_pb_box_split/node_pb_box_split.gml | 2 +-
.../node_pb_box_transform.gml | 2 +-
.../node_pb_draw_angle/node_pb_draw_angle.gml | 2 +-
.../node_pb_draw_blob/node_pb_draw_blob.gml | 2 +-
.../node_pb_draw_diamond.gml | 2 +-
.../node_pb_draw_ellipse.gml | 2 +-
.../node_pb_draw_fill/node_pb_draw_fill.gml | 2 +-
.../node_pb_draw_line/node_pb_draw_line.gml | 2 +-
.../node_pb_draw_rectangle.gml | 2 +-
.../node_pb_draw_roundrectangle.gml | 2 +-
.../node_pb_draw_semi_ellipse.gml | 2 +-
.../node_pb_draw_trapezoid.gml | 2 +-
scripts/node_pb_fx_add/node_pb_fx_add.gml | 2 +-
scripts/node_pb_fx_brick/node_pb_fx_brick.gml | 2 +-
scripts/node_pb_fx_hash/node_pb_fx_hash.gml | 2 +-
.../node_pb_fx_highlight.gml | 2 +-
.../node_pb_fx_intersect.gml | 2 +-
.../node_pb_fx_outline/node_pb_fx_outline.gml | 2 +-
.../node_pb_fx_radial/node_pb_fx_radial.gml | 2 +-
.../node_pb_fx_shading/node_pb_fx_shading.gml | 2 +-
scripts/node_pb_fx_stack/node_pb_fx_stack.gml | 2 +-
scripts/node_pb_fx_strip/node_pb_fx_strip.gml | 2 +-
.../node_pb_fx_substract.gml | 2 +-
scripts/node_pb_layer/node_pb_layer.gml | 4 +-
scripts/node_perlin/node_perlin.gml | 2 +-
.../node_perlin_smear/node_perlin_smear.gml | 2 +-
scripts/node_pixel_cloud/node_pixel_cloud.gml | 2 +-
scripts/node_pixel_sort/node_pixel_sort.gml | 2 +-
scripts/node_plot_linear/node_plot_linear.gml | 2 +-
scripts/node_point_move/node_point_move.gml | 2 +-
scripts/node_polar/node_polar.gml | 2 +-
.../node_polygonal_shape.gml | 2 +-
scripts/node_posterize/node_posterize.gml | 2 +-
scripts/node_processor/node_processor.gml | 63 +++---
scripts/node_random/node_random.gml | 2 +-
.../node_random_shape/node_random_shape.gml | 2 +-
scripts/node_rate_remap/node_rate_remap.gml | 2 +-
scripts/node_region_fill/node_region_fill.gml | 2 +-
.../node_rigid_object/node_rigid_object.gml | 2 +-
scripts/node_scale/node_scale.gml | 2 +-
scripts/node_scale_algo/node_scale_algo.gml | 2 +-
scripts/node_scatter/node_scatter.gml | 2 +-
.../node_scatter_points.gml | 2 +-
scripts/node_sdf/node_sdf.gml | 2 +-
scripts/node_shadow/node_shadow.gml | 2 +-
scripts/node_shadow_cast/node_shadow_cast.gml | 2 +-
.../node_simple_shape/node_simple_shape.gml | 2 +-
scripts/node_skew/node_skew.gml | 2 +-
scripts/node_solid/node_solid.gml | 2 +-
.../node_sprite_stack/node_sprite_stack.gml | 2 +-
scripts/node_string/node_string.gml | 2 +-
.../node_string_get_char.gml | 2 +-
.../node_string_length/node_string_length.gml | 2 +-
.../node_string_merge/node_string_merge.gml | 2 +-
.../node_string_path_separate_folder.gml | 2 +-
.../node_string_regex_match.gml | 2 +-
.../node_string_regex_replace.gml | 2 +-
.../node_string_regex_search.gml | 2 +-
.../node_string_split/node_string_split.gml | 2 +-
scripts/node_string_trim/node_string_trim.gml | 2 +-
scripts/node_stripe/node_stripe.gml | 2 +-
.../node_surface_from_buffer.gml | 2 +-
.../node_surface_from_color.gml | 2 +-
.../node_surface_replace.gml | 2 +-
.../node_surface_to_buffer.gml | 2 +-
.../node_surface_to_color.gml | 2 +-
scripts/node_text/node_text.gml | 2 +-
.../node_texture_remap/node_texture_remap.gml | 2 +-
scripts/node_threshold/node_threshold.gml | 2 +-
scripts/node_to_number/node_to_number.gml | 2 +-
scripts/node_to_text/node_to_text.gml | 2 +-
scripts/node_transform/node_transform.gml | 2 +-
.../node_transform_array.gml | 2 +-
.../node_transform_single.gml | 2 +-
scripts/node_twirl/node_twirl.gml | 2 +-
scripts/node_unicode/node_unicode.gml | 2 +-
scripts/node_value/node_value.gml | 4 +
.../node_vector_cross2D.gml | 2 +-
.../node_vector_cross3D.gml | 2 +-
scripts/node_vector_dot/node_vector_dot.gml | 2 +-
scripts/node_wiggler/node_wiggler.gml | 2 +-
scripts/node_wrap/node_wrap.gml | 2 +-
scripts/node_wrap_area/node_wrap_area.gml | 2 +-
scripts/node_wrap_mesh/node_wrap_mesh.gml | 2 +-
.../node_wrap_perspective.gml | 2 +-
scripts/node_zigzag/node_zigzag.gml | 2 +-
scripts/panel_graph/panel_graph.gml | 2 +-
scripts/panel_preview/panel_preview.gml | 212 +++++++++++-------
.../surface_functions/surface_functions.gml | 7 +
shaders/sh_d3d_default/sh_d3d_default.fsh | 1 -
shaders/sh_d3d_grid_view/sh_d3d_grid_view.fsh | 6 +-
shaders/sh_d3d_normal/sh_d3d_normal.fsh | 8 +
shaders/sh_d3d_normal/sh_d3d_normal.vsh | 15 ++
shaders/sh_d3d_normal/sh_d3d_normal.yy | 10 +
250 files changed, 832 insertions(+), 524 deletions(-)
create mode 100644 scripts/d3d_cube_faces/d3d_cube_faces.gml
create mode 100644 scripts/d3d_cube_faces/d3d_cube_faces.yy
create mode 100644 scripts/d3d_group/d3d_group.gml
create mode 100644 scripts/d3d_group/d3d_group.yy
create mode 100644 shaders/sh_d3d_normal/sh_d3d_normal.fsh
create mode 100644 shaders/sh_d3d_normal/sh_d3d_normal.vsh
create mode 100644 shaders/sh_d3d_normal/sh_d3d_normal.yy
diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order
index eae98f85d..95e17c879 100644
--- a/PixelComposer.resource_order
+++ b/PixelComposer.resource_order
@@ -21,7 +21,6 @@
{"name":"widget","order":9,"path":"folders/dialog/widget.yy",},
{"name":"font","order":7,"path":"folders/font.yy",},
{"name":"functions","order":6,"path":"folders/functions.yy",},
- {"name":"misc","order":1,"path":"folders/functions/3d/misc.yy",},
{"name":"action","order":40,"path":"folders/functions/action.yy",},
{"name":"animation","order":19,"path":"folders/functions/animation.yy",},
{"name":"async","order":36,"path":"folders/functions/async.yy",},
@@ -187,6 +186,10 @@
{"name":"biterator","order":2,"path":"folders/VCT/biterator.yy",},
{"name":"widget","order":3,"path":"folders/VCT/widget.yy",},
{"name":"widgets","order":5,"path":"folders/widgets.yy",},
+ {"name":"util","order":17,"path":"folders/functions/3d/util.yy",},
+ {"name":"light","order":18,"path":"folders/functions/3d/light.yy",},
+ {"name":"camera","order":19,"path":"folders/functions/3d/camera.yy",},
+ {"name":"mesh","order":20,"path":"folders/functions/3d/mesh.yy",},
],
"ResourceOrderSettings": [
{"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",},
@@ -197,7 +200,7 @@
{"name":"sh_normal_light","order":1,"path":"shaders/sh_normal_light/sh_normal_light.yy",},
{"name":"node_tool","order":9,"path":"scripts/node_tool/node_tool.yy",},
{"name":"sh_find_pixel","order":3,"path":"shaders/sh_find_pixel/sh_find_pixel.yy",},
- {"name":"d3d_light_point","order":16,"path":"scripts/d3d_light_point/d3d_light_point.yy",},
+ {"name":"d3d_light_point","order":2,"path":"scripts/d3d_light_point/d3d_light_point.yy",},
{"name":"node_3d_camera","order":10,"path":"scripts/node_3d_camera/node_3d_camera.yy",},
{"name":"panel_preview_window","order":1,"path":"scripts/panel_preview_window/panel_preview_window.yy",},
{"name":"sh_scale3x","order":29,"path":"shaders/sh_scale3x/sh_scale3x.yy",},
@@ -209,6 +212,7 @@
{"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",},
{"name":"sh_dither","order":28,"path":"shaders/sh_dither/sh_dither.yy",},
{"name":"node_region_fill","order":20,"path":"scripts/node_region_fill/node_region_fill.yy",},
+ {"name":"sh_d3d_normal","order":18,"path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",},
{"name":"s_node_text_file_read","order":13,"path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},
{"name":"s_node_text_trim","order":7,"path":"sprites/s_node_text_trim/s_node_text_trim.yy",},
{"name":"s_node_pb_fx_shading","order":3,"path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},
@@ -238,7 +242,6 @@
{"name":"s_node_tunnel_out","order":22,"path":"sprites/s_node_tunnel_out/s_node_tunnel_out.yy",},
{"name":"__background_set_element","order":3,"path":"scripts/__background_set_element/__background_set_element.yy",},
{"name":"s_node_3d_obj","order":3,"path":"sprites/s_node_3d_obj/s_node_3d_obj.yy",},
- {"name":"d3d_camera","order":13,"path":"scripts/d3d_camera/d3d_camera.yy",},
{"name":"ds_list_queue","order":6,"path":"scripts/ds_list_queue/ds_list_queue.yy",},
{"name":"s_node_scale","order":6,"path":"sprites/s_node_scale/s_node_scale.yy",},
{"name":"sh_color_picker_value","order":1,"path":"shaders/sh_color_picker_value/sh_color_picker_value.yy",},
@@ -356,7 +359,7 @@
{"name":"node_pb_fx_strip","order":11,"path":"scripts/node_pb_fx_strip/node_pb_fx_strip.yy",},
{"name":"node_stripe","order":4,"path":"scripts/node_stripe/node_stripe.yy",},
{"name":"sh_texture_atlas","order":39,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",},
- {"name":"d3d_vec4","order":12,"path":"scripts/d3d_vec4/d3d_vec4.yy",},
+ {"name":"d3d_vec4","order":5,"path":"scripts/d3d_vec4/d3d_vec4.yy",},
{"name":"s_node_fluidSim_domain","order":6,"path":"sprites/s_node_fluidSim_domain/s_node_fluidSim_domain.yy",},
{"name":"s_node_displace","order":20,"path":"sprites/s_node_displace/s_node_displace.yy",},
{"name":"sh_polar","order":1,"path":"shaders/sh_polar/sh_polar.yy",},
@@ -475,7 +478,7 @@
{"name":"sh_fd_calculate_pressure_jacobi_glsl","order":8,"path":"shaders/sh_fd_calculate_pressure_jacobi_glsl/sh_fd_calculate_pressure_jacobi_glsl.yy",},
{"name":"node_color_from_rgb","order":7,"path":"scripts/node_color_from_rgb/node_color_from_rgb.yy",},
{"name":"node_struct_get","order":1,"path":"scripts/node_struct_get/node_struct_get.yy",},
- {"name":"d3d_plane","order":14,"path":"scripts/d3d_plane/d3d_plane.yy",},
+ {"name":"d3d_plane","order":2,"path":"scripts/d3d_plane/d3d_plane.yy",},
{"name":"curveBox","order":8,"path":"scripts/curveBox/curveBox.yy",},
{"name":"s_node_iterator_length","order":24,"path":"sprites/s_node_iterator_length/s_node_iterator_length.yy",},
{"name":"preview_overlay_vector","order":2,"path":"scripts/preview_overlay_vector/preview_overlay_vector.yy",},
@@ -568,7 +571,7 @@
{"name":"node_strand_gravity","order":4,"path":"scripts/node_strand_gravity/node_strand_gravity.yy",},
{"name":"load_palette","order":3,"path":"scripts/load_palette/load_palette.yy",},
{"name":"luaHighlight","order":1,"path":"scripts/luaHighlight/luaHighlight.yy",},
- {"name":"d3d_rot3","order":8,"path":"scripts/d3d_rot3/d3d_rot3.yy",},
+ {"name":"d3d_rot3","order":3,"path":"scripts/d3d_rot3/d3d_rot3.yy",},
{"name":"sh_sample_points","order":26,"path":"shaders/sh_sample_points/sh_sample_points.yy",},
{"name":"node_combine_rgb","order":1,"path":"scripts/node_combine_rgb/node_combine_rgb.yy",},
{"name":"fd_rectangle_draw_part","order":10,"path":"scripts/fd_rectangle_draw_part/fd_rectangle_draw_part.yy",},
@@ -602,6 +605,7 @@
{"name":"s_node_surface_from_buffer","order":1,"path":"sprites/s_node_surface_from_buffer/s_node_surface_from_buffer.yy",},
{"name":"node_iterator_filter_output","order":2,"path":"scripts/node_iterator_filter_output/node_iterator_filter_output.yy",},
{"name":"color_function","order":9,"path":"scripts/color_function/color_function.yy",},
+ {"name":"d3d_cube_faces","order":1,"path":"scripts/d3d_cube_faces/d3d_cube_faces.yy",},
{"name":"fd_rectangle_set_pressure_size","order":11,"path":"scripts/fd_rectangle_set_pressure_size/fd_rectangle_set_pressure_size.yy",},
{"name":"node_color_data","order":6,"path":"scripts/node_color_data/node_color_data.yy",},
{"name":"node_array_shift","order":24,"path":"scripts/node_array_shift/node_array_shift.yy",},
@@ -712,7 +716,7 @@
{"name":"s_node_lua_surface","order":18,"path":"sprites/s_node_lua_surface/s_node_lua_surface.yy",},
{"name":"node_data","order":1,"path":"scripts/node_data/node_data.yy",},
{"name":"node_wiggler","order":2,"path":"scripts/node_wiggler/node_wiggler.yy",},
- {"name":"d3d_matrix4","order":11,"path":"scripts/d3d_matrix4/d3d_matrix4.yy",},
+ {"name":"d3d_matrix4","order":1,"path":"scripts/d3d_matrix4/d3d_matrix4.yy",},
{"name":"fd_GUIDE","order":5,"path":"scripts/fd_GUIDE/fd_GUIDE.yy",},
{"name":"node_fluid_update","order":3,"path":"scripts/node_fluid_update/node_fluid_update.yy",},
{"name":"s_node_grid_noise","order":5,"path":"sprites/s_node_grid_noise/s_node_grid_noise.yy",},
@@ -816,6 +820,7 @@
{"name":"__global_object_depths","order":7,"path":"scripts/__global_object_depths/__global_object_depths.yy",},
{"name":"s_node_filter_array","order":28,"path":"sprites/s_node_filter_array/s_node_filter_array.yy",},
{"name":"node_noise_grid_hex","order":5,"path":"scripts/node_noise_grid_hex/node_noise_grid_hex.yy",},
+ {"name":"_3d_rotation","order":6,"path":"scripts/_3d_rotation/_3d_rotation.yy",},
{"name":"node_lua_global","order":1,"path":"scripts/node_lua_global/node_lua_global.yy",},
{"name":"o_dialog_preset","order":1,"path":"objects/o_dialog_preset/o_dialog_preset.yy",},
{"name":"s_node_mesh_transform","order":1,"path":"sprites/s_node_mesh_transform/s_node_mesh_transform.yy",},
@@ -920,7 +925,7 @@
{"name":"s_node_compare","order":1,"path":"sprites/s_node_compare/s_node_compare.yy",},
{"name":"s_node_fluidSim_domain_queue","order":9,"path":"sprites/s_node_fluidSim_domain_queue/s_node_fluidSim_domain_queue.yy",},
{"name":"s_node_vfx_spawn","order":2,"path":"sprites/s_node_vfx_spawn/s_node_vfx_spawn.yy",},
- {"name":"d3d_vec3","order":9,"path":"scripts/d3d_vec3/d3d_vec3.yy",},
+ {"name":"d3d_vec3","order":4,"path":"scripts/d3d_vec3/d3d_vec3.yy",},
{"name":"texture_set_repeat","order":1,"path":"scripts/texture_set_repeat/texture_set_repeat.yy",},
{"name":"o_dialog_color_quick_pick","order":5,"path":"objects/o_dialog_color_quick_pick/o_dialog_color_quick_pick.yy",},
{"name":"fd_rectangle_update_velocity","order":22,"path":"scripts/fd_rectangle_update_velocity/fd_rectangle_update_velocity.yy",},
@@ -1116,7 +1121,7 @@
{"name":"s_node_atlas","order":5,"path":"sprites/s_node_atlas/s_node_atlas.yy",},
{"name":"node_fluid_add","order":4,"path":"scripts/node_fluid_add/node_fluid_add.yy",},
{"name":"BBMOD_Quaternion","order":3,"path":"scripts/BBMOD_Quaternion/BBMOD_Quaternion.yy",},
- {"name":"d3d_cube","order":7,"path":"scripts/d3d_cube/d3d_cube.yy",},
+ {"name":"d3d_group","order":21,"path":"scripts/d3d_group/d3d_group.yy",},
{"name":"o_dialog_output_visibility","order":2,"path":"objects/o_dialog_output_visibility/o_dialog_output_visibility.yy",},
{"name":"node_normal","order":1,"path":"scripts/node_normal/node_normal.yy",},
{"name":"s_node_glow","order":24,"path":"sprites/s_node_glow/s_node_glow.yy",},
@@ -1133,7 +1138,7 @@
{"name":"vct_slider","order":1,"path":"scripts/vct_slider/vct_slider.yy",},
{"name":"panel_node_align","order":3,"path":"scripts/panel_node_align/panel_node_align.yy",},
{"name":"sh_blur_alpha","order":1,"path":"shaders/sh_blur_alpha/sh_blur_alpha.yy",},
- {"name":"d3d_light_directional","order":5,"path":"scripts/d3d_light_directional/d3d_light_directional.yy",},
+ {"name":"d3d_light_directional","order":1,"path":"scripts/d3d_light_directional/d3d_light_directional.yy",},
{"name":"value_snap","order":10,"path":"scripts/value_snap/value_snap.yy",},
{"name":"file_dropper","order":1,"path":"extensions/file_dropper/file_dropper.yy",},
{"name":"s_biterator_b_shape_idle","order":3,"path":"sprites/s_biterator_b_shape_idle/s_biterator_b_shape_idle.yy",},
@@ -1152,7 +1157,7 @@
{"name":"node_blur_contrast","order":1,"path":"scripts/node_blur_contrast/node_blur_contrast.yy",},
{"name":"sh_trail_filler","order":50,"path":"shaders/sh_trail_filler/sh_trail_filler.yy",},
{"name":"s_node_border","order":12,"path":"sprites/s_node_border/s_node_border.yy",},
- {"name":"d3_vector","order":1,"path":"scripts/d3_vector/d3_vector.yy",},
+ {"name":"d3_vector","order":7,"path":"scripts/d3_vector/d3_vector.yy",},
{"name":"s_node_pin","order":2,"path":"sprites/s_node_pin/s_node_pin.yy",},
{"name":"node_local_analyze","order":17,"path":"scripts/node_local_analyze/node_local_analyze.yy",},
{"name":"s_node_blur_contrast","order":10,"path":"sprites/s_node_blur_contrast/s_node_blur_contrast.yy",},
@@ -1262,7 +1267,7 @@
{"name":"s_node_array_reverse","order":8,"path":"sprites/s_node_array_reverse/s_node_array_reverse.yy",},
{"name":"o_process_handler","order":3,"path":"objects/o_process_handler/o_process_handler.yy",},
{"name":"sh_ani_noise","order":8,"path":"shaders/sh_ani_noise/sh_ani_noise.yy",},
- {"name":"d3d_camera_object","order":3,"path":"scripts/d3d_camera_object/d3d_camera_object.yy",},
+ {"name":"d3d_camera_object","order":1,"path":"scripts/d3d_camera_object/d3d_camera_object.yy",},
{"name":"sh_level","order":14,"path":"shaders/sh_level/sh_level.yy",},
{"name":"sh_grid_tri","order":3,"path":"shaders/sh_grid_tri/sh_grid_tri.yy",},
{"name":"s_node_text","order":1,"path":"sprites/s_node_text/s_node_text.yy",},
@@ -1274,7 +1279,6 @@
{"name":"sh_blend_normal_dim","order":10,"path":"shaders/sh_blend_normal_dim/sh_blend_normal_dim.yy",},
{"name":"node_skew","order":11,"path":"scripts/node_skew/node_skew.yy",},
{"name":"s_node_dot_product","order":13,"path":"sprites/s_node_dot_product/s_node_dot_product.yy",},
- {"name":"d3d_light","order":10,"path":"scripts/d3d_light/d3d_light.yy",},
{"name":"sh_downsample","order":1,"path":"shaders/sh_downsample/sh_downsample.yy",},
{"name":"sh_remove_black","order":33,"path":"shaders/sh_remove_black/sh_remove_black.yy",},
{"name":"path_parser","order":3,"path":"scripts/path_parser/path_parser.yy",},
@@ -1389,7 +1393,6 @@
{"name":"__node_value_processor","order":6,"path":"scripts/__node_value_processor/__node_value_processor.yy",},
{"name":"s_node_group_input","order":16,"path":"sprites/s_node_group_input/s_node_group_input.yy",},
{"name":"sample_projects","order":6,"path":"scripts/sample_projects/sample_projects.yy",},
- {"name":"d3d_matrix3","order":6,"path":"scripts/d3d_matrix3/d3d_matrix3.yy",},
{"name":"draw_fit","order":12,"path":"scripts/draw_fit/draw_fit.yy",},
{"name":"node_armature_sample","order":5,"path":"scripts/node_armature_sample/node_armature_sample.yy",},
{"name":"sh_pb_shade","order":3,"path":"shaders/sh_pb_shade/sh_pb_shade.yy",},
diff --git a/PixelComposer.yyp b/PixelComposer.yyp
index 43ee6572b..8c36836dd 100644
--- a/PixelComposer.yyp
+++ b/PixelComposer.yyp
@@ -42,7 +42,6 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"font","folderPath":"folders/font.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"functions","folderPath":"folders/functions.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"3d","folderPath":"folders/functions/3d.yy",},
- {"resourceType":"GMFolder","resourceVersion":"1.0","name":"misc","folderPath":"folders/functions/3d/misc.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"action","folderPath":"folders/functions/action.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"animation","folderPath":"folders/functions/animation.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"async","folderPath":"folders/functions/async.yy",},
@@ -225,6 +224,10 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"biterator","folderPath":"folders/VCT/biterator.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"widget","folderPath":"folders/VCT/widget.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"widgets","folderPath":"folders/widgets.yy",},
+ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"util","folderPath":"folders/functions/3d/util.yy",},
+ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"light","folderPath":"folders/functions/3d/light.yy",},
+ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"camera","folderPath":"folders/functions/3d/camera.yy",},
+ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"mesh","folderPath":"folders/functions/3d/mesh.yy",},
],
"IncludedFiles": [
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",},
@@ -721,6 +724,7 @@
{"id":{"name":"sh_dither","path":"shaders/sh_dither/sh_dither.yy",},},
{"id":{"name":"control_function","path":"scripts/control_function/control_function.yy",},},
{"id":{"name":"node_region_fill","path":"scripts/node_region_fill/node_region_fill.yy",},},
+ {"id":{"name":"sh_d3d_normal","path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",},},
{"id":{"name":"panel_data","path":"scripts/panel_data/panel_data.yy",},},
{"id":{"name":"s_node_text_file_read","path":"sprites/s_node_text_file_read/s_node_text_file_read.yy",},},
{"id":{"name":"s_node_text_trim","path":"sprites/s_node_text_trim/s_node_text_trim.yy",},},
@@ -1176,6 +1180,7 @@
{"id":{"name":"s_node_surface_from_buffer","path":"sprites/s_node_surface_from_buffer/s_node_surface_from_buffer.yy",},},
{"id":{"name":"node_iterator_filter_output","path":"scripts/node_iterator_filter_output/node_iterator_filter_output.yy",},},
{"id":{"name":"color_function","path":"scripts/color_function/color_function.yy",},},
+ {"id":{"name":"d3d_cube_faces","path":"scripts/d3d_cube_faces/d3d_cube_faces.yy",},},
{"id":{"name":"fd_rectangle_set_pressure_size","path":"scripts/fd_rectangle_set_pressure_size/fd_rectangle_set_pressure_size.yy",},},
{"id":{"name":"node_color_data","path":"scripts/node_color_data/node_color_data.yy",},},
{"id":{"name":"node_array_shift","path":"scripts/node_array_shift/node_array_shift.yy",},},
@@ -1753,6 +1758,7 @@
{"id":{"name":"node_fluid_add","path":"scripts/node_fluid_add/node_fluid_add.yy",},},
{"id":{"name":"BBMOD_Quaternion","path":"scripts/BBMOD_Quaternion/BBMOD_Quaternion.yy",},},
{"id":{"name":"d3d_cube","path":"scripts/d3d_cube/d3d_cube.yy",},},
+ {"id":{"name":"d3d_group","path":"scripts/d3d_group/d3d_group.yy",},},
{"id":{"name":"o_dialog_output_visibility","path":"objects/o_dialog_output_visibility/o_dialog_output_visibility.yy",},},
{"id":{"name":"node_normal","path":"scripts/node_normal/node_normal.yy",},},
{"id":{"name":"s_node_glow","path":"sprites/s_node_glow/s_node_glow.yy",},},
diff --git a/datafiles/data/themes/default.zip b/datafiles/data/themes/default.zip
index 152688c1681b56898d0de8c54a6890cfa526475a..bc8470e43d3017caa2cc93a8b4890e1f3fbc4c40 100644
GIT binary patch
delta 343276
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