mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-03-03 14:14:49 +01:00
Group transform, defer smooth normal,
This commit is contained in:
parent
051553fa58
commit
9aa2aff5a3
72 changed files with 733 additions and 434 deletions
|
@ -192,6 +192,7 @@
|
||||||
{"name":"biterator","order":2,"path":"folders/VCT/biterator.yy",},
|
{"name":"biterator","order":2,"path":"folders/VCT/biterator.yy",},
|
||||||
{"name":"widget","order":3,"path":"folders/VCT/widget.yy",},
|
{"name":"widget","order":3,"path":"folders/VCT/widget.yy",},
|
||||||
{"name":"widgets","order":5,"path":"folders/widgets.yy",},
|
{"name":"widgets","order":5,"path":"folders/widgets.yy",},
|
||||||
|
{"name":"d3d compose","order":17,"path":"folders/nodes/data/3D/d3d compose.yy",},
|
||||||
],
|
],
|
||||||
"ResourceOrderSettings": [
|
"ResourceOrderSettings": [
|
||||||
{"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",},
|
{"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",},
|
||||||
|
@ -220,7 +221,7 @@
|
||||||
{"name":"s_node_text_trim","order":7,"path":"sprites/s_node_text_trim/s_node_text_trim.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",},
|
{"name":"s_node_pb_fx_shading","order":3,"path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},
|
||||||
{"name":"sh_noise_grid_hex","order":2,"path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",},
|
{"name":"sh_noise_grid_hex","order":2,"path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",},
|
||||||
{"name":"node_3d_obj","order":4,"path":"scripts/node_3d_obj/node_3d_obj.yy",},
|
{"name":"__node_3d_obj","order":4,"path":"scripts/__node_3d_obj/__node_3d_obj.yy",},
|
||||||
{"name":"__path","order":1,"path":"scripts/__path/__path.yy",},
|
{"name":"__path","order":1,"path":"scripts/__path/__path.yy",},
|
||||||
{"name":"draw_text_path","order":25,"path":"scripts/draw_text_path/draw_text_path.yy",},
|
{"name":"draw_text_path","order":25,"path":"scripts/draw_text_path/draw_text_path.yy",},
|
||||||
{"name":"sh_brush_outline","order":7,"path":"shaders/sh_brush_outline/sh_brush_outline.yy",},
|
{"name":"sh_brush_outline","order":7,"path":"shaders/sh_brush_outline/sh_brush_outline.yy",},
|
||||||
|
@ -318,7 +319,7 @@
|
||||||
{"name":"sh_blend_max","order":8,"path":"shaders/sh_blend_max/sh_blend_max.yy",},
|
{"name":"sh_blend_max","order":8,"path":"shaders/sh_blend_max/sh_blend_max.yy",},
|
||||||
{"name":"s_node_color_out","order":6,"path":"sprites/s_node_color_out/s_node_color_out.yy",},
|
{"name":"s_node_color_out","order":6,"path":"sprites/s_node_color_out/s_node_color_out.yy",},
|
||||||
{"name":"bbmod_lerp_delta_time","order":1,"path":"scripts/bbmod_lerp_delta_time/bbmod_lerp_delta_time.yy",},
|
{"name":"bbmod_lerp_delta_time","order":1,"path":"scripts/bbmod_lerp_delta_time/bbmod_lerp_delta_time.yy",},
|
||||||
{"name":"_3D","order":8,"path":"scripts/_3D/_3D.yy",},
|
{"name":"__3D","order":8,"path":"scripts/__3D/__3D.yy",},
|
||||||
{"name":"node_vector_cross2D","order":11,"path":"scripts/node_vector_cross2D/node_vector_cross2D.yy",},
|
{"name":"node_vector_cross2D","order":11,"path":"scripts/node_vector_cross2D/node_vector_cross2D.yy",},
|
||||||
{"name":"sh_corner_erode","order":48,"path":"shaders/sh_corner_erode/sh_corner_erode.yy",},
|
{"name":"sh_corner_erode","order":48,"path":"shaders/sh_corner_erode/sh_corner_erode.yy",},
|
||||||
{"name":"node_outline","order":11,"path":"scripts/node_outline/node_outline.yy",},
|
{"name":"node_outline","order":11,"path":"scripts/node_outline/node_outline.yy",},
|
||||||
|
@ -446,7 +447,7 @@
|
||||||
{"name":"s_node_crop","order":2,"path":"sprites/s_node_crop/s_node_crop.yy",},
|
{"name":"s_node_crop","order":2,"path":"sprites/s_node_crop/s_node_crop.yy",},
|
||||||
{"name":"__VFX","order":2,"path":"scripts/__VFX/__VFX.yy",},
|
{"name":"__VFX","order":2,"path":"scripts/__VFX/__VFX.yy",},
|
||||||
{"name":"s_menu_black","order":2,"path":"sprites/s_menu_black/s_menu_black.yy",},
|
{"name":"s_menu_black","order":2,"path":"sprites/s_menu_black/s_menu_black.yy",},
|
||||||
{"name":"node_3d_export","order":2,"path":"scripts/node_3d_export/node_3d_export.yy",},
|
{"name":"__node_3d_export","order":2,"path":"scripts/__node_3d_export/__node_3d_export.yy",},
|
||||||
{"name":"s_node_vfx_override","order":11,"path":"sprites/s_node_vfx_override/s_node_vfx_override.yy",},
|
{"name":"s_node_vfx_override","order":11,"path":"sprites/s_node_vfx_override/s_node_vfx_override.yy",},
|
||||||
{"name":"rotatorRange","order":12,"path":"scripts/rotatorRange/rotatorRange.yy",},
|
{"name":"rotatorRange","order":12,"path":"scripts/rotatorRange/rotatorRange.yy",},
|
||||||
{"name":"node_3d_mesh_cone","order":6,"path":"scripts/node_3d_mesh_cone/node_3d_mesh_cone.yy",},
|
{"name":"node_3d_mesh_cone","order":6,"path":"scripts/node_3d_mesh_cone/node_3d_mesh_cone.yy",},
|
||||||
|
@ -677,7 +678,7 @@
|
||||||
{"name":"panel_addon","order":5,"path":"scripts/panel_addon/panel_addon.yy",},
|
{"name":"panel_addon","order":5,"path":"scripts/panel_addon/panel_addon.yy",},
|
||||||
{"name":"s_node_text_splice","order":6,"path":"sprites/s_node_text_splice/s_node_text_splice.yy",},
|
{"name":"s_node_text_splice","order":6,"path":"sprites/s_node_text_splice/s_node_text_splice.yy",},
|
||||||
{"name":"__atlas","order":6,"path":"scripts/__atlas/__atlas.yy",},
|
{"name":"__atlas","order":6,"path":"scripts/__atlas/__atlas.yy",},
|
||||||
{"name":"node_3d_transform","order":7,"path":"scripts/node_3d_transform/node_3d_transform.yy",},
|
{"name":"__node_3d_transform","order":7,"path":"scripts/__node_3d_transform/__node_3d_transform.yy",},
|
||||||
{"name":"__d3d_gizmo","order":2,"path":"scripts/__d3d_gizmo/__d3d_gizmo.yy",},
|
{"name":"__d3d_gizmo","order":2,"path":"scripts/__d3d_gizmo/__d3d_gizmo.yy",},
|
||||||
{"name":"sh_draw_single_channel","order":3,"path":"shaders/sh_draw_single_channel/sh_draw_single_channel.yy",},
|
{"name":"sh_draw_single_channel","order":3,"path":"shaders/sh_draw_single_channel/sh_draw_single_channel.yy",},
|
||||||
{"name":"draw_sprite_ext_override","order":9,"path":"scripts/draw_sprite_ext_override/draw_sprite_ext_override.yy",},
|
{"name":"draw_sprite_ext_override","order":9,"path":"scripts/draw_sprite_ext_override/draw_sprite_ext_override.yy",},
|
||||||
|
@ -792,6 +793,7 @@
|
||||||
{"name":"s_node_array_remove","order":7,"path":"sprites/s_node_array_remove/s_node_array_remove.yy",},
|
{"name":"s_node_array_remove","order":7,"path":"sprites/s_node_array_remove/s_node_array_remove.yy",},
|
||||||
{"name":"s_node_zigzag","order":18,"path":"sprites/s_node_zigzag/s_node_zigzag.yy",},
|
{"name":"s_node_zigzag","order":18,"path":"sprites/s_node_zigzag/s_node_zigzag.yy",},
|
||||||
{"name":"s_key_display_mouse","order":1,"path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",},
|
{"name":"s_key_display_mouse","order":1,"path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",},
|
||||||
|
{"name":"node_3d_repeat","order":1,"path":"scripts/node_3d_repeat/node_3d_repeat.yy",},
|
||||||
{"name":"node_pb_fx_add","order":6,"path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",},
|
{"name":"node_pb_fx_add","order":6,"path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",},
|
||||||
{"name":"s_node_csv_file_write","order":8,"path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},
|
{"name":"s_node_csv_file_write","order":8,"path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},
|
||||||
{"name":"s_node_csv_parse","order":15,"path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",},
|
{"name":"s_node_csv_parse","order":15,"path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",},
|
||||||
|
@ -849,7 +851,6 @@
|
||||||
{"name":"node_particle","order":14,"path":"scripts/node_particle/node_particle.yy",},
|
{"name":"node_particle","order":14,"path":"scripts/node_particle/node_particle.yy",},
|
||||||
{"name":"node_pb_box_contract","order":8,"path":"scripts/node_pb_box_contract/node_pb_box_contract.yy",},
|
{"name":"node_pb_box_contract","order":8,"path":"scripts/node_pb_box_contract/node_pb_box_contract.yy",},
|
||||||
{"name":"histogram_drawer","order":2,"path":"scripts/histogram_drawer/histogram_drawer.yy",},
|
{"name":"histogram_drawer","order":2,"path":"scripts/histogram_drawer/histogram_drawer.yy",},
|
||||||
{"name":"node_3d_scene","order":15,"path":"scripts/node_3d_scene/node_3d_scene.yy",},
|
|
||||||
{"name":"sh_color_picker_side_value","order":3,"path":"shaders/sh_color_picker_side_value/sh_color_picker_side_value.yy",},
|
{"name":"sh_color_picker_side_value","order":3,"path":"shaders/sh_color_picker_side_value/sh_color_picker_side_value.yy",},
|
||||||
{"name":"node_array_range","order":12,"path":"scripts/node_array_range/node_array_range.yy",},
|
{"name":"node_array_range","order":12,"path":"scripts/node_array_range/node_array_range.yy",},
|
||||||
{"name":"node_animation_control","order":11,"path":"scripts/node_animation_control/node_animation_control.yy",},
|
{"name":"node_animation_control","order":11,"path":"scripts/node_animation_control/node_animation_control.yy",},
|
||||||
|
@ -887,7 +888,7 @@
|
||||||
{"name":"s_node_stack","order":37,"path":"sprites/s_node_stack/s_node_stack.yy",},
|
{"name":"s_node_stack","order":37,"path":"sprites/s_node_stack/s_node_stack.yy",},
|
||||||
{"name":"s_fade_up","order":3,"path":"sprites/s_fade_up/s_fade_up.yy",},
|
{"name":"s_fade_up","order":3,"path":"sprites/s_fade_up/s_fade_up.yy",},
|
||||||
{"name":"panel_globalvar","order":2,"path":"scripts/panel_globalvar/panel_globalvar.yy",},
|
{"name":"panel_globalvar","order":2,"path":"scripts/panel_globalvar/panel_globalvar.yy",},
|
||||||
{"name":"node_3d_render","order":5,"path":"scripts/node_3d_render/node_3d_render.yy",},
|
{"name":"__node_3d_render","order":5,"path":"scripts/__node_3d_render/__node_3d_render.yy",},
|
||||||
{"name":"node_guide","order":10,"path":"scripts/node_guide/node_guide.yy",},
|
{"name":"node_guide","order":10,"path":"scripts/node_guide/node_guide.yy",},
|
||||||
{"name":"fd_rectangle_get_velocity_surface","order":24,"path":"scripts/fd_rectangle_get_velocity_surface/fd_rectangle_get_velocity_surface.yy",},
|
{"name":"fd_rectangle_get_velocity_surface","order":24,"path":"scripts/fd_rectangle_get_velocity_surface/fd_rectangle_get_velocity_surface.yy",},
|
||||||
{"name":"s_node_text_char_get","order":2,"path":"sprites/s_node_text_char_get/s_node_text_char_get.yy",},
|
{"name":"s_node_text_char_get","order":2,"path":"sprites/s_node_text_char_get/s_node_text_char_get.yy",},
|
||||||
|
@ -895,6 +896,7 @@
|
||||||
{"name":"node_timeline_preview","order":2,"path":"scripts/node_timeline_preview/node_timeline_preview.yy",},
|
{"name":"node_timeline_preview","order":2,"path":"scripts/node_timeline_preview/node_timeline_preview.yy",},
|
||||||
{"name":"__polygon","order":2,"path":"scripts/__polygon/__polygon.yy",},
|
{"name":"__polygon","order":2,"path":"scripts/__polygon/__polygon.yy",},
|
||||||
{"name":"o_dialog_fontscrollbox","order":4,"path":"objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy",},
|
{"name":"o_dialog_fontscrollbox","order":4,"path":"objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy",},
|
||||||
|
{"name":"sh_d3d_normal_blur","order":25,"path":"shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.yy",},
|
||||||
{"name":"d3d_vertex","order":10,"path":"scripts/d3d_vertex/d3d_vertex.yy",},
|
{"name":"d3d_vertex","order":10,"path":"scripts/d3d_vertex/d3d_vertex.yy",},
|
||||||
{"name":"s_node_vfx_output","order":11,"path":"sprites/s_node_vfx_output/s_node_vfx_output.yy",},
|
{"name":"s_node_vfx_output","order":11,"path":"sprites/s_node_vfx_output/s_node_vfx_output.yy",},
|
||||||
{"name":"sh_greyscale","order":13,"path":"shaders/sh_greyscale/sh_greyscale.yy",},
|
{"name":"sh_greyscale","order":13,"path":"shaders/sh_greyscale/sh_greyscale.yy",},
|
||||||
|
@ -1183,7 +1185,7 @@
|
||||||
{"name":"fd_rectangle_set_velocity_dissipation_type","order":13,"path":"scripts/fd_rectangle_set_velocity_dissipation_type/fd_rectangle_set_velocity_dissipation_type.yy",},
|
{"name":"fd_rectangle_set_velocity_dissipation_type","order":13,"path":"scripts/fd_rectangle_set_velocity_dissipation_type/fd_rectangle_set_velocity_dissipation_type.yy",},
|
||||||
{"name":"node_color_replacement","order":3,"path":"scripts/node_color_replacement/node_color_replacement.yy",},
|
{"name":"node_color_replacement","order":3,"path":"scripts/node_color_replacement/node_color_replacement.yy",},
|
||||||
{"name":"path_reader","order":5,"path":"scripts/path_reader/path_reader.yy",},
|
{"name":"path_reader","order":5,"path":"scripts/path_reader/path_reader.yy",},
|
||||||
{"name":"node_3d_repeat","order":6,"path":"scripts/node_3d_repeat/node_3d_repeat.yy",},
|
{"name":"__node_3d_repeat","order":6,"path":"scripts/__node_3d_repeat/__node_3d_repeat.yy",},
|
||||||
{"name":"point_direction_positive","order":4,"path":"scripts/point_direction_positive/point_direction_positive.yy",},
|
{"name":"point_direction_positive","order":4,"path":"scripts/point_direction_positive/point_direction_positive.yy",},
|
||||||
{"name":"s_node_fluidSim_add_fluid","order":3,"path":"sprites/s_node_fluidSim_add_fluid/s_node_fluidSim_add_fluid.yy",},
|
{"name":"s_node_fluidSim_add_fluid","order":3,"path":"sprites/s_node_fluidSim_add_fluid/s_node_fluidSim_add_fluid.yy",},
|
||||||
{"name":"sh_replace_color","order":5,"path":"shaders/sh_replace_color/sh_replace_color.yy",},
|
{"name":"sh_replace_color","order":5,"path":"shaders/sh_replace_color/sh_replace_color.yy",},
|
||||||
|
@ -1209,7 +1211,7 @@
|
||||||
{"name":"toggleGroup","order":31,"path":"scripts/toggleGroup/toggleGroup.yy",},
|
{"name":"toggleGroup","order":31,"path":"scripts/toggleGroup/toggleGroup.yy",},
|
||||||
{"name":"mouse_input","order":1,"path":"scripts/mouse_input/mouse_input.yy",},
|
{"name":"mouse_input","order":1,"path":"scripts/mouse_input/mouse_input.yy",},
|
||||||
{"name":"string_cut","order":2,"path":"scripts/string_cut/string_cut.yy",},
|
{"name":"string_cut","order":2,"path":"scripts/string_cut/string_cut.yy",},
|
||||||
{"name":"node_3d_prim_cylinder","order":2,"path":"scripts/node_3d_prim_cylinder/node_3d_prim_cylinder.yy",},
|
{"name":"__node_3d_prim_cylinder","order":2,"path":"scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy",},
|
||||||
{"name":"s_discord","order":7,"path":"sprites/s_discord/s_discord.yy",},
|
{"name":"s_discord","order":7,"path":"sprites/s_discord/s_discord.yy",},
|
||||||
{"name":"panel_nodes","order":2,"path":"scripts/panel_nodes/panel_nodes.yy",},
|
{"name":"panel_nodes","order":2,"path":"scripts/panel_nodes/panel_nodes.yy",},
|
||||||
{"name":"sh_gradient_points","order":19,"path":"shaders/sh_gradient_points/sh_gradient_points.yy",},
|
{"name":"sh_gradient_points","order":19,"path":"shaders/sh_gradient_points/sh_gradient_points.yy",},
|
||||||
|
@ -1242,10 +1244,10 @@
|
||||||
{"name":"node_path_trim","order":6,"path":"scripts/node_path_trim/node_path_trim.yy",},
|
{"name":"node_path_trim","order":6,"path":"scripts/node_path_trim/node_path_trim.yy",},
|
||||||
{"name":"s_node_rigidSim_deactivate","order":7,"path":"sprites/s_node_rigidSim_deactivate/s_node_rigidSim_deactivate.yy",},
|
{"name":"s_node_rigidSim_deactivate","order":7,"path":"sprites/s_node_rigidSim_deactivate/s_node_rigidSim_deactivate.yy",},
|
||||||
{"name":"sh_blend_contrast","order":16,"path":"shaders/sh_blend_contrast/sh_blend_contrast.yy",},
|
{"name":"sh_blend_contrast","order":16,"path":"shaders/sh_blend_contrast/sh_blend_contrast.yy",},
|
||||||
{"name":"node_3d_prim_cube","order":1,"path":"scripts/node_3d_prim_cube/node_3d_prim_cube.yy",},
|
{"name":"__node_3d_prim_cube","order":1,"path":"scripts/__node_3d_prim_cube/__node_3d_prim_cube.yy",},
|
||||||
{"name":"node_surface_from_buffer","order":3,"path":"scripts/node_surface_from_buffer/node_surface_from_buffer.yy",},
|
{"name":"node_surface_from_buffer","order":3,"path":"scripts/node_surface_from_buffer/node_surface_from_buffer.yy",},
|
||||||
{"name":"s_node_fluidSim_add_collider","order":1,"path":"sprites/s_node_fluidSim_add_collider/s_node_fluidSim_add_collider.yy",},
|
{"name":"s_node_fluidSim_add_collider","order":1,"path":"sprites/s_node_fluidSim_add_collider/s_node_fluidSim_add_collider.yy",},
|
||||||
{"name":"node_3d_plane","order":4,"path":"scripts/node_3d_plane/node_3d_plane.yy",},
|
{"name":"__node_3d_plane","order":4,"path":"scripts/__node_3d_plane/__node_3d_plane.yy",},
|
||||||
{"name":"node_display_text","order":3,"path":"scripts/node_display_text/node_display_text.yy",},
|
{"name":"node_display_text","order":3,"path":"scripts/node_display_text/node_display_text.yy",},
|
||||||
{"name":"s_biterator_b_shape_press","order":4,"path":"sprites/s_biterator_b_shape_press/s_biterator_b_shape_press.yy",},
|
{"name":"s_biterator_b_shape_press","order":4,"path":"sprites/s_biterator_b_shape_press/s_biterator_b_shape_press.yy",},
|
||||||
{"name":"node_pb_layer","order":1,"path":"scripts/node_pb_layer/node_pb_layer.yy",},
|
{"name":"node_pb_layer","order":1,"path":"scripts/node_pb_layer/node_pb_layer.yy",},
|
||||||
|
@ -1264,7 +1266,7 @@
|
||||||
{"name":"s_node_pb_fx_interesct","order":6,"path":"sprites/s_node_pb_fx_interesct/s_node_pb_fx_interesct.yy",},
|
{"name":"s_node_pb_fx_interesct","order":6,"path":"sprites/s_node_pb_fx_interesct/s_node_pb_fx_interesct.yy",},
|
||||||
{"name":"node_path_eval","order":4,"path":"scripts/node_path_eval/node_path_eval.yy",},
|
{"name":"node_path_eval","order":4,"path":"scripts/node_path_eval/node_path_eval.yy",},
|
||||||
{"name":"sh_3d_depth","order":6,"path":"shaders/sh_3d_depth/sh_3d_depth.yy",},
|
{"name":"sh_3d_depth","order":6,"path":"shaders/sh_3d_depth/sh_3d_depth.yy",},
|
||||||
{"name":"node_3d_displace","order":1,"path":"scripts/node_3d_displace/node_3d_displace.yy",},
|
{"name":"__node_3d_displace","order":1,"path":"scripts/__node_3d_displace/__node_3d_displace.yy",},
|
||||||
{"name":"node_vector_dot","order":9,"path":"scripts/node_vector_dot/node_vector_dot.yy",},
|
{"name":"node_vector_dot","order":9,"path":"scripts/node_vector_dot/node_vector_dot.yy",},
|
||||||
{"name":"node_path_map_area","order":1,"path":"scripts/node_path_map_area/node_path_map_area.yy",},
|
{"name":"node_path_map_area","order":1,"path":"scripts/node_path_map_area/node_path_map_area.yy",},
|
||||||
{"name":"node_3d_mesh_icosphere","order":5,"path":"scripts/node_3d_mesh_icosphere/node_3d_mesh_icosphere.yy",},
|
{"name":"node_3d_mesh_icosphere","order":5,"path":"scripts/node_3d_mesh_icosphere/node_3d_mesh_icosphere.yy",},
|
||||||
|
@ -1353,6 +1355,7 @@
|
||||||
{"name":"sh_blend_add","order":7,"path":"shaders/sh_blend_add/sh_blend_add.yy",},
|
{"name":"sh_blend_add","order":7,"path":"shaders/sh_blend_add/sh_blend_add.yy",},
|
||||||
{"name":"s_node_FFT","order":15,"path":"sprites/s_node_FFT/s_node_FFT.yy",},
|
{"name":"s_node_FFT","order":15,"path":"sprites/s_node_FFT/s_node_FFT.yy",},
|
||||||
{"name":"node_de_stray","order":1,"path":"scripts/node_de_stray/node_de_stray.yy",},
|
{"name":"node_de_stray","order":1,"path":"scripts/node_de_stray/node_de_stray.yy",},
|
||||||
|
{"name":"d3d_transformation","order":12,"path":"scripts/d3d_transformation/d3d_transformation.yy",},
|
||||||
{"name":"sh_channel_G","order":2,"path":"shaders/sh_channel_G/sh_channel_G.yy",},
|
{"name":"sh_channel_G","order":2,"path":"shaders/sh_channel_G/sh_channel_G.yy",},
|
||||||
{"name":"s_node_dilate","order":19,"path":"sprites/s_node_dilate/s_node_dilate.yy",},
|
{"name":"s_node_dilate","order":19,"path":"sprites/s_node_dilate/s_node_dilate.yy",},
|
||||||
{"name":"node_value","order":5,"path":"scripts/node_value/node_value.yy",},
|
{"name":"node_value","order":5,"path":"scripts/node_value/node_value.yy",},
|
||||||
|
@ -1443,7 +1446,7 @@
|
||||||
{"name":"node_pb_box_split","order":2,"path":"scripts/node_pb_box_split/node_pb_box_split.yy",},
|
{"name":"node_pb_box_split","order":2,"path":"scripts/node_pb_box_split/node_pb_box_split.yy",},
|
||||||
{"name":"s_node_output","order":7,"path":"sprites/s_node_output/s_node_output.yy",},
|
{"name":"s_node_output","order":7,"path":"sprites/s_node_output/s_node_output.yy",},
|
||||||
{"name":"sh_atlas","order":26,"path":"shaders/sh_atlas/sh_atlas.yy",},
|
{"name":"sh_atlas","order":26,"path":"shaders/sh_atlas/sh_atlas.yy",},
|
||||||
{"name":"node_3d_extrude","order":3,"path":"scripts/node_3d_extrude/node_3d_extrude.yy",},
|
{"name":"__node_3d_extrude","order":3,"path":"scripts/__node_3d_extrude/__node_3d_extrude.yy",},
|
||||||
{"name":"node_path_array","order":11,"path":"scripts/node_path_array/node_path_array.yy",},
|
{"name":"node_path_array","order":11,"path":"scripts/node_path_array/node_path_array.yy",},
|
||||||
{"name":"node_scale","order":8,"path":"scripts/node_scale/node_scale.yy",},
|
{"name":"node_scale","order":8,"path":"scripts/node_scale/node_scale.yy",},
|
||||||
{"name":"panel_array_sequence","order":3,"path":"scripts/panel_array_sequence/panel_array_sequence.yy",},
|
{"name":"panel_array_sequence","order":3,"path":"scripts/panel_array_sequence/panel_array_sequence.yy",},
|
||||||
|
@ -1499,7 +1502,7 @@
|
||||||
{"name":"draw_corner","order":19,"path":"scripts/draw_corner/draw_corner.yy",},
|
{"name":"draw_corner","order":19,"path":"scripts/draw_corner/draw_corner.yy",},
|
||||||
{"name":"o_dialog_preference","order":7,"path":"objects/o_dialog_preference/o_dialog_preference.yy",},
|
{"name":"o_dialog_preference","order":7,"path":"objects/o_dialog_preference/o_dialog_preference.yy",},
|
||||||
{"name":"node_wrap","order":2,"path":"scripts/node_wrap/node_wrap.yy",},
|
{"name":"node_wrap","order":2,"path":"scripts/node_wrap/node_wrap.yy",},
|
||||||
{"name":"node_3d_prim_sphere","order":3,"path":"scripts/node_3d_prim_sphere/node_3d_prim_sphere.yy",},
|
{"name":"__node_3d_prim_sphere","order":3,"path":"scripts/__node_3d_prim_sphere/__node_3d_prim_sphere.yy",},
|
||||||
{"name":"dialog_management","order":2,"path":"scripts/dialog_management/dialog_management.yy",},
|
{"name":"dialog_management","order":2,"path":"scripts/dialog_management/dialog_management.yy",},
|
||||||
{"name":"draw_shapes","order":10,"path":"scripts/draw_shapes/draw_shapes.yy",},
|
{"name":"draw_shapes","order":10,"path":"scripts/draw_shapes/draw_shapes.yy",},
|
||||||
{"name":"sh_surface_replace_fast_replace","order":3,"path":"shaders/sh_surface_replace_fast_replace/sh_surface_replace_fast_replace.yy",},
|
{"name":"sh_surface_replace_fast_replace","order":3,"path":"shaders/sh_surface_replace_fast_replace/sh_surface_replace_fast_replace.yy",},
|
||||||
|
|
|
@ -230,6 +230,7 @@
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"biterator","folderPath":"folders/VCT/biterator.yy",},
|
{"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":"widget","folderPath":"folders/VCT/widget.yy",},
|
||||||
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"widgets","folderPath":"folders/widgets.yy",},
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"widgets","folderPath":"folders/widgets.yy",},
|
||||||
|
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"d3d compose","folderPath":"folders/nodes/data/3D/d3d compose.yy",},
|
||||||
],
|
],
|
||||||
"IncludedFiles": [
|
"IncludedFiles": [
|
||||||
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",},
|
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",},
|
||||||
|
@ -739,7 +740,7 @@
|
||||||
{"id":{"name":"s_node_text_trim","path":"sprites/s_node_text_trim/s_node_text_trim.yy",},},
|
{"id":{"name":"s_node_text_trim","path":"sprites/s_node_text_trim/s_node_text_trim.yy",},},
|
||||||
{"id":{"name":"s_node_pb_fx_shading","path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},},
|
{"id":{"name":"s_node_pb_fx_shading","path":"sprites/s_node_pb_fx_shading/s_node_pb_fx_shading.yy",},},
|
||||||
{"id":{"name":"sh_noise_grid_hex","path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",},},
|
{"id":{"name":"sh_noise_grid_hex","path":"shaders/sh_noise_grid_hex/sh_noise_grid_hex.yy",},},
|
||||||
{"id":{"name":"node_3d_obj","path":"scripts/node_3d_obj/node_3d_obj.yy",},},
|
{"id":{"name":"__node_3d_obj","path":"scripts/__node_3d_obj/__node_3d_obj.yy",},},
|
||||||
{"id":{"name":"__path","path":"scripts/__path/__path.yy",},},
|
{"id":{"name":"__path","path":"scripts/__path/__path.yy",},},
|
||||||
{"id":{"name":"draw_text_path","path":"scripts/draw_text_path/draw_text_path.yy",},},
|
{"id":{"name":"draw_text_path","path":"scripts/draw_text_path/draw_text_path.yy",},},
|
||||||
{"id":{"name":"sh_brush_outline","path":"shaders/sh_brush_outline/sh_brush_outline.yy",},},
|
{"id":{"name":"sh_brush_outline","path":"shaders/sh_brush_outline/sh_brush_outline.yy",},},
|
||||||
|
@ -751,7 +752,7 @@
|
||||||
{"id":{"name":"node_pb_draw_roundrectangle","path":"scripts/node_pb_draw_roundrectangle/node_pb_draw_roundrectangle.yy",},},
|
{"id":{"name":"node_pb_draw_roundrectangle","path":"scripts/node_pb_draw_roundrectangle/node_pb_draw_roundrectangle.yy",},},
|
||||||
{"id":{"name":"draw_text_function","path":"scripts/draw_text_function/draw_text_function.yy",},},
|
{"id":{"name":"draw_text_function","path":"scripts/draw_text_function/draw_text_function.yy",},},
|
||||||
{"id":{"name":"o_dialog_file_name_collection","path":"objects/o_dialog_file_name_collection/o_dialog_file_name_collection.yy",},},
|
{"id":{"name":"o_dialog_file_name_collection","path":"objects/o_dialog_file_name_collection/o_dialog_file_name_collection.yy",},},
|
||||||
{"id":{"name":"node_3d_prim_cone","path":"scripts/node_3d_prim_cone/node_3d_prim_cone.yy",},},
|
{"id":{"name":"__node_3d_prim_cone","path":"scripts/__node_3d_prim_cone/__node_3d_prim_cone.yy",},},
|
||||||
{"id":{"name":"node_line","path":"scripts/node_line/node_line.yy",},},
|
{"id":{"name":"node_line","path":"scripts/node_line/node_line.yy",},},
|
||||||
{"id":{"name":"s_node_frame","path":"sprites/s_node_frame/s_node_frame.yy",},},
|
{"id":{"name":"s_node_frame","path":"sprites/s_node_frame/s_node_frame.yy",},},
|
||||||
{"id":{"name":"s_node_fluidSim_turbulence","path":"sprites/s_node_fluidSim_turbulence/s_node_fluidSim_turbulence.yy",},},
|
{"id":{"name":"s_node_fluidSim_turbulence","path":"sprites/s_node_fluidSim_turbulence/s_node_fluidSim_turbulence.yy",},},
|
||||||
|
@ -852,7 +853,7 @@
|
||||||
{"id":{"name":"sh_blend_max","path":"shaders/sh_blend_max/sh_blend_max.yy",},},
|
{"id":{"name":"sh_blend_max","path":"shaders/sh_blend_max/sh_blend_max.yy",},},
|
||||||
{"id":{"name":"s_node_color_out","path":"sprites/s_node_color_out/s_node_color_out.yy",},},
|
{"id":{"name":"s_node_color_out","path":"sprites/s_node_color_out/s_node_color_out.yy",},},
|
||||||
{"id":{"name":"bbmod_lerp_delta_time","path":"scripts/bbmod_lerp_delta_time/bbmod_lerp_delta_time.yy",},},
|
{"id":{"name":"bbmod_lerp_delta_time","path":"scripts/bbmod_lerp_delta_time/bbmod_lerp_delta_time.yy",},},
|
||||||
{"id":{"name":"_3D","path":"scripts/_3D/_3D.yy",},},
|
{"id":{"name":"__3D","path":"scripts/__3D/__3D.yy",},},
|
||||||
{"id":{"name":"node_vector_cross2D","path":"scripts/node_vector_cross2D/node_vector_cross2D.yy",},},
|
{"id":{"name":"node_vector_cross2D","path":"scripts/node_vector_cross2D/node_vector_cross2D.yy",},},
|
||||||
{"id":{"name":"sh_corner_erode","path":"shaders/sh_corner_erode/sh_corner_erode.yy",},},
|
{"id":{"name":"sh_corner_erode","path":"shaders/sh_corner_erode/sh_corner_erode.yy",},},
|
||||||
{"id":{"name":"__init_view","path":"scripts/__init_view/__init_view.yy",},},
|
{"id":{"name":"__init_view","path":"scripts/__init_view/__init_view.yy",},},
|
||||||
|
@ -997,7 +998,7 @@
|
||||||
{"id":{"name":"s_node_crop","path":"sprites/s_node_crop/s_node_crop.yy",},},
|
{"id":{"name":"s_node_crop","path":"sprites/s_node_crop/s_node_crop.yy",},},
|
||||||
{"id":{"name":"__VFX","path":"scripts/__VFX/__VFX.yy",},},
|
{"id":{"name":"__VFX","path":"scripts/__VFX/__VFX.yy",},},
|
||||||
{"id":{"name":"s_menu_black","path":"sprites/s_menu_black/s_menu_black.yy",},},
|
{"id":{"name":"s_menu_black","path":"sprites/s_menu_black/s_menu_black.yy",},},
|
||||||
{"id":{"name":"node_3d_export","path":"scripts/node_3d_export/node_3d_export.yy",},},
|
{"id":{"name":"__node_3d_export","path":"scripts/__node_3d_export/__node_3d_export.yy",},},
|
||||||
{"id":{"name":"sh_blend_multiply","path":"shaders/sh_blend_multiply/sh_blend_multiply.yy",},},
|
{"id":{"name":"sh_blend_multiply","path":"shaders/sh_blend_multiply/sh_blend_multiply.yy",},},
|
||||||
{"id":{"name":"node_bevel","path":"scripts/node_bevel/node_bevel.yy",},},
|
{"id":{"name":"node_bevel","path":"scripts/node_bevel/node_bevel.yy",},},
|
||||||
{"id":{"name":"s_node_vfx_override","path":"sprites/s_node_vfx_override/s_node_vfx_override.yy",},},
|
{"id":{"name":"s_node_vfx_override","path":"sprites/s_node_vfx_override/s_node_vfx_override.yy",},},
|
||||||
|
@ -1267,7 +1268,7 @@
|
||||||
{"id":{"name":"panel_addon","path":"scripts/panel_addon/panel_addon.yy",},},
|
{"id":{"name":"panel_addon","path":"scripts/panel_addon/panel_addon.yy",},},
|
||||||
{"id":{"name":"s_node_text_splice","path":"sprites/s_node_text_splice/s_node_text_splice.yy",},},
|
{"id":{"name":"s_node_text_splice","path":"sprites/s_node_text_splice/s_node_text_splice.yy",},},
|
||||||
{"id":{"name":"__atlas","path":"scripts/__atlas/__atlas.yy",},},
|
{"id":{"name":"__atlas","path":"scripts/__atlas/__atlas.yy",},},
|
||||||
{"id":{"name":"node_3d_transform","path":"scripts/node_3d_transform/node_3d_transform.yy",},},
|
{"id":{"name":"__node_3d_transform","path":"scripts/__node_3d_transform/__node_3d_transform.yy",},},
|
||||||
{"id":{"name":"__d3d_gizmo","path":"scripts/__d3d_gizmo/__d3d_gizmo.yy",},},
|
{"id":{"name":"__d3d_gizmo","path":"scripts/__d3d_gizmo/__d3d_gizmo.yy",},},
|
||||||
{"id":{"name":"sh_draw_single_channel","path":"shaders/sh_draw_single_channel/sh_draw_single_channel.yy",},},
|
{"id":{"name":"sh_draw_single_channel","path":"shaders/sh_draw_single_channel/sh_draw_single_channel.yy",},},
|
||||||
{"id":{"name":"draw_sprite_ext_override","path":"scripts/draw_sprite_ext_override/draw_sprite_ext_override.yy",},},
|
{"id":{"name":"draw_sprite_ext_override","path":"scripts/draw_sprite_ext_override/draw_sprite_ext_override.yy",},},
|
||||||
|
@ -1397,6 +1398,7 @@
|
||||||
{"id":{"name":"s_node_array_remove","path":"sprites/s_node_array_remove/s_node_array_remove.yy",},},
|
{"id":{"name":"s_node_array_remove","path":"sprites/s_node_array_remove/s_node_array_remove.yy",},},
|
||||||
{"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},},
|
{"id":{"name":"s_node_zigzag","path":"sprites/s_node_zigzag/s_node_zigzag.yy",},},
|
||||||
{"id":{"name":"s_key_display_mouse","path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",},},
|
{"id":{"name":"s_key_display_mouse","path":"sprites/s_key_display_mouse/s_key_display_mouse.yy",},},
|
||||||
|
{"id":{"name":"node_3d_repeat","path":"scripts/node_3d_repeat/node_3d_repeat.yy",},},
|
||||||
{"id":{"name":"node_pb_fx_add","path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",},},
|
{"id":{"name":"node_pb_fx_add","path":"scripts/node_pb_fx_add/node_pb_fx_add.yy",},},
|
||||||
{"id":{"name":"s_node_csv_file_write","path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},},
|
{"id":{"name":"s_node_csv_file_write","path":"sprites/s_node_csv_file_write/s_node_csv_file_write.yy",},},
|
||||||
{"id":{"name":"s_node_csv_parse","path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",},},
|
{"id":{"name":"s_node_csv_parse","path":"sprites/s_node_csv_parse/s_node_csv_parse.yy",},},
|
||||||
|
@ -1500,7 +1502,7 @@
|
||||||
{"id":{"name":"s_node_stack","path":"sprites/s_node_stack/s_node_stack.yy",},},
|
{"id":{"name":"s_node_stack","path":"sprites/s_node_stack/s_node_stack.yy",},},
|
||||||
{"id":{"name":"s_fade_up","path":"sprites/s_fade_up/s_fade_up.yy",},},
|
{"id":{"name":"s_fade_up","path":"sprites/s_fade_up/s_fade_up.yy",},},
|
||||||
{"id":{"name":"panel_globalvar","path":"scripts/panel_globalvar/panel_globalvar.yy",},},
|
{"id":{"name":"panel_globalvar","path":"scripts/panel_globalvar/panel_globalvar.yy",},},
|
||||||
{"id":{"name":"node_3d_render","path":"scripts/node_3d_render/node_3d_render.yy",},},
|
{"id":{"name":"__node_3d_render","path":"scripts/__node_3d_render/__node_3d_render.yy",},},
|
||||||
{"id":{"name":"node_guide","path":"scripts/node_guide/node_guide.yy",},},
|
{"id":{"name":"node_guide","path":"scripts/node_guide/node_guide.yy",},},
|
||||||
{"id":{"name":"fd_rectangle_get_velocity_surface","path":"scripts/fd_rectangle_get_velocity_surface/fd_rectangle_get_velocity_surface.yy",},},
|
{"id":{"name":"fd_rectangle_get_velocity_surface","path":"scripts/fd_rectangle_get_velocity_surface/fd_rectangle_get_velocity_surface.yy",},},
|
||||||
{"id":{"name":"s_node_text_char_get","path":"sprites/s_node_text_char_get/s_node_text_char_get.yy",},},
|
{"id":{"name":"s_node_text_char_get","path":"sprites/s_node_text_char_get/s_node_text_char_get.yy",},},
|
||||||
|
@ -1509,6 +1511,7 @@
|
||||||
{"id":{"name":"__polygon","path":"scripts/__polygon/__polygon.yy",},},
|
{"id":{"name":"__polygon","path":"scripts/__polygon/__polygon.yy",},},
|
||||||
{"id":{"name":"sh_morph_surface","path":"shaders/sh_morph_surface/sh_morph_surface.yy",},},
|
{"id":{"name":"sh_morph_surface","path":"shaders/sh_morph_surface/sh_morph_surface.yy",},},
|
||||||
{"id":{"name":"o_dialog_fontscrollbox","path":"objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy",},},
|
{"id":{"name":"o_dialog_fontscrollbox","path":"objects/o_dialog_fontscrollbox/o_dialog_fontscrollbox.yy",},},
|
||||||
|
{"id":{"name":"sh_d3d_normal_blur","path":"shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.yy",},},
|
||||||
{"id":{"name":"d3d_vertex","path":"scripts/d3d_vertex/d3d_vertex.yy",},},
|
{"id":{"name":"d3d_vertex","path":"scripts/d3d_vertex/d3d_vertex.yy",},},
|
||||||
{"id":{"name":"s_node_vfx_output","path":"sprites/s_node_vfx_output/s_node_vfx_output.yy",},},
|
{"id":{"name":"s_node_vfx_output","path":"sprites/s_node_vfx_output/s_node_vfx_output.yy",},},
|
||||||
{"id":{"name":"sh_greyscale","path":"shaders/sh_greyscale/sh_greyscale.yy",},},
|
{"id":{"name":"sh_greyscale","path":"shaders/sh_greyscale/sh_greyscale.yy",},},
|
||||||
|
@ -1836,7 +1839,7 @@
|
||||||
{"id":{"name":"fd_rectangle_set_velocity_dissipation_type","path":"scripts/fd_rectangle_set_velocity_dissipation_type/fd_rectangle_set_velocity_dissipation_type.yy",},},
|
{"id":{"name":"fd_rectangle_set_velocity_dissipation_type","path":"scripts/fd_rectangle_set_velocity_dissipation_type/fd_rectangle_set_velocity_dissipation_type.yy",},},
|
||||||
{"id":{"name":"node_color_replacement","path":"scripts/node_color_replacement/node_color_replacement.yy",},},
|
{"id":{"name":"node_color_replacement","path":"scripts/node_color_replacement/node_color_replacement.yy",},},
|
||||||
{"id":{"name":"path_reader","path":"scripts/path_reader/path_reader.yy",},},
|
{"id":{"name":"path_reader","path":"scripts/path_reader/path_reader.yy",},},
|
||||||
{"id":{"name":"node_3d_repeat","path":"scripts/node_3d_repeat/node_3d_repeat.yy",},},
|
{"id":{"name":"__node_3d_repeat","path":"scripts/__node_3d_repeat/__node_3d_repeat.yy",},},
|
||||||
{"id":{"name":"point_direction_positive","path":"scripts/point_direction_positive/point_direction_positive.yy",},},
|
{"id":{"name":"point_direction_positive","path":"scripts/point_direction_positive/point_direction_positive.yy",},},
|
||||||
{"id":{"name":"s_node_fluidSim_add_fluid","path":"sprites/s_node_fluidSim_add_fluid/s_node_fluidSim_add_fluid.yy",},},
|
{"id":{"name":"s_node_fluidSim_add_fluid","path":"sprites/s_node_fluidSim_add_fluid/s_node_fluidSim_add_fluid.yy",},},
|
||||||
{"id":{"name":"sh_replace_color","path":"shaders/sh_replace_color/sh_replace_color.yy",},},
|
{"id":{"name":"sh_replace_color","path":"shaders/sh_replace_color/sh_replace_color.yy",},},
|
||||||
|
@ -1866,7 +1869,7 @@
|
||||||
{"id":{"name":"toggleGroup","path":"scripts/toggleGroup/toggleGroup.yy",},},
|
{"id":{"name":"toggleGroup","path":"scripts/toggleGroup/toggleGroup.yy",},},
|
||||||
{"id":{"name":"mouse_input","path":"scripts/mouse_input/mouse_input.yy",},},
|
{"id":{"name":"mouse_input","path":"scripts/mouse_input/mouse_input.yy",},},
|
||||||
{"id":{"name":"string_cut","path":"scripts/string_cut/string_cut.yy",},},
|
{"id":{"name":"string_cut","path":"scripts/string_cut/string_cut.yy",},},
|
||||||
{"id":{"name":"node_3d_prim_cylinder","path":"scripts/node_3d_prim_cylinder/node_3d_prim_cylinder.yy",},},
|
{"id":{"name":"__node_3d_prim_cylinder","path":"scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy",},},
|
||||||
{"id":{"name":"s_discord","path":"sprites/s_discord/s_discord.yy",},},
|
{"id":{"name":"s_discord","path":"sprites/s_discord/s_discord.yy",},},
|
||||||
{"id":{"name":"panel_nodes","path":"scripts/panel_nodes/panel_nodes.yy",},},
|
{"id":{"name":"panel_nodes","path":"scripts/panel_nodes/panel_nodes.yy",},},
|
||||||
{"id":{"name":"sh_gradient_points","path":"shaders/sh_gradient_points/sh_gradient_points.yy",},},
|
{"id":{"name":"sh_gradient_points","path":"shaders/sh_gradient_points/sh_gradient_points.yy",},},
|
||||||
|
@ -1904,10 +1907,10 @@
|
||||||
{"id":{"name":"node_path_trim","path":"scripts/node_path_trim/node_path_trim.yy",},},
|
{"id":{"name":"node_path_trim","path":"scripts/node_path_trim/node_path_trim.yy",},},
|
||||||
{"id":{"name":"s_node_rigidSim_deactivate","path":"sprites/s_node_rigidSim_deactivate/s_node_rigidSim_deactivate.yy",},},
|
{"id":{"name":"s_node_rigidSim_deactivate","path":"sprites/s_node_rigidSim_deactivate/s_node_rigidSim_deactivate.yy",},},
|
||||||
{"id":{"name":"sh_blend_contrast","path":"shaders/sh_blend_contrast/sh_blend_contrast.yy",},},
|
{"id":{"name":"sh_blend_contrast","path":"shaders/sh_blend_contrast/sh_blend_contrast.yy",},},
|
||||||
{"id":{"name":"node_3d_prim_cube","path":"scripts/node_3d_prim_cube/node_3d_prim_cube.yy",},},
|
{"id":{"name":"__node_3d_prim_cube","path":"scripts/__node_3d_prim_cube/__node_3d_prim_cube.yy",},},
|
||||||
{"id":{"name":"node_surface_from_buffer","path":"scripts/node_surface_from_buffer/node_surface_from_buffer.yy",},},
|
{"id":{"name":"node_surface_from_buffer","path":"scripts/node_surface_from_buffer/node_surface_from_buffer.yy",},},
|
||||||
{"id":{"name":"s_node_fluidSim_add_collider","path":"sprites/s_node_fluidSim_add_collider/s_node_fluidSim_add_collider.yy",},},
|
{"id":{"name":"s_node_fluidSim_add_collider","path":"sprites/s_node_fluidSim_add_collider/s_node_fluidSim_add_collider.yy",},},
|
||||||
{"id":{"name":"node_3d_plane","path":"scripts/node_3d_plane/node_3d_plane.yy",},},
|
{"id":{"name":"__node_3d_plane","path":"scripts/__node_3d_plane/__node_3d_plane.yy",},},
|
||||||
{"id":{"name":"node_display_text","path":"scripts/node_display_text/node_display_text.yy",},},
|
{"id":{"name":"node_display_text","path":"scripts/node_display_text/node_display_text.yy",},},
|
||||||
{"id":{"name":"s_kenney","path":"sprites/s_kenney/s_kenney.yy",},},
|
{"id":{"name":"s_kenney","path":"sprites/s_kenney/s_kenney.yy",},},
|
||||||
{"id":{"name":"s_biterator_b_shape_press","path":"sprites/s_biterator_b_shape_press/s_biterator_b_shape_press.yy",},},
|
{"id":{"name":"s_biterator_b_shape_press","path":"sprites/s_biterator_b_shape_press/s_biterator_b_shape_press.yy",},},
|
||||||
|
@ -1932,7 +1935,7 @@
|
||||||
{"id":{"name":"s_node_pb_fx_interesct","path":"sprites/s_node_pb_fx_interesct/s_node_pb_fx_interesct.yy",},},
|
{"id":{"name":"s_node_pb_fx_interesct","path":"sprites/s_node_pb_fx_interesct/s_node_pb_fx_interesct.yy",},},
|
||||||
{"id":{"name":"node_path_eval","path":"scripts/node_path_eval/node_path_eval.yy",},},
|
{"id":{"name":"node_path_eval","path":"scripts/node_path_eval/node_path_eval.yy",},},
|
||||||
{"id":{"name":"sh_3d_depth","path":"shaders/sh_3d_depth/sh_3d_depth.yy",},},
|
{"id":{"name":"sh_3d_depth","path":"shaders/sh_3d_depth/sh_3d_depth.yy",},},
|
||||||
{"id":{"name":"node_3d_displace","path":"scripts/node_3d_displace/node_3d_displace.yy",},},
|
{"id":{"name":"__node_3d_displace","path":"scripts/__node_3d_displace/__node_3d_displace.yy",},},
|
||||||
{"id":{"name":"node_vector_dot","path":"scripts/node_vector_dot/node_vector_dot.yy",},},
|
{"id":{"name":"node_vector_dot","path":"scripts/node_vector_dot/node_vector_dot.yy",},},
|
||||||
{"id":{"name":"o_dialog_arrayBox","path":"objects/o_dialog_arrayBox/o_dialog_arrayBox.yy",},},
|
{"id":{"name":"o_dialog_arrayBox","path":"objects/o_dialog_arrayBox/o_dialog_arrayBox.yy",},},
|
||||||
{"id":{"name":"node_path_transform","path":"scripts/node_path_transform/node_path_transform.yy",},},
|
{"id":{"name":"node_path_transform","path":"scripts/node_path_transform/node_path_transform.yy",},},
|
||||||
|
@ -2036,6 +2039,7 @@
|
||||||
{"id":{"name":"sh_blend_add","path":"shaders/sh_blend_add/sh_blend_add.yy",},},
|
{"id":{"name":"sh_blend_add","path":"shaders/sh_blend_add/sh_blend_add.yy",},},
|
||||||
{"id":{"name":"s_node_FFT","path":"sprites/s_node_FFT/s_node_FFT.yy",},},
|
{"id":{"name":"s_node_FFT","path":"sprites/s_node_FFT/s_node_FFT.yy",},},
|
||||||
{"id":{"name":"node_de_stray","path":"scripts/node_de_stray/node_de_stray.yy",},},
|
{"id":{"name":"node_de_stray","path":"scripts/node_de_stray/node_de_stray.yy",},},
|
||||||
|
{"id":{"name":"d3d_transformation","path":"scripts/d3d_transformation/d3d_transformation.yy",},},
|
||||||
{"id":{"name":"sh_channel_G","path":"shaders/sh_channel_G/sh_channel_G.yy",},},
|
{"id":{"name":"sh_channel_G","path":"shaders/sh_channel_G/sh_channel_G.yy",},},
|
||||||
{"id":{"name":"s_node_dilate","path":"sprites/s_node_dilate/s_node_dilate.yy",},},
|
{"id":{"name":"s_node_dilate","path":"sprites/s_node_dilate/s_node_dilate.yy",},},
|
||||||
{"id":{"name":"node_collection","path":"scripts/node_collection/node_collection.yy",},},
|
{"id":{"name":"node_collection","path":"scripts/node_collection/node_collection.yy",},},
|
||||||
|
@ -2092,7 +2096,7 @@
|
||||||
{"id":{"name":"s_node_feedback_output","path":"sprites/s_node_feedback_output/s_node_feedback_output.yy",},},
|
{"id":{"name":"s_node_feedback_output","path":"sprites/s_node_feedback_output/s_node_feedback_output.yy",},},
|
||||||
{"id":{"name":"sh_fd_repulse","path":"shaders/sh_fd_repulse/sh_fd_repulse.yy",},},
|
{"id":{"name":"sh_fd_repulse","path":"shaders/sh_fd_repulse/sh_fd_repulse.yy",},},
|
||||||
{"id":{"name":"sh_surface_replace_fast_find","path":"shaders/sh_surface_replace_fast_find/sh_surface_replace_fast_find.yy",},},
|
{"id":{"name":"sh_surface_replace_fast_find","path":"shaders/sh_surface_replace_fast_find/sh_surface_replace_fast_find.yy",},},
|
||||||
{"id":{"name":"node_3d_combine","path":"scripts/node_3d_combine/node_3d_combine.yy",},},
|
{"id":{"name":"__node_3d_combine","path":"scripts/__node_3d_combine/__node_3d_combine.yy",},},
|
||||||
{"id":{"name":"fd_rectangle_add_material","path":"scripts/fd_rectangle_add_material/fd_rectangle_add_material.yy",},},
|
{"id":{"name":"fd_rectangle_add_material","path":"scripts/fd_rectangle_add_material/fd_rectangle_add_material.yy",},},
|
||||||
{"id":{"name":"fd_rectangle_set_target","path":"scripts/fd_rectangle_set_target/fd_rectangle_set_target.yy",},},
|
{"id":{"name":"fd_rectangle_set_target","path":"scripts/fd_rectangle_set_target/fd_rectangle_set_target.yy",},},
|
||||||
{"id":{"name":"node_wav_file_read","path":"scripts/node_wav_file_read/node_wav_file_read.yy",},},
|
{"id":{"name":"node_wav_file_read","path":"scripts/node_wav_file_read/node_wav_file_read.yy",},},
|
||||||
|
@ -2138,7 +2142,7 @@
|
||||||
{"id":{"name":"node_pb_box_split","path":"scripts/node_pb_box_split/node_pb_box_split.yy",},},
|
{"id":{"name":"node_pb_box_split","path":"scripts/node_pb_box_split/node_pb_box_split.yy",},},
|
||||||
{"id":{"name":"s_node_output","path":"sprites/s_node_output/s_node_output.yy",},},
|
{"id":{"name":"s_node_output","path":"sprites/s_node_output/s_node_output.yy",},},
|
||||||
{"id":{"name":"sh_atlas","path":"shaders/sh_atlas/sh_atlas.yy",},},
|
{"id":{"name":"sh_atlas","path":"shaders/sh_atlas/sh_atlas.yy",},},
|
||||||
{"id":{"name":"node_3d_extrude","path":"scripts/node_3d_extrude/node_3d_extrude.yy",},},
|
{"id":{"name":"__node_3d_extrude","path":"scripts/__node_3d_extrude/__node_3d_extrude.yy",},},
|
||||||
{"id":{"name":"node_path_array","path":"scripts/node_path_array/node_path_array.yy",},},
|
{"id":{"name":"node_path_array","path":"scripts/node_path_array/node_path_array.yy",},},
|
||||||
{"id":{"name":"node_scale","path":"scripts/node_scale/node_scale.yy",},},
|
{"id":{"name":"node_scale","path":"scripts/node_scale/node_scale.yy",},},
|
||||||
{"id":{"name":"node_array_insert","path":"scripts/node_array_insert/node_array_insert.yy",},},
|
{"id":{"name":"node_array_insert","path":"scripts/node_array_insert/node_array_insert.yy",},},
|
||||||
|
@ -2204,7 +2208,7 @@
|
||||||
{"id":{"name":"o_dialog_preference","path":"objects/o_dialog_preference/o_dialog_preference.yy",},},
|
{"id":{"name":"o_dialog_preference","path":"objects/o_dialog_preference/o_dialog_preference.yy",},},
|
||||||
{"id":{"name":"node_pb_fx","path":"scripts/node_pb_fx/node_pb_fx.yy",},},
|
{"id":{"name":"node_pb_fx","path":"scripts/node_pb_fx/node_pb_fx.yy",},},
|
||||||
{"id":{"name":"node_wrap","path":"scripts/node_wrap/node_wrap.yy",},},
|
{"id":{"name":"node_wrap","path":"scripts/node_wrap/node_wrap.yy",},},
|
||||||
{"id":{"name":"node_3d_prim_sphere","path":"scripts/node_3d_prim_sphere/node_3d_prim_sphere.yy",},},
|
{"id":{"name":"__node_3d_prim_sphere","path":"scripts/__node_3d_prim_sphere/__node_3d_prim_sphere.yy",},},
|
||||||
{"id":{"name":"o_dialog_about","path":"objects/o_dialog_about/o_dialog_about.yy",},},
|
{"id":{"name":"o_dialog_about","path":"objects/o_dialog_about/o_dialog_about.yy",},},
|
||||||
{"id":{"name":"dialog_management","path":"scripts/dialog_management/dialog_management.yy",},},
|
{"id":{"name":"dialog_management","path":"scripts/dialog_management/dialog_management.yy",},},
|
||||||
{"id":{"name":"draw_shapes","path":"scripts/draw_shapes/draw_shapes.yy",},},
|
{"id":{"name":"draw_shapes","path":"scripts/draw_shapes/draw_shapes.yy",},},
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "_3D",
|
"name": "__3D",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
|
@ -57,12 +57,12 @@ function Node_3D(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constr
|
||||||
var _c = _prev.getCenter();
|
var _c = _prev.getCenter();
|
||||||
if(_b == noone || _c == noone) continue;
|
if(_b == noone || _c == noone) continue;
|
||||||
|
|
||||||
D3D_GLOBAL_PREVIEW.custom_transform.set(_c);
|
D3D_GLOBAL_PREVIEW.custom_transform.position.set(_c._multiply(-1));
|
||||||
|
|
||||||
var _sca = 1 / _b.getMaximumScale();
|
var _sca = 1 / _b.getMaximumScale();
|
||||||
D3D_GLOBAL_PREVIEW.custom_scale.set(_sca);
|
D3D_GLOBAL_PREVIEW.custom_transform.scale.set(_sca);
|
||||||
|
|
||||||
_prev.submitUI(D3D_GLOBAL_PREVIEW);
|
D3D_GLOBAL_PREVIEW.submitUI(_prev);
|
||||||
}
|
}
|
||||||
surface_reset_target();
|
surface_reset_target();
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Combine(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
function __Node_3D_Combine(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
||||||
name = "3D Combine";
|
name = "3D Combine";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
11
scripts/__node_3d_combine/__node_3d_combine.yy
Normal file
11
scripts/__node_3d_combine/__node_3d_combine.yy
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "__node_3d_combine",
|
||||||
|
"isCompatibility": false,
|
||||||
|
"isDnD": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "__legacy",
|
||||||
|
"path": "folders/nodes/data/3D/__legacy.yy",
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "3D Displace";
|
name = "3D Displace";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
11
scripts/__node_3d_displace/__node_3d_displace.yy
Normal file
11
scripts/__node_3d_displace/__node_3d_displace.yy
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "__node_3d_displace",
|
||||||
|
"isCompatibility": false,
|
||||||
|
"isDnD": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "__legacy",
|
||||||
|
"path": "folders/nodes/data/3D/__legacy.yy",
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
function __Node_3D_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
||||||
name = "3D Export";
|
name = "3D Export";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Vertex data", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3vertex, [] )
|
inputs[| 0] = nodeValue("Vertex data", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3vertex, [] )
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_displace",
|
"name": "__node_3d_export",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function __Node_3D_Extrude(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "3D Extrude";
|
name = "3D Extrude";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
|
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
|
11
scripts/__node_3d_extrude/__node_3d_extrude.yy
Normal file
11
scripts/__node_3d_extrude/__node_3d_extrude.yy
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "__node_3d_extrude",
|
||||||
|
"isCompatibility": false,
|
||||||
|
"isDnD": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "__legacy",
|
||||||
|
"path": "folders/nodes/data/3D/__legacy.yy",
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
function __Node_3D_Obj(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
||||||
name = "3D Object";
|
name = "3D Object";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
|
inputs[| 0] = nodeValue("Path", self, JUNCTION_CONNECT.input, VALUE_TYPE.path, "")
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_obj",
|
"name": "__node_3d_obj",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
|
@ -9,7 +9,7 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
inputs[| 1] = nodeValue("Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ])
|
inputs[| 1] = nodeValue("Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ])
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
.setDisplay(VALUE_DISPLAY.d3quarternion);
|
||||||
|
|
||||||
inputs[| 2] = nodeValue("Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
|
inputs[| 2] = nodeValue("Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
@ -63,7 +63,7 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
|
||||||
static drawGizmoPosition = function(index, object, _vpos, active, params, _mx, _my, _snx, _sny, _panel) { #region
|
static drawGizmoPosition = function(index, object, _vpos, active, params, _mx, _my, _snx, _sny, _panel) { #region
|
||||||
#region ---- main ----
|
#region ---- main ----
|
||||||
var _pos = inputs[| index].getValue(,,, true);
|
var _pos = inputs[| index].getValue(,,, true);
|
||||||
var _qrot = object == noone? new BBMOD_Quaternion() : object.rotation;
|
var _qrot = object == noone? new BBMOD_Quaternion() : object.transform.rotation;
|
||||||
var _qinv = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(1, 0, 0), 90);
|
var _qinv = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(1, 0, 0), 90);
|
||||||
|
|
||||||
var _camera = params.camera;
|
var _camera = params.camera;
|
||||||
|
@ -274,7 +274,7 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
|
||||||
static drawGizmoRotation = function(index, object, _vpos, active, params, _mx, _my, _snx, _sny, _panel) { #region
|
static drawGizmoRotation = function(index, object, _vpos, active, params, _mx, _my, _snx, _sny, _panel) { #region
|
||||||
#region ---- main ----
|
#region ---- main ----
|
||||||
var _rot = inputs[| index].getValue(,,, true);
|
var _rot = inputs[| index].getValue(,,, true);
|
||||||
var _qrot = object == noone? new BBMOD_Quaternion() : object.rotation;
|
var _qrot = object == noone? new BBMOD_Quaternion() : object.transform.rotation;
|
||||||
var _qinv = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(1, 0, 0), 90);
|
var _qinv = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(1, 0, 0), 90);
|
||||||
|
|
||||||
var _camera = params.camera;
|
var _camera = params.camera;
|
||||||
|
@ -384,7 +384,7 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
|
||||||
tool_attribute.context = 0;
|
tool_attribute.context = 0;
|
||||||
#region ---- main ----
|
#region ---- main ----
|
||||||
var _sca = inputs[| index].getValue(,,, true);
|
var _sca = inputs[| index].getValue(,,, true);
|
||||||
var _qrot = object == noone? new BBMOD_Quaternion() : object.rotation;
|
var _qrot = object == noone? new BBMOD_Quaternion() : object.transform.rotation;
|
||||||
var _qinv = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(1, 0, 0), 90);
|
var _qinv = new BBMOD_Quaternion().FromAxisAngle(new BBMOD_Vec3(1, 0, 0), 90);
|
||||||
|
|
||||||
var _camera = params.camera;
|
var _camera = params.camera;
|
||||||
|
@ -595,9 +595,9 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
|
||||||
var _rot = _data[1];
|
var _rot = _data[1];
|
||||||
var _sca = _data[2];
|
var _sca = _data[2];
|
||||||
|
|
||||||
object.position.set(_pos[0], _pos[1], _pos[2]);
|
object.transform.position.set(_pos[0], _pos[1], _pos[2]);
|
||||||
object.rotation.set(_rot[0], _rot[1], _rot[2], _rot[3]);
|
object.transform.rotation.set(_rot[0], _rot[1], _rot[2], _rot[3]);
|
||||||
object.scale.set(_sca[0], _sca[1], _sca[2]);
|
object.transform.scale.set(_sca[0], _sca[1], _sca[2]);
|
||||||
return object;
|
return object;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Plane(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function __Node_3D_Plane(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "3D Plane";
|
name = "3D Plane";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
|
inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0);
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_plane",
|
"name": "__node_3d_plane",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function __Node_3D_Cone(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "3D Cone";
|
name = "3D Cone";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_prim_cone",
|
"name": "__node_3d_prim_cone",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function __Node_3D_Cube(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "3D Cube";
|
name = "3D Cube";
|
||||||
dimension_index = 1;
|
dimension_index = 1;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_prim_cube",
|
"name": "__node_3d_prim_cube",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function __Node_3D_Cylinder(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "3D Cylinder";
|
name = "3D Cylinder";
|
||||||
dimension_index = 2;
|
dimension_index = 2;
|
||||||
|
|
11
scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy
Normal file
11
scripts/__node_3d_prim_cylinder/__node_3d_prim_cylinder.yy
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "__node_3d_prim_cylinder",
|
||||||
|
"isCompatibility": false,
|
||||||
|
"isDnD": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "primitive",
|
||||||
|
"path": "folders/nodes/data/3D/__legacy/primitive.yy",
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function __Node_3D_Sphere(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "3D Sphere";
|
name = "3D Sphere";
|
||||||
dimension_index = 1;
|
dimension_index = 1;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_prim_cylinder",
|
"name": "__node_3d_prim_sphere",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_combine",
|
"name": "__node_3d_render",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
207
scripts/__node_3d_repeat/__node_3d_repeat.gml
Normal file
207
scripts/__node_3d_repeat/__node_3d_repeat.gml
Normal file
|
@ -0,0 +1,207 @@
|
||||||
|
function __Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
||||||
|
name = "3D Repeat";
|
||||||
|
|
||||||
|
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
inputs[| 1] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
inputs[| 2] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
inputs[| 3] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
inputs[| 4] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector)
|
||||||
|
.setUnitRef( function() { return inputs[| 0].getValue(); }, VALUE_UNIT.reference);
|
||||||
|
|
||||||
|
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
inputs[| 6] = nodeValue("Light direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
|
||||||
|
.setDisplay(VALUE_DISPLAY.rotation);
|
||||||
|
|
||||||
|
inputs[| 7] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5)
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider, [-1, 1, 0.01]);
|
||||||
|
|
||||||
|
inputs[| 8] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]);
|
||||||
|
|
||||||
|
inputs[| 9] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white);
|
||||||
|
|
||||||
|
inputs[| 10] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey);
|
||||||
|
|
||||||
|
inputs[| 11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone)
|
||||||
|
.setVisible(true, true);
|
||||||
|
|
||||||
|
inputs[| 12] = nodeValue("Repeat", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1, "Amount of copies to be generated.");
|
||||||
|
|
||||||
|
inputs[| 13] = nodeValue("Repeat position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 0, 0 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
inputs[| 14] = nodeValue("Repeat rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
inputs[| 15] = nodeValue("Repeat scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
|
inputs[| 16] = nodeValue("Repeat pattern", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
|
||||||
|
.setDisplay(VALUE_DISPLAY.enum_button, [ "Linear", "Circular" ])
|
||||||
|
.rejectArray();
|
||||||
|
|
||||||
|
inputs[| 17] = nodeValue("Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
|
||||||
|
.setDisplay(VALUE_DISPLAY.enum_button, [ "x", "y", "z" ]);
|
||||||
|
|
||||||
|
inputs[| 18] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1);
|
||||||
|
|
||||||
|
inputs[| 19] = nodeValue("Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 360 ])
|
||||||
|
.setDisplay(VALUE_DISPLAY.rotation_range);
|
||||||
|
|
||||||
|
inputs[| 20] = nodeValue("Projection", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
|
||||||
|
.setDisplay(VALUE_DISPLAY.enum_button, [ "Orthographic", "Perspective" ])
|
||||||
|
.rejectArray();
|
||||||
|
|
||||||
|
inputs[| 21] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60)
|
||||||
|
.setDisplay(VALUE_DISPLAY.slider, [ 1, 90, 1 ]);
|
||||||
|
|
||||||
|
inputs[| 22] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true)
|
||||||
|
|
||||||
|
input_display_list = [ 11,
|
||||||
|
["Output", false], 0, 22,
|
||||||
|
["Object transform", true], 1, 2, 3,
|
||||||
|
["Camera", true], 20, 21, 4, 5,
|
||||||
|
["Light", true], 6, 7, 8, 9, 10,
|
||||||
|
["Repeat", false], 12, 16, 13, 14, 15, 17, 18, 19
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
|
||||||
|
|
||||||
|
outputs[| 1] = nodeValue("3D objects", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); });
|
||||||
|
|
||||||
|
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
|
||||||
|
|
||||||
|
output_display_list = [
|
||||||
|
0, 2, 1
|
||||||
|
]
|
||||||
|
|
||||||
|
_3d_node_init(1, /*Transform*/ 4, 5, 1, 2, 3);
|
||||||
|
|
||||||
|
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||||
|
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||||
|
}
|
||||||
|
|
||||||
|
static submit_vertex = function() {
|
||||||
|
var _lpos = inputs[| 1].getValue();
|
||||||
|
var _lrot = inputs[| 2].getValue();
|
||||||
|
var _lsca = inputs[| 3].getValue();
|
||||||
|
|
||||||
|
var sv = inputs[| 11].getValue();
|
||||||
|
if(sv == noone) return;
|
||||||
|
|
||||||
|
var _samo = inputs[| 12].getValue();
|
||||||
|
var _patt = inputs[| 16].getValue();
|
||||||
|
|
||||||
|
var _srot = inputs[| 14].getValue();
|
||||||
|
var _ssca = inputs[| 15].getValue();
|
||||||
|
|
||||||
|
var _spos = inputs[| 13].getValue();
|
||||||
|
|
||||||
|
var _raxs = inputs[| 17].getValue();
|
||||||
|
var _rrad = inputs[| 18].getValue();
|
||||||
|
var _rrot = inputs[| 19].getValue();
|
||||||
|
|
||||||
|
_3d_local_transform(_lpos, _lrot, _lsca);
|
||||||
|
for( var i = 0; i < _samo; i++ ) {
|
||||||
|
if(_patt == 0) {
|
||||||
|
matrix_stack_push(matrix_build( _spos[0] * i, _spos[1] * i, _spos[2] * i, 0, 0, 0, 1, 1, 1 ));
|
||||||
|
matrix_stack_push(matrix_build( 0, 0, 0, _srot[0] * i, _srot[1] * i, _srot[2] * i, 1, 1, 1 ));
|
||||||
|
matrix_stack_push(matrix_build( 0, 0, 0, 0, 0, 0, power(_ssca[0], i), power(_ssca[1], i), power(_ssca[2], i)));
|
||||||
|
} else if(_patt == 1) {
|
||||||
|
var angle = _rrot[0] + i * (_rrot[1] - _rrot[0]) / _samo;
|
||||||
|
var ldx = lengthdir_x(_rrad, angle);
|
||||||
|
var ldy = lengthdir_y(_rrad, angle);
|
||||||
|
|
||||||
|
switch(_raxs) {
|
||||||
|
case 0 : matrix_stack_push(matrix_build( 0, ldx, ldy, 0, 0, 0, 1, 1, 1 )); break;
|
||||||
|
case 1 : matrix_stack_push(matrix_build( ldy, 0, ldx, 0, 0, 0, 1, 1, 1 )); break;
|
||||||
|
case 2 : matrix_stack_push(matrix_build( ldx, ldy, 0, 0, 0, 0, 1, 1, 1 )); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
matrix_stack_push(matrix_build( 0, 0, 0, _srot[0] * i, _srot[1] * i, _srot[2] * i, 1, 1, 1));
|
||||||
|
matrix_stack_push(matrix_build( 0, 0, 0, 0, 0, 0, power(_ssca[0], i), power(_ssca[1], i), power(_ssca[2], i)));
|
||||||
|
}
|
||||||
|
|
||||||
|
matrix_set(matrix_world, matrix_stack_top());
|
||||||
|
|
||||||
|
if(is_array(sv)) {
|
||||||
|
var index = safe_mod(i, array_length(sv));
|
||||||
|
var _sv = sv[index];
|
||||||
|
_sv(index);
|
||||||
|
} else
|
||||||
|
sv();
|
||||||
|
|
||||||
|
matrix_stack_pop();
|
||||||
|
matrix_stack_pop();
|
||||||
|
matrix_stack_pop();
|
||||||
|
}
|
||||||
|
_3d_clear_local_transform();
|
||||||
|
}
|
||||||
|
|
||||||
|
static step = function() {
|
||||||
|
var _proj = inputs[| 20].getValue();
|
||||||
|
var _patt = inputs[| 16].getValue();
|
||||||
|
|
||||||
|
inputs[| 13].setVisible(_patt == 0);
|
||||||
|
|
||||||
|
inputs[| 17].setVisible(_patt == 1);
|
||||||
|
inputs[| 18].setVisible(_patt == 1);
|
||||||
|
inputs[| 19].setVisible(_patt == 1);
|
||||||
|
inputs[| 21].setVisible(_proj);
|
||||||
|
}
|
||||||
|
|
||||||
|
function update(frame = PROJECT.animator.current_frame) {
|
||||||
|
var _dim = inputs[| 0].getValue();
|
||||||
|
var _lpos = inputs[| 1].getValue();
|
||||||
|
var _lrot = inputs[| 2].getValue();
|
||||||
|
var _lsca = inputs[| 3].getValue();
|
||||||
|
|
||||||
|
var _pos = inputs[| 4].getValue();
|
||||||
|
var _sca = inputs[| 5].getValue();
|
||||||
|
|
||||||
|
var _ldir = inputs[| 6].getValue();
|
||||||
|
var _lhgt = inputs[| 7].getValue();
|
||||||
|
var _lint = inputs[| 8].getValue();
|
||||||
|
var _lclr = inputs[| 9].getValue();
|
||||||
|
var _aclr = inputs[| 10].getValue();
|
||||||
|
|
||||||
|
var _proj = inputs[| 20].getValue();
|
||||||
|
var _fov = inputs[| 21].getValue();
|
||||||
|
var _dimS = inputs[| 22].getValue();
|
||||||
|
|
||||||
|
var _patt = inputs[| 16].getValue();
|
||||||
|
|
||||||
|
for( var i = 0, n = array_length(output_display_list) - 1; i < n; i++ ) {
|
||||||
|
var ind = output_display_list[i];
|
||||||
|
var _outSurf = outputs[| ind].getValue();
|
||||||
|
|
||||||
|
var pass = "diff";
|
||||||
|
switch(ind) {
|
||||||
|
case 0 : pass = "diff" break;
|
||||||
|
case 2 : pass = "norm" break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _transform = new __3d_transform(_pos,, _sca, _lpos, _lrot, _lsca, false, _dimS );
|
||||||
|
var _light = new __3d_light(_ldir, _lhgt, _lint, _lclr, _aclr);
|
||||||
|
var _cam = new __3d_camera(_proj, _fov);
|
||||||
|
|
||||||
|
_outSurf = _3d_pre_setup(_outSurf, _dim, _transform, _light, _cam, pass);
|
||||||
|
submit_vertex();
|
||||||
|
_3d_post_setup();
|
||||||
|
|
||||||
|
outputs[| ind].setValue(_outSurf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_export",
|
"name": "__node_3d_repeat",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
|
@ -1,4 +1,4 @@
|
||||||
function Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
function __Node_3D_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||||
name = "3D Transform";
|
name = "3D Transform";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
11
scripts/__node_3d_transform/__node_3d_transform.yy
Normal file
11
scripts/__node_3d_transform/__node_3d_transform.yy
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "__node_3d_transform",
|
||||||
|
"isCompatibility": false,
|
||||||
|
"isDnD": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "__legacy",
|
||||||
|
"path": "folders/nodes/data/3D/__legacy.yy",
|
||||||
|
},
|
||||||
|
}
|
|
@ -30,9 +30,9 @@ function __3dCamera_object() : __3dObject() constructor {
|
||||||
render_type = pr_linelist;
|
render_type = pr_linelist;
|
||||||
VB = build();
|
VB = build();
|
||||||
|
|
||||||
position.set(-5, -5, 5);
|
transform.position.set(-5, -5, 5);
|
||||||
rotation.set(0, 30, 135);
|
transform.rotation.set(0, 30, 135);
|
||||||
scale.set(1, room_width / room_height, 1);
|
transform.scale.set(1, room_width / room_height, 1);
|
||||||
|
|
||||||
static submitSel = function(params = {}) {
|
static submitSel = function(params = {}) {
|
||||||
shader_set(sh_d3d_wireframe);
|
shader_set(sh_d3d_wireframe);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
function __3dGroup() constructor {
|
function __3dGroup() constructor {
|
||||||
objects = [];
|
objects = [];
|
||||||
|
transform = new __transform();
|
||||||
|
|
||||||
static getCenter = function() { #region
|
static getCenter = function() { #region
|
||||||
var _v = new __vec3();
|
var _v = new __vec3();
|
||||||
|
@ -12,7 +13,10 @@ function __3dGroup() constructor {
|
||||||
_i++;
|
_i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return _i == 0? new __vec3() : _v.multiply(1 / _i);
|
if(_i) _v = _v.multiply(1 / _i);
|
||||||
|
_v.add(transform.position);
|
||||||
|
|
||||||
|
return _v;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static getBBOX = function() { #region
|
static getBBOX = function() { #region
|
||||||
|
@ -27,6 +31,9 @@ function __3dGroup() constructor {
|
||||||
|
|
||||||
if(_c == noone || _b == noone) continue;
|
if(_c == noone || _b == noone) continue;
|
||||||
|
|
||||||
|
_b.first.multiplyVec(transform.scale);
|
||||||
|
_b.second.multiplyVec(transform.scale);
|
||||||
|
|
||||||
var _n0 = _b.first.add(_c);
|
var _n0 = _b.first.add(_c);
|
||||||
var _n1 = _b.second.add(_c);
|
var _n1 = _b.second.add(_c);
|
||||||
|
|
||||||
|
@ -43,14 +50,16 @@ function __3dGroup() constructor {
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static _submit = function(callback, scene = {}, shader = noone) { #region
|
static _submit = function(callback, scene = {}, shader = noone) { #region
|
||||||
|
transform.submitMatrix();
|
||||||
for( var i = 0, n = array_length(objects); i < n; i++ )
|
for( var i = 0, n = array_length(objects); i < n; i++ )
|
||||||
callback(objects[i], scene, shader);
|
callback(objects[i], scene, shader);
|
||||||
|
transform.clearMatrix();
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static submitShader = function(scene = {}) { _submit(function(_obj, scene) { _obj.submitShader(scene); }, scene); }
|
static submit = function(scene = {}, shader = noone) { _submit(function(_obj, scene, shader) { _obj.submit (scene, shader); }, scene, shader); }
|
||||||
static submitSel = function(scene = {}) { _submit(function(_obj, scene) { _obj.submitSel(scene); }, scene); }
|
static submitUI = function(scene = {}, shader = noone) { _submit(function(_obj, scene, shader) { _obj.submitUI (scene, shader); }, scene, shader); }
|
||||||
static submitUI = function(scene = {}, shader = noone) { _submit(function(_obj, scene, shader) { _obj.submitUI(scene, shader); }, scene, shader); }
|
static submitSel = function(scene = {}, shader = noone) { _submit(function(_obj, scene, shader) { _obj.submitSel (scene, shader); }, scene, shader); }
|
||||||
static submit = function(scene = {}, shader = noone) { _submit(function(_obj, scene, shader) { _obj.submit(scene, shader); }, scene, shader); }
|
static submitShader = function(scene = {}, shader = noone) { _submit(function(_obj, scene, shader) { _obj.submitShader (scene, shader); }, scene, shader); }
|
||||||
|
|
||||||
static map = function(callback, scene = {}) { #region
|
static map = function(callback, scene = {}) { #region
|
||||||
for( var i = 0, n = array_length(objects); i < n; i++ )
|
for( var i = 0, n = array_length(objects); i < n; i++ )
|
||||||
|
|
|
@ -48,19 +48,19 @@ function __3dICOSphere(radius = 0.5, level = 2, smt = false) : __3dObject() cons
|
||||||
var b = 1.0 / phi;
|
var b = 1.0 / phi;
|
||||||
|
|
||||||
icoverts = [
|
icoverts = [
|
||||||
new __vec3Sub( 1, 1, 1)._normalize(),
|
new __vec3Sub( 1, 1, 1)._normalize()._multiply(radius),
|
||||||
new __vec3Sub( 0, b, -a)._normalize(),
|
new __vec3Sub( 0, b, -a)._normalize()._multiply(radius),
|
||||||
new __vec3Sub( b, a, 0)._normalize(),
|
new __vec3Sub( b, a, 0)._normalize()._multiply(radius),
|
||||||
new __vec3Sub(-b, a, 0)._normalize(),
|
new __vec3Sub(-b, a, 0)._normalize()._multiply(radius),
|
||||||
new __vec3Sub( 0, b, a)._normalize(),
|
new __vec3Sub( 0, b, a)._normalize()._multiply(radius),
|
||||||
new __vec3Sub( 0, -b, a)._normalize(),
|
new __vec3Sub( 0, -b, a)._normalize()._multiply(radius),
|
||||||
new __vec3Sub(-a, 0, b)._normalize(),
|
new __vec3Sub(-a, 0, b)._normalize()._multiply(radius),
|
||||||
new __vec3Sub( 0, -b, -a)._normalize(),
|
new __vec3Sub( 0, -b, -a)._normalize()._multiply(radius),
|
||||||
new __vec3Sub( a, 0, -b)._normalize(),
|
new __vec3Sub( a, 0, -b)._normalize()._multiply(radius),
|
||||||
new __vec3Sub( a, 0, b)._normalize(),
|
new __vec3Sub( a, 0, b)._normalize()._multiply(radius),
|
||||||
new __vec3Sub(-a, 0, -b)._normalize(),
|
new __vec3Sub(-a, 0, -b)._normalize()._multiply(radius),
|
||||||
new __vec3Sub( b, -a, 0)._normalize(),
|
new __vec3Sub( b, -a, 0)._normalize()._multiply(radius),
|
||||||
new __vec3Sub(-b, -a, 0)._normalize(),
|
new __vec3Sub(-b, -a, 0)._normalize()._multiply(radius),
|
||||||
]
|
]
|
||||||
|
|
||||||
array_foreach(icoverts, function(vert) { vert.old = true; })
|
array_foreach(icoverts, function(vert) { vert.old = true; })
|
||||||
|
@ -140,7 +140,11 @@ function __3dICOSphere(radius = 0.5, level = 2, smt = false) : __3dObject() cons
|
||||||
var _v = _vertices[| i];
|
var _v = _vertices[| i];
|
||||||
var _n = _normals[| i];
|
var _n = _normals[| i];
|
||||||
|
|
||||||
vertex[0][i] = new __vertex(_v.x, _v.y, _v.z).setNormal(_n.x, _n.y, _n.z);
|
var _ha = point_direction(0, 0, _v.x, _v.y);
|
||||||
|
var _va = (point_direction(0, 0, _v.x, _v.z) + 90) % 360;
|
||||||
|
if(_va > 180) _va = 360 - _va;
|
||||||
|
|
||||||
|
vertex[0][i] = new __vertex(_v.x, _v.y, _v.z).setNormal(_n.x, _n.y, _n.z).setUV(_ha / 360, _va / 180);
|
||||||
}
|
}
|
||||||
|
|
||||||
ds_list_destroy(_vertices);
|
ds_list_destroy(_vertices);
|
||||||
|
|
|
@ -20,7 +20,7 @@ function __3dLight() : __3dObject() constructor {
|
||||||
static getCenter = function() { return noone; }
|
static getCenter = function() { return noone; }
|
||||||
static getBBOX = function() { return noone; }
|
static getBBOX = function() { return noone; }
|
||||||
|
|
||||||
static submit = function(params = {}, shader = noone) {}
|
static submit = function(scene = {}, shader = noone) {}
|
||||||
|
|
||||||
static setShadow = function(active, shadowMapSize, shadowMapScale = shadow_map_scale) { #region
|
static setShadow = function(active, shadowMapSize, shadowMapScale = shadow_map_scale) { #region
|
||||||
shadow_active = active;
|
shadow_active = active;
|
||||||
|
|
|
@ -6,7 +6,8 @@ function __3dLightDirectional() : __3dLight() constructor {
|
||||||
|
|
||||||
color = c_white;
|
color = c_white;
|
||||||
intensity = 1;
|
intensity = 1;
|
||||||
position.set(4, 0, 0);
|
transform.position.set(4, 0, 0);
|
||||||
|
transform.scale.set(0.6);
|
||||||
|
|
||||||
shadow_mapper = sh_d3d_shadow_depth;
|
shadow_mapper = sh_d3d_shadow_depth;
|
||||||
|
|
||||||
|
@ -19,19 +20,18 @@ function __3dLightDirectional() : __3dLight() constructor {
|
||||||
static submitShader = function(params = {}) { params.addLightDirectional(self); }
|
static submitShader = function(params = {}) { params.addLightDirectional(self); }
|
||||||
|
|
||||||
static preSubmitVertex = function(params = {}) { #region
|
static preSubmitVertex = function(params = {}) { #region
|
||||||
var _rot = new __rot3(0, 0, 0).lookAt(position, params.camera.position);
|
var _rot = new __rot3(0, 0, 0).lookAt(transform.position, params.camera.position);
|
||||||
|
|
||||||
var rot = matrix_build(0, 0, 0,
|
var rot = matrix_build(0, 0, 0,
|
||||||
_rot.x, _rot.y, _rot.z,
|
_rot.x, _rot.y, _rot.z,
|
||||||
1, 1, 1);
|
1, 1, 1);
|
||||||
var sca = matrix_build(0, 0, 0,
|
var sca = matrix_build(0, 0, 0,
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
0.6, 0.6, 0.6);
|
transform.scale.x, transform.scale.y, transform.scale.z);
|
||||||
var pos = matrix_build(position.x, position.y, position.z,
|
var pos = matrix_build(transform.position.x, transform.position.y, transform.position.z,
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
1, 1, 1);
|
1, 1, 1);
|
||||||
|
|
||||||
matrix_stack_clear();
|
|
||||||
matrix_stack_push(pos);
|
matrix_stack_push(pos);
|
||||||
matrix_stack_push(rot);
|
matrix_stack_push(rot);
|
||||||
|
|
||||||
|
@ -42,14 +42,17 @@ function __3dLightDirectional() : __3dLight() constructor {
|
||||||
matrix_set(matrix_world, matrix_stack_top());
|
matrix_set(matrix_world, matrix_stack_top());
|
||||||
vertex_submit(VB_UI[0], pr_linestrip, -1);
|
vertex_submit(VB_UI[0], pr_linestrip, -1);
|
||||||
|
|
||||||
matrix_stack_clear();
|
matrix_stack_pop();
|
||||||
|
matrix_stack_pop();
|
||||||
|
matrix_stack_pop();
|
||||||
|
|
||||||
matrix_set(matrix_world, matrix_build_identity());
|
matrix_set(matrix_world, matrix_build_identity());
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static shadowProjectBegin = function() { #region
|
static shadowProjectBegin = function() { #region
|
||||||
shadow_map = surface_verify(shadow_map, shadow_map_size, shadow_map_size, surface_r32float);
|
shadow_map = surface_verify(shadow_map, shadow_map_size, shadow_map_size, surface_r32float);
|
||||||
|
|
||||||
shadow_map_view = matrix_build_lookat(position.x, position.y, position.z, 0, 0, 0, 0, 0, -1);
|
shadow_map_view = matrix_build_lookat(transform.position.x, transform.position.y, transform.position.z, 0, 0, 0, 0, 0, -1);
|
||||||
shadow_map_proj = matrix_build_projection_ortho(shadow_map_scale, shadow_map_scale, .01, 100);
|
shadow_map_proj = matrix_build_projection_ortho(shadow_map_scale, shadow_map_scale, .01, 100);
|
||||||
|
|
||||||
surface_set_target(shadow_map);
|
surface_set_target(shadow_map);
|
||||||
|
|
|
@ -18,7 +18,7 @@ function __3dLightPoint() : __3dLight() constructor {
|
||||||
static submitShader = function(params = {}) { params.addLightPoint(self); }
|
static submitShader = function(params = {}) { params.addLightPoint(self); }
|
||||||
|
|
||||||
static preSubmitVertex = function(params = {}) { #region
|
static preSubmitVertex = function(params = {}) { #region
|
||||||
var _rot = new __rot3(0, 0, 0).lookAt(position, params.camera.position);
|
var _rot = new __rot3(0, 0, 0).lookAt(transform.position, params.camera.position);
|
||||||
|
|
||||||
var rot = matrix_build(0, 0, 0,
|
var rot = matrix_build(0, 0, 0,
|
||||||
_rot.x, _rot.y, _rot.z,
|
_rot.x, _rot.y, _rot.z,
|
||||||
|
@ -29,11 +29,10 @@ function __3dLightPoint() : __3dLight() constructor {
|
||||||
var ran = matrix_build(0, 0, 0,
|
var ran = matrix_build(0, 0, 0,
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
radius * 2, radius * 2, radius * 2);
|
radius * 2, radius * 2, radius * 2);
|
||||||
var pos = matrix_build(position.x, position.y, position.z,
|
var pos = matrix_build(transform.position.x, transform.position.y, transform.position.z,
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
1, 1, 1);
|
1, 1, 1);
|
||||||
|
|
||||||
matrix_stack_clear();
|
|
||||||
matrix_stack_push(pos);
|
matrix_stack_push(pos);
|
||||||
matrix_stack_push(rot);
|
matrix_stack_push(rot);
|
||||||
|
|
||||||
|
@ -50,7 +49,9 @@ function __3dLightPoint() : __3dLight() constructor {
|
||||||
vertex_submit(VB_UI[0], pr_linestrip, -1);
|
vertex_submit(VB_UI[0], pr_linestrip, -1);
|
||||||
matrix_stack_pop();
|
matrix_stack_pop();
|
||||||
|
|
||||||
matrix_stack_clear();
|
matrix_stack_pop();
|
||||||
|
matrix_stack_pop();
|
||||||
|
|
||||||
matrix_set(matrix_world, matrix_build_identity());
|
matrix_set(matrix_world, matrix_build_identity());
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
@ -80,6 +81,8 @@ function __3dLightPoint() : __3dLight() constructor {
|
||||||
for( var i = 0; i < 6; i++ )
|
for( var i = 0; i < 6; i++ )
|
||||||
shadow_maps[i] = surface_verify(shadow_maps[i], shadow_map_size, shadow_map_size, surface_r32float);
|
shadow_maps[i] = surface_verify(shadow_maps[i], shadow_map_size, shadow_map_size, surface_r32float);
|
||||||
|
|
||||||
|
var position = transform.position;
|
||||||
|
|
||||||
shadow_map_views = array_create(6);
|
shadow_map_views = array_create(6);
|
||||||
shadow_map_views[0] = matrix_build_lookat(position.x, position.y, position.z, position.x + 1, position.y, position.z, 0, 0, -1);
|
shadow_map_views[0] = matrix_build_lookat(position.x, position.y, position.z, position.x + 1, position.y, position.z, 0, 0, -1);
|
||||||
shadow_map_views[1] = matrix_build_lookat(position.x, position.y, position.z, position.x - 1, position.y, position.z, 0, 0, -1);
|
shadow_map_views[1] = matrix_build_lookat(position.x, position.y, position.z, position.x - 1, position.y, position.z, 0, 0, -1);
|
||||||
|
|
|
@ -16,16 +16,18 @@ function __d3dMaterial(surface = noone) constructor {
|
||||||
return surface_get_texture(surface);
|
return surface_get_texture(surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static submitGeometry = function() {
|
||||||
|
shader_set_i("use_normal", is_surface(normal));
|
||||||
|
shader_set_surface("normal_map", normal);
|
||||||
|
shader_set_f("normal_strength", normalStr);
|
||||||
|
}
|
||||||
|
|
||||||
static submitShader = function() {
|
static submitShader = function() {
|
||||||
shader_set_f("mat_diffuse", diffuse );
|
shader_set_f("mat_diffuse", diffuse );
|
||||||
shader_set_f("mat_specular", specular );
|
shader_set_f("mat_specular", specular );
|
||||||
shader_set_f("mat_shine", shine );
|
shader_set_f("mat_shine", shine );
|
||||||
shader_set_i("mat_metalic", metalic );
|
shader_set_i("mat_metalic", metalic );
|
||||||
|
|
||||||
shader_set_i("mat_use_normal", is_surface(normal));
|
|
||||||
shader_set_surface("mat_normal_map", normal);
|
|
||||||
shader_set_f("mat_normal_strength", normalStr);
|
|
||||||
|
|
||||||
shader_set_f("mat_reflective", reflective);
|
shader_set_f("mat_reflective", reflective);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -26,10 +26,8 @@ function __3dObject() constructor {
|
||||||
|
|
||||||
custom_shader = noone;
|
custom_shader = noone;
|
||||||
|
|
||||||
position = new __vec3(0);
|
transform = new __transform();
|
||||||
rotation = new BBMOD_Quaternion();
|
size = new __vec3(1);
|
||||||
scale = new __vec3(1);
|
|
||||||
size = new __vec3(1);
|
|
||||||
|
|
||||||
materials = [];
|
materials = [];
|
||||||
matrial_index = [];
|
matrial_index = [];
|
||||||
|
@ -50,11 +48,10 @@ function __3dObject() constructor {
|
||||||
|
|
||||||
static onParameterUpdate = function() {}
|
static onParameterUpdate = function() {}
|
||||||
|
|
||||||
static generateNormal = function() { #region
|
static generateNormal = function(_s = normal_draw_size) { #region
|
||||||
if(render_type != pr_trianglelist) return;
|
if(render_type != pr_trianglelist) return;
|
||||||
|
|
||||||
NVB = array_create(object_counts);
|
NVB = array_create(object_counts);
|
||||||
var _s = normal_draw_size;
|
|
||||||
|
|
||||||
for( var i = 0; i < object_counts; i++ ) {
|
for( var i = 0; i < object_counts; i++ ) {
|
||||||
NVB[i] = vertex_create_buffer();
|
NVB[i] = vertex_create_buffer();
|
||||||
|
@ -107,19 +104,17 @@ function __3dObject() constructor {
|
||||||
static preSubmitVertex = function(scene = {}) {}
|
static preSubmitVertex = function(scene = {}) {}
|
||||||
static postSubmitVertex = function(scene = {}) {}
|
static postSubmitVertex = function(scene = {}) {}
|
||||||
|
|
||||||
static getCenter = function() { return new __vec3(position.x, position.y, position.z); }
|
static getCenter = function() { return new __vec3(transform.position.x, transform.position.y, transform.position.z); }
|
||||||
static getBBOX = function() { return new __bbox3D(size.multiplyVec(scale).multiply(-0.5), size.multiplyVec(scale).multiply(0.5)); }
|
static getBBOX = function() { return new __bbox3D(size.multiplyVec(transform.scale).multiply(-0.5), size.multiplyVec(transform.scale).multiply(0.5)); }
|
||||||
|
|
||||||
static submitShader = function(scene = {}, shader = noone) {}
|
static submit = function(scene = {}, shader = noone) { submitVertex(scene, shader); }
|
||||||
|
static submitUI = function(scene = {}, shader = noone) { submitVertex(scene, shader); }
|
||||||
static submit = function(scene = {}, shader = noone) { submitVertex(scene, shader); }
|
static submitSel = function(scene = {}, shader = noone) { #region
|
||||||
static submitUI = function(scene = {}, shader = noone) { submitVertex(scene, shader); }
|
|
||||||
|
|
||||||
static submitSel = function(scene = {}) { #region
|
|
||||||
var _s = variable_clone(scene);
|
var _s = variable_clone(scene);
|
||||||
_s.show_normal = false;
|
_s.show_normal = false;
|
||||||
submitVertex(_s, sh_d3d_silhouette);
|
submitVertex(_s, sh_d3d_silhouette);
|
||||||
} #endregion
|
} #endregion
|
||||||
|
static submitShader = function(scene = {}, shader = noone) {}
|
||||||
|
|
||||||
static submitVertex = function(scene = {}, shader = noone) { #region
|
static submitVertex = function(scene = {}, shader = noone) { #region
|
||||||
var _shader = sh_d3d_default;
|
var _shader = sh_d3d_default;
|
||||||
|
@ -137,61 +132,38 @@ function __3dObject() constructor {
|
||||||
preSubmitVertex(scene);
|
preSubmitVertex(scene);
|
||||||
|
|
||||||
if(VB != noone) { #region
|
if(VB != noone) { #region
|
||||||
matrix_stack_clear();
|
transform.submitMatrix();
|
||||||
|
|
||||||
if(scene.apply_transform) {
|
matrix_set(matrix_world, matrix_stack_top());
|
||||||
var pos = matrix_build(position.x, position.y, position.z,
|
|
||||||
0, 0, 0,
|
|
||||||
1, 1, 1);
|
|
||||||
var rot = rotation.ToMatrix();
|
|
||||||
var sca = matrix_build(0, 0, 0,
|
|
||||||
0, 0, 0,
|
|
||||||
scale.x, scale.y, scale.z);
|
|
||||||
|
|
||||||
matrix_stack_push(pos);
|
|
||||||
matrix_stack_push(rot);
|
|
||||||
matrix_stack_push(sca);
|
|
||||||
matrix_set(matrix_world, matrix_stack_top());
|
|
||||||
} else {
|
|
||||||
var pos = matrix_build(position.x - scene.custom_transform.x, position.y - scene.custom_transform.y, position.z - scene.custom_transform.z,
|
|
||||||
0, 0, 0,
|
|
||||||
1, 1, 1);
|
|
||||||
var siz = matrix_build(0, 0, 0,
|
|
||||||
0, 0, 0,
|
|
||||||
scale.x, scale.y, scale.z);
|
|
||||||
var sca = matrix_build(0, 0, 0,
|
|
||||||
0, 0, 0,
|
|
||||||
scene.custom_scale.x, scene.custom_scale.y, scene.custom_scale.z);
|
|
||||||
|
|
||||||
matrix_stack_push(pos);
|
|
||||||
matrix_stack_push(siz);
|
|
||||||
matrix_stack_push(sca);
|
|
||||||
matrix_set(matrix_world, matrix_stack_top());
|
|
||||||
}
|
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
#region ++++ Submit & Material ++++
|
#region ++++ Submit & Material ++++
|
||||||
gpu_set_tex_repeat(true);
|
gpu_set_tex_repeat(true);
|
||||||
|
|
||||||
for( var i = 0, n = array_length(VB); i < n; i++ ) {
|
for( var i = 0, n = array_length(VB); i < n; i++ ) {
|
||||||
if(_shader == sh_d3d_default) {
|
var _ind = array_safe_get(matrial_index, i, i);
|
||||||
var _ind = array_safe_get(matrial_index, i, i);
|
var _mat = array_safe_get(materials, _ind, noone);
|
||||||
var _mat = array_safe_get(materials, _ind, noone);
|
|
||||||
|
|
||||||
|
if(_shader == sh_d3d_default) {
|
||||||
if(_mat == noone) {
|
if(_mat == noone) {
|
||||||
shader_set_f("mat_diffuse", 1);
|
shader_set_f("mat_diffuse", 1);
|
||||||
shader_set_f("mat_specular", 0);
|
shader_set_f("mat_specular", 0);
|
||||||
shader_set_f("mat_shine", 1);
|
shader_set_f("mat_shine", 1);
|
||||||
shader_set_i("mat_metalic", 0);
|
shader_set_i("mat_metalic", 0);
|
||||||
shader_set_i("mat_use_normal", 0);
|
|
||||||
shader_set_f("mat_reflective", 0);
|
shader_set_f("mat_reflective", 0);
|
||||||
} else
|
} else
|
||||||
_mat.submitShader();
|
_mat.submitShader();
|
||||||
|
|
||||||
shader_set_i("mat_flip", texture_flip);
|
shader_set_i("mat_flip", texture_flip);
|
||||||
//print($"{instanceof(self)}: {i}, {_mat}");
|
|
||||||
var _tex = _mat == noone? -1 : _mat.getTexture();
|
var _tex = _mat == noone? -1 : _mat.getTexture();
|
||||||
vertex_submit(VB[i], render_type, _tex);
|
vertex_submit(VB[i], render_type, _tex);
|
||||||
|
} else if(_shader == sh_d3d_geometry) {
|
||||||
|
if(_mat == noone)
|
||||||
|
shader_set_i("use_normal", 0);
|
||||||
|
else
|
||||||
|
_mat.submitGeometry();
|
||||||
|
|
||||||
|
vertex_submit(VB[i], render_type, -1);
|
||||||
} else
|
} else
|
||||||
vertex_submit(VB[i], render_type, -1);
|
vertex_submit(VB[i], render_type, -1);
|
||||||
}
|
}
|
||||||
|
@ -201,7 +173,7 @@ function __3dObject() constructor {
|
||||||
|
|
||||||
shader_reset();
|
shader_reset();
|
||||||
|
|
||||||
if(scene.show_normal && NVB != noone) { #region
|
if(scene.show_normal) { #region
|
||||||
if(NVB == noone) generateNormal();
|
if(NVB == noone) generateNormal();
|
||||||
if(NVB != noone) {
|
if(NVB != noone) {
|
||||||
shader_set(sh_d3d_wireframe);
|
shader_set(sh_d3d_wireframe);
|
||||||
|
@ -211,7 +183,7 @@ function __3dObject() constructor {
|
||||||
}
|
}
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
matrix_stack_clear();
|
transform.clearMatrix();
|
||||||
matrix_set(matrix_world, matrix_build_identity());
|
matrix_set(matrix_world, matrix_build_identity());
|
||||||
|
|
||||||
postSubmitVertex(scene);
|
postSubmitVertex(scene);
|
||||||
|
@ -234,5 +206,5 @@ function __3dObject() constructor {
|
||||||
|
|
||||||
static onDestroy = function() { }
|
static onDestroy = function() { }
|
||||||
|
|
||||||
static toString = function() { return $"[D3D Object\n\t{array_length(vertex)} vertex groups\n\tPosition: {position}\n\tRotation: {rotation}\n\tScale: {scale}]" }
|
static toString = function() { return $"[D3D Object\n\t{array_length(vertex)} vertex groups\n\tPosition: {transform.position}\n\tRotation: {transform.rotation}\n\tScale: {transform.scale}]" }
|
||||||
}
|
}
|
|
@ -11,14 +11,15 @@
|
||||||
d3_view_camera.setMatrix();
|
d3_view_camera.setMatrix();
|
||||||
|
|
||||||
D3D_GLOBAL_PREVIEW = new __3dScene(d3_view_camera);
|
D3D_GLOBAL_PREVIEW = new __3dScene(d3_view_camera);
|
||||||
D3D_GLOBAL_PREVIEW.apply_transform = false;
|
D3D_GLOBAL_PREVIEW.apply_transform = true;
|
||||||
|
D3D_GLOBAL_PREVIEW.defer_normal = false;
|
||||||
|
|
||||||
var d3_scene_light0 = new __3dLightDirectional();
|
var d3_scene_light0 = new __3dLightDirectional();
|
||||||
d3_scene_light0.position.set(-1, -2, 3);
|
d3_scene_light0.transform.position.set(-1, -2, 3);
|
||||||
d3_scene_light0.color = $AAAAAA;
|
d3_scene_light0.color = $AAAAAA;
|
||||||
|
|
||||||
var d3_scene_light1 = new __3dLightDirectional();
|
var d3_scene_light1 = new __3dLightDirectional();
|
||||||
d3_scene_light1.position.set(1, 2, 3);
|
d3_scene_light1.transform.position.set(1, 2, 3);
|
||||||
d3_scene_light1.color = $FFFFFF;
|
d3_scene_light1.color = $FFFFFF;
|
||||||
|
|
||||||
D3D_GLOBAL_PREVIEW.lightAmbient = $404040;
|
D3D_GLOBAL_PREVIEW.lightAmbient = $404040;
|
||||||
|
@ -31,9 +32,8 @@ function __3dScene(camera) constructor {
|
||||||
self.camera = camera;
|
self.camera = camera;
|
||||||
name = "New scene";
|
name = "New scene";
|
||||||
|
|
||||||
apply_transform = true;
|
apply_transform = false;
|
||||||
custom_transform = new __vec3();
|
custom_transform = new __transform();
|
||||||
custom_scale = new __vec3(1, 1, 1);
|
|
||||||
|
|
||||||
lightAmbient = c_black;
|
lightAmbient = c_black;
|
||||||
lightDir_max = 16;
|
lightDir_max = 16;
|
||||||
|
@ -45,9 +45,12 @@ function __3dScene(camera) constructor {
|
||||||
enviroment_map = noone;
|
enviroment_map = noone;
|
||||||
gammaCorrection = true;
|
gammaCorrection = true;
|
||||||
|
|
||||||
show_normal = false;
|
draw_background = false;
|
||||||
|
|
||||||
geometry_data = [];
|
defer_normal = true;
|
||||||
|
show_normal = false;
|
||||||
|
|
||||||
|
geometry_data = [ noone, noone, noone ];
|
||||||
|
|
||||||
ssao_enabled = false;
|
ssao_enabled = false;
|
||||||
ssao = noone;
|
ssao = noone;
|
||||||
|
@ -86,10 +89,17 @@ function __3dScene(camera) constructor {
|
||||||
static applyCamera = function() { camera.applyCamera(); }
|
static applyCamera = function() { camera.applyCamera(); }
|
||||||
static resetCamera = function() { camera.resetCamera(); }
|
static resetCamera = function() { camera.resetCamera(); }
|
||||||
|
|
||||||
static submit = function(object, shader = noone) { object.submit(self, shader); }
|
static _submit = function(callback, object, shader = noone) {
|
||||||
static submitUI = function(object, shader = noone) { object.submitUI(self, shader); }
|
matrix_stack_clear();
|
||||||
static submitSel = function(object, shader = noone) { object.submitSel(self, shader); }
|
if(apply_transform) custom_transform.submitMatrix();
|
||||||
static submitShader = function(object, shader = noone) { object.submitShader(self, shader); }
|
callback(object, shader);
|
||||||
|
if(apply_transform) custom_transform.clearMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
static submit = function(object, shader = noone) { _submit(function(object, shader) { object.submit (self, shader); }, object, shader) }
|
||||||
|
static submitUI = function(object, shader = noone) { _submit(function(object, shader) { object.submitUI (self, shader); }, object, shader) }
|
||||||
|
static submitSel = function(object, shader = noone) { _submit(function(object, shader) { object.submitSel (self, shader); }, object, shader) }
|
||||||
|
static submitShader = function(object, shader = noone) { _submit(function(object, shader) { object.submitShader (self, shader); }, object, shader) }
|
||||||
|
|
||||||
static deferPass = function(object, w, h) { #region
|
static deferPass = function(object, w, h) { #region
|
||||||
geometryPass(object, w, h);
|
geometryPass(object, w, h);
|
||||||
|
@ -120,13 +130,13 @@ function __3dScene(camera) constructor {
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static geometryPass = function(object, w = 512, h = 512) { #region
|
static geometryPass = function(object, w = 512, h = 512) { #region
|
||||||
var world = surface_create(w, h, surface_rgba32float);
|
geometry_data[0] = surface_verify(geometry_data[0], w, h, surface_rgba32float);
|
||||||
var view = surface_create(w, h, surface_rgba32float);
|
geometry_data[1] = surface_verify(geometry_data[1], w, h, surface_rgba32float);
|
||||||
var normal = surface_create(w, h, surface_rgba32float);
|
geometry_data[2] = surface_verify(geometry_data[2], w, h, surface_rgba32float);
|
||||||
|
|
||||||
surface_set_target_ext(0, world);
|
surface_set_target_ext(0, geometry_data[0]);
|
||||||
surface_set_target_ext(1, view);
|
surface_set_target_ext(1, geometry_data[1]);
|
||||||
surface_set_target_ext(2, normal);
|
surface_set_target_ext(2, geometry_data[2]);
|
||||||
gpu_set_zwriteenable(true);
|
gpu_set_zwriteenable(true);
|
||||||
gpu_set_ztestenable(true);
|
gpu_set_ztestenable(true);
|
||||||
|
|
||||||
|
@ -146,7 +156,15 @@ function __3dScene(camera) constructor {
|
||||||
gpu_set_ztestenable(false);
|
gpu_set_ztestenable(false);
|
||||||
surface_reset_target();
|
surface_reset_target();
|
||||||
|
|
||||||
geometry_data = [ world, view, normal ];
|
var _normal_blurred = surface_create_size(geometry_data[2], surface_rgba32float);
|
||||||
|
surface_set_shader(_normal_blurred, sh_d3d_normal_blur);
|
||||||
|
shader_set_f("radius", 5);
|
||||||
|
shader_set_dim("dimension", geometry_data[2]);
|
||||||
|
draw_surface_safe(geometry_data[2]);
|
||||||
|
surface_reset_shader();
|
||||||
|
|
||||||
|
surface_free(geometry_data[2]);
|
||||||
|
geometry_data[2] = _normal_blurred;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
static ssaoPass = function() { #region
|
static ssaoPass = function() { #region
|
||||||
|
@ -219,11 +237,19 @@ function __3dScene(camera) constructor {
|
||||||
shader_set_f("light_pnt_shadow_bias", lightPnt_shadowBias);
|
shader_set_f("light_pnt_shadow_bias", lightPnt_shadowBias);
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
|
if(defer_normal && array_length(geometry_data) > 2) {
|
||||||
|
shader_set_i("mat_defer_normal", 1);
|
||||||
|
shader_set_surface("mat_normal_map", geometry_data[2]);
|
||||||
|
} else
|
||||||
|
shader_set_i("mat_defer_normal", 0);
|
||||||
|
|
||||||
#region ---- camera ----
|
#region ---- camera ----
|
||||||
shader_set_f("cameraPosition", camera.position.toArray());
|
shader_set_f("cameraPosition", camera.position.toArray());
|
||||||
shader_set_i("gammaCorrection", gammaCorrection);
|
shader_set_i("gammaCorrection", gammaCorrection);
|
||||||
shader_set_f("planeNear", camera.view_near);
|
shader_set_f("planeNear", camera.view_near);
|
||||||
shader_set_f("planeFar", camera.view_far );
|
shader_set_f("planeFar", camera.view_far );
|
||||||
|
|
||||||
|
shader_set_f("viewProjMat", camera.getCombinedMatrix() );
|
||||||
#endregion
|
#endregion
|
||||||
shader_reset();
|
shader_reset();
|
||||||
} #endregion
|
} #endregion
|
||||||
|
@ -234,7 +260,7 @@ function __3dScene(camera) constructor {
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
array_append(lightDir_direction, [ light.position.x, light.position.y, light.position.z ]);
|
array_append(lightDir_direction, [ light.transform.position.x, light.transform.position.y, light.transform.position.z ]);
|
||||||
array_append(lightDir_color, colToVec4(light.color));
|
array_append(lightDir_color, colToVec4(light.color));
|
||||||
|
|
||||||
array_push(lightDir_intensity, light.intensity);
|
array_push(lightDir_intensity, light.intensity);
|
||||||
|
@ -261,7 +287,7 @@ function __3dScene(camera) constructor {
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
array_append(lightPnt_position, [ light.position.x, light.position.y, light.position.z ]);
|
array_append(lightPnt_position, [ light.transform.position.x, light.transform.position.y, light.transform.position.z ]);
|
||||||
array_append(lightPnt_color, colToVec4(light.color));
|
array_append(lightPnt_color, colToVec4(light.color));
|
||||||
|
|
||||||
array_push(lightPnt_intensity, light.intensity);
|
array_push(lightPnt_intensity, light.intensity);
|
||||||
|
|
29
scripts/d3d_transformation/d3d_transformation.gml
Normal file
29
scripts/d3d_transformation/d3d_transformation.gml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
function __transform() constructor {
|
||||||
|
parent = noone;
|
||||||
|
|
||||||
|
position = new __vec3(0);
|
||||||
|
rotation = new BBMOD_Quaternion();
|
||||||
|
scale = new __vec3(1);
|
||||||
|
|
||||||
|
static submitMatrix = function() {
|
||||||
|
if(parent) parent.submitMatrix();
|
||||||
|
|
||||||
|
var pos = matrix_build(position.x, position.y, position.z,
|
||||||
|
0, 0, 0,
|
||||||
|
1, 1, 1);
|
||||||
|
var rot = rotation.ToMatrix();
|
||||||
|
var sca = matrix_build(0, 0, 0,
|
||||||
|
0, 0, 0,
|
||||||
|
scale.x, scale.y, scale.z);
|
||||||
|
|
||||||
|
matrix_stack_push(pos);
|
||||||
|
matrix_stack_push(rot);
|
||||||
|
matrix_stack_push(sca);
|
||||||
|
}
|
||||||
|
|
||||||
|
static clearMatrix = function() {
|
||||||
|
matrix_stack_pop();
|
||||||
|
matrix_stack_pop();
|
||||||
|
matrix_stack_pop();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"resourceType": "GMScript",
|
"resourceType": "GMScript",
|
||||||
"resourceVersion": "1.0",
|
"resourceVersion": "1.0",
|
||||||
"name": "node_3d_render",
|
"name": "d3d_transformation",
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
||||||
"name": "__legacy",
|
"name": "util",
|
||||||
"path": "folders/nodes/data/3D/__legacy.yy",
|
"path": "folders/functions/3d/util.yy",
|
||||||
},
|
},
|
||||||
}
|
}
|
|
@ -210,7 +210,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
|
||||||
if(!_for.isZero())
|
if(!_for.isZero())
|
||||||
camera.rotation = new BBMOD_Quaternion().FromLookRotation(_for, camera.up).Mul(_qi1).Mul(_qi2);
|
camera.rotation = new BBMOD_Quaternion().FromLookRotation(_for, camera.up).Mul(_qi1).Mul(_qi2);
|
||||||
|
|
||||||
lookat.position.set(_look);
|
lookat.transform.position.set(_look);
|
||||||
lookLine = new __3dGizmoLineDashed(camera.position, camera.focus, 0.25, c_gray, 1);
|
lookLine = new __3dGizmoLineDashed(camera.position, camera.focus, 0.25, c_gray, 1);
|
||||||
break;
|
break;
|
||||||
case 2 :
|
case 2 :
|
||||||
|
@ -224,19 +224,19 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
|
||||||
if(!_for.isZero())
|
if(!_for.isZero())
|
||||||
camera.rotation = new BBMOD_Quaternion().FromLookRotation(_for, camera.up.multiply(-1)).Mul(_qi1).Mul(_qi3);
|
camera.rotation = new BBMOD_Quaternion().FromLookRotation(_for, camera.up.multiply(-1)).Mul(_qi1).Mul(_qi3);
|
||||||
|
|
||||||
lookat.position.set(_look);
|
lookat.transform.position.set(_look);
|
||||||
lookLine = new __3dGizmoLineDashed(camera.position, camera.focus, 0.25, c_gray, 1);
|
lookLine = new __3dGizmoLineDashed(camera.position, camera.focus, 0.25, c_gray, 1);
|
||||||
|
|
||||||
var _camRad = camera.position.subtract(camera.focus);
|
var _camRad = camera.position.subtract(camera.focus);
|
||||||
var _rad = point_distance(0, 0, _camRad.x, _camRad.y) * 2;
|
var _rad = point_distance(0, 0, _camRad.x, _camRad.y) * 2;
|
||||||
lookRad.scale.set(_rad, _rad, 1);
|
lookRad.transform.scale.set(_rad, _rad, 1);
|
||||||
lookRad.position.set(new __vec3(camera.focus.x, camera.focus.y, camera.position.z));
|
lookRad.transform.position.set(new __vec3(camera.focus.x, camera.focus.y, camera.position.z));
|
||||||
break;
|
break;
|
||||||
} #endregion
|
} #endregion
|
||||||
|
|
||||||
object.position.set(camera.position);
|
object.transform.position.set(camera.position);
|
||||||
object.rotation = camera.rotation.Clone();
|
object.transform.rotation = camera.rotation.Clone();
|
||||||
object.scale.set(1, _dim[0] / _dim[1], 1);
|
object.transform.scale.set(1, _dim[0] / _dim[1], 1);
|
||||||
|
|
||||||
if(_scne == noone) return;
|
if(_scne == noone) return;
|
||||||
|
|
||||||
|
@ -256,6 +256,8 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
|
||||||
scene.ssao_bias = _aoBi;
|
scene.ssao_bias = _aoBi;
|
||||||
scene.ssao_strength = _aoSr;
|
scene.ssao_strength = _aoSr;
|
||||||
|
|
||||||
|
scene.draw_background = _dbg;
|
||||||
|
|
||||||
var _bgSurf = _dbg? scene.renderBackground(_dim[0], _dim[1]) : noone;
|
var _bgSurf = _dbg? scene.renderBackground(_dim[0], _dim[1]) : noone;
|
||||||
scene.deferPass(_scne, _dim[0], _dim[1]);
|
scene.deferPass(_scne, _dim[0], _dim[1]);
|
||||||
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
"resourceType": "GMScript",
|
|
||||||
"resourceVersion": "1.0",
|
|
||||||
"name": "node_3d_extrude",
|
|
||||||
"isCompatibility": false,
|
|
||||||
"isDnD": false,
|
|
||||||
"parent": {
|
|
||||||
"name": "__legacy",
|
|
||||||
"path": "folders/nodes/data/3D/__legacy.yy",
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -37,8 +37,8 @@ function Node_3D_Light_Directional(_x, _y, _group = noone) : Node_3D_Light(_x, _
|
||||||
object.setShadow(_shadow_active, _shadow_map_size, _shadow_map_scal);
|
object.setShadow(_shadow_active, _shadow_map_size, _shadow_map_scal);
|
||||||
object.shadow_bias = _shadow_bias;
|
object.shadow_bias = _shadow_bias;
|
||||||
|
|
||||||
var _rot = new __rot3().lookAt(object.position, new __vec3());
|
var _rot = new __rot3().lookAt(object.transform.position, new __vec3());
|
||||||
object.rotation.FromEuler(_rot.x, _rot.y, _rot.z);
|
object.transform.rotation.FromEuler(_rot.x, _rot.y, _rot.z);
|
||||||
|
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
"resourceType": "GMScript",
|
|
||||||
"resourceVersion": "1.0",
|
|
||||||
"name": "node_3d_prim_sphere",
|
|
||||||
"isCompatibility": false,
|
|
||||||
"isDnD": false,
|
|
||||||
"parent": {
|
|
||||||
"name": "primitive",
|
|
||||||
"path": "folders/nodes/data/3D/__legacy/primitive.yy",
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,207 +1,102 @@
|
||||||
function Node_3D_Repeat(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
|
function Node_3D_Repeat(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constructor {
|
||||||
name = "3D Repeat";
|
name = "3D Repeat";
|
||||||
|
|
||||||
inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF)
|
inputs[| 0] = nodeValue("Objects", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Mesh, noone )
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
.setArrayDepth(1)
|
||||||
|
|
||||||
inputs[| 1] = nodeValue("Object position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ])
|
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
|
||||||
|
|
||||||
inputs[| 2] = nodeValue("Object rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ])
|
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
|
||||||
|
|
||||||
inputs[| 3] = nodeValue("Object scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
|
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
|
||||||
|
|
||||||
inputs[| 4] = nodeValue("Render position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0.5, 0.5 ])
|
|
||||||
.setDisplay(VALUE_DISPLAY.vector)
|
|
||||||
.setUnitRef( function() { return inputs[| 0].getValue(); }, VALUE_UNIT.reference);
|
|
||||||
|
|
||||||
inputs[| 5] = nodeValue("Render scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1 ])
|
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
|
||||||
|
|
||||||
inputs[| 6] = nodeValue("Light direction", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0)
|
|
||||||
.setDisplay(VALUE_DISPLAY.rotation);
|
|
||||||
|
|
||||||
inputs[| 7] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.5)
|
|
||||||
.setDisplay(VALUE_DISPLAY.slider, [-1, 1, 0.01]);
|
|
||||||
|
|
||||||
inputs[| 8] = nodeValue("Light intensity", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1)
|
|
||||||
.setDisplay(VALUE_DISPLAY.slider, [0, 1, 0.01]);
|
|
||||||
|
|
||||||
inputs[| 9] = nodeValue("Light color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_white);
|
|
||||||
|
|
||||||
inputs[| 10] = nodeValue("Ambient color", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_grey);
|
|
||||||
|
|
||||||
inputs[| 11] = nodeValue("3D object", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3object, noone)
|
|
||||||
.setVisible(true, true);
|
.setVisible(true, true);
|
||||||
|
|
||||||
inputs[| 12] = nodeValue("Repeat", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1, "Amount of copies to be generated.");
|
inputs[| 1] = nodeValue("Object Mode", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
|
||||||
|
.setDisplay(VALUE_DISPLAY.enum_button, [ "Duplicate", "Array" ] )
|
||||||
inputs[| 13] = nodeValue("Repeat position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 0, 0 ])
|
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
|
||||||
|
|
||||||
inputs[| 14] = nodeValue("Repeat rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ])
|
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
|
||||||
|
|
||||||
inputs[| 15] = nodeValue("Repeat scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ])
|
|
||||||
.setDisplay(VALUE_DISPLAY.vector);
|
|
||||||
|
|
||||||
inputs[| 16] = nodeValue("Repeat pattern", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
|
|
||||||
.setDisplay(VALUE_DISPLAY.enum_button, [ "Linear", "Circular" ])
|
|
||||||
.rejectArray();
|
.rejectArray();
|
||||||
|
|
||||||
inputs[| 17] = nodeValue("Axis", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
|
inputs[| 2] = nodeValue("Amount", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1 );
|
||||||
.setDisplay(VALUE_DISPLAY.enum_button, [ "x", "y", "z" ]);
|
|
||||||
|
|
||||||
inputs[| 18] = nodeValue("Radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1);
|
inputs[| 3] = nodeValue("Starting Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] )
|
||||||
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
inputs[| 19] = nodeValue("Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, [ 0, 360 ])
|
inputs[| 4] = nodeValue("Starting Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ] )
|
||||||
.setDisplay(VALUE_DISPLAY.rotation_range);
|
.setDisplay(VALUE_DISPLAY.d3quarternion);
|
||||||
|
|
||||||
inputs[| 20] = nodeValue("Projection", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
|
inputs[| 5] = nodeValue("Starting Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 1, 1, 1 ] )
|
||||||
.setDisplay(VALUE_DISPLAY.enum_button, [ "Orthographic", "Perspective" ])
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
.rejectArray();
|
|
||||||
|
|
||||||
inputs[| 21] = nodeValue("Field of view", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 60)
|
inputs[| 6] = nodeValue("Shift Position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] )
|
||||||
.setDisplay(VALUE_DISPLAY.slider, [ 1, 90, 1 ]);
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
|
|
||||||
inputs[| 22] = nodeValue("Scale view with dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true)
|
inputs[| 7] = nodeValue("Shift Rotation", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0, 1 ] )
|
||||||
|
.setDisplay(VALUE_DISPLAY.d3quarternion);
|
||||||
|
|
||||||
input_display_list = [ 11,
|
inputs[| 8] = nodeValue("Shift Scale", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ] )
|
||||||
["Output", false], 0, 22,
|
.setDisplay(VALUE_DISPLAY.vector);
|
||||||
["Object transform", true], 1, 2, 3,
|
|
||||||
["Camera", true], 20, 21, 4, 5,
|
|
||||||
["Light", true], 6, 7, 8, 9, 10,
|
|
||||||
["Repeat", false], 12, 16, 13, 14, 15, 17, 18, 19
|
|
||||||
];
|
|
||||||
|
|
||||||
|
outputs[| 0] = nodeValue("Scene", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3Scene, noone);
|
||||||
|
|
||||||
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
|
input_display_list = [
|
||||||
|
["Objects", false], 0, 3, 4, 5,
|
||||||
outputs[| 1] = nodeValue("3D objects", self, JUNCTION_CONNECT.output, VALUE_TYPE.d3object, function() { return submit_vertex(); });
|
["Repeat", false], 1, 2, 6, 7, 8,
|
||||||
|
|
||||||
outputs[| 2] = nodeValue("Normal pass", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
|
|
||||||
|
|
||||||
output_display_list = [
|
|
||||||
0, 2, 1
|
|
||||||
]
|
]
|
||||||
|
|
||||||
_3d_node_init(1, /*Transform*/ 4, 5, 1, 2, 3);
|
static step = function() { #region
|
||||||
|
var _mode = array_safe_get(current_data, 1, 0);
|
||||||
|
//var _tran = array_safe_get(current_data, 9, 0);
|
||||||
|
|
||||||
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
inputs[| 0].setArrayDepth(_mode == 1);
|
||||||
_3d_gizmo(active, _x, _y, _s, _mx, _my, _snx, _sny);
|
|
||||||
}
|
|
||||||
|
|
||||||
static submit_vertex = function() {
|
inputs[| 2].setVisible(_mode == 0);
|
||||||
var _lpos = inputs[| 1].getValue();
|
|
||||||
var _lrot = inputs[| 2].getValue();
|
|
||||||
var _lsca = inputs[| 3].getValue();
|
|
||||||
|
|
||||||
var sv = inputs[| 11].getValue();
|
//inputs[| 6].setVisible(_tran == 0);
|
||||||
if(sv == noone) return;
|
//inputs[| 7].setVisible(_tran == 0);
|
||||||
|
//inputs[| 8].setVisible(_tran == 0);
|
||||||
|
} #endregion
|
||||||
|
|
||||||
var _samo = inputs[| 12].getValue();
|
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
|
||||||
var _patt = inputs[| 16].getValue();
|
var _object = _data[0];
|
||||||
|
var _mode = _data[1];
|
||||||
|
var _Spos = _data[3];
|
||||||
|
var _Srot = _data[4];
|
||||||
|
var _Ssca = _data[5];
|
||||||
|
var _Rpos = _data[6];
|
||||||
|
var _Rrot = _data[7];
|
||||||
|
var _Rsca = _data[8];
|
||||||
|
|
||||||
var _srot = inputs[| 14].getValue();
|
if(_mode == 1 && !is_array(_object)) return noone;
|
||||||
var _ssca = inputs[| 15].getValue();
|
var _amo = _mode == 1? array_length(_object) : _data[2];
|
||||||
|
|
||||||
var _spos = inputs[| 13].getValue();
|
var _scene = new __3dGroup();
|
||||||
|
|
||||||
var _raxs = inputs[| 17].getValue();
|
for( var i = 0; i < _amo; i++ ) {
|
||||||
var _rrad = inputs[| 18].getValue();
|
var _obj = _mode == 1? _object[i] : _object;
|
||||||
var _rrot = inputs[| 19].getValue();
|
if(_obj == noone) continue;
|
||||||
|
|
||||||
_3d_local_transform(_lpos, _lrot, _lsca);
|
var _subScene = new __3dGroup();
|
||||||
for( var i = 0; i < _samo; i++ ) {
|
|
||||||
if(_patt == 0) {
|
|
||||||
matrix_stack_push(matrix_build( _spos[0] * i, _spos[1] * i, _spos[2] * i, 0, 0, 0, 1, 1, 1 ));
|
|
||||||
matrix_stack_push(matrix_build( 0, 0, 0, _srot[0] * i, _srot[1] * i, _srot[2] * i, 1, 1, 1 ));
|
|
||||||
matrix_stack_push(matrix_build( 0, 0, 0, 0, 0, 0, power(_ssca[0], i), power(_ssca[1], i), power(_ssca[2], i)));
|
|
||||||
} else if(_patt == 1) {
|
|
||||||
var angle = _rrot[0] + i * (_rrot[1] - _rrot[0]) / _samo;
|
|
||||||
var ldx = lengthdir_x(_rrad, angle);
|
|
||||||
var ldy = lengthdir_y(_rrad, angle);
|
|
||||||
|
|
||||||
switch(_raxs) {
|
var _sPos = [ _Spos[0] + _Rpos[0] * i,
|
||||||
case 0 : matrix_stack_push(matrix_build( 0, ldx, ldy, 0, 0, 0, 1, 1, 1 )); break;
|
_Spos[1] + _Rpos[1] * i,
|
||||||
case 1 : matrix_stack_push(matrix_build( ldy, 0, ldx, 0, 0, 0, 1, 1, 1 )); break;
|
_Spos[2] + _Rpos[2] * i ];
|
||||||
case 2 : matrix_stack_push(matrix_build( ldx, ldy, 0, 0, 0, 0, 1, 1, 1 )); break;
|
var _sSca = [ _Ssca[0] + _Rsca[0] * i,
|
||||||
}
|
_Ssca[1] + _Rsca[1] * i,
|
||||||
|
_Ssca[2] + _Rsca[2] * i ];
|
||||||
|
|
||||||
matrix_stack_push(matrix_build( 0, 0, 0, _srot[0] * i, _srot[1] * i, _srot[2] * i, 1, 1, 1));
|
var _sRot = new BBMOD_Quaternion(_Srot[0], _Srot[1], _Srot[2], _Srot[3]);
|
||||||
matrix_stack_push(matrix_build( 0, 0, 0, 0, 0, 0, power(_ssca[0], i), power(_ssca[1], i), power(_ssca[2], i)));
|
var _rRot = new BBMOD_Quaternion(_Rrot[0], _Rrot[1], _Rrot[2], _Rrot[3]);
|
||||||
}
|
|
||||||
|
|
||||||
matrix_set(matrix_world, matrix_stack_top());
|
var _sRotE = _sRot.ToEuler();
|
||||||
|
var _rRotE = _rRot.ToEuler();
|
||||||
|
|
||||||
if(is_array(sv)) {
|
var _fRotE = [ _sRotE.x + _rRotE.x * i,
|
||||||
var index = safe_mod(i, array_length(sv));
|
_sRotE.y + _rRotE.y * i,
|
||||||
var _sv = sv[index];
|
_sRotE.z + _rRotE.z * i ];
|
||||||
_sv(index);
|
|
||||||
} else
|
|
||||||
sv();
|
|
||||||
|
|
||||||
matrix_stack_pop();
|
var _fRot = new BBMOD_Quaternion().FromEuler(_fRotE[0], _fRotE[1], _fRotE[2]);
|
||||||
matrix_stack_pop();
|
|
||||||
matrix_stack_pop();
|
|
||||||
}
|
|
||||||
_3d_clear_local_transform();
|
|
||||||
}
|
|
||||||
|
|
||||||
static step = function() {
|
_subScene.transform.position.set(_sPos);
|
||||||
var _proj = inputs[| 20].getValue();
|
_subScene.transform.rotation.set(_fRot.X, _fRot.Y, _fRot.Z, _fRot.W);
|
||||||
var _patt = inputs[| 16].getValue();
|
_subScene.transform.scale.set(_sSca);
|
||||||
|
|
||||||
inputs[| 13].setVisible(_patt == 0);
|
array_push(_subScene.objects, _obj);
|
||||||
|
array_push(_scene.objects, _subScene);
|
||||||
inputs[| 17].setVisible(_patt == 1);
|
|
||||||
inputs[| 18].setVisible(_patt == 1);
|
|
||||||
inputs[| 19].setVisible(_patt == 1);
|
|
||||||
inputs[| 21].setVisible(_proj);
|
|
||||||
}
|
|
||||||
|
|
||||||
function update(frame = PROJECT.animator.current_frame) {
|
|
||||||
var _dim = inputs[| 0].getValue();
|
|
||||||
var _lpos = inputs[| 1].getValue();
|
|
||||||
var _lrot = inputs[| 2].getValue();
|
|
||||||
var _lsca = inputs[| 3].getValue();
|
|
||||||
|
|
||||||
var _pos = inputs[| 4].getValue();
|
|
||||||
var _sca = inputs[| 5].getValue();
|
|
||||||
|
|
||||||
var _ldir = inputs[| 6].getValue();
|
|
||||||
var _lhgt = inputs[| 7].getValue();
|
|
||||||
var _lint = inputs[| 8].getValue();
|
|
||||||
var _lclr = inputs[| 9].getValue();
|
|
||||||
var _aclr = inputs[| 10].getValue();
|
|
||||||
|
|
||||||
var _proj = inputs[| 20].getValue();
|
|
||||||
var _fov = inputs[| 21].getValue();
|
|
||||||
var _dimS = inputs[| 22].getValue();
|
|
||||||
|
|
||||||
var _patt = inputs[| 16].getValue();
|
|
||||||
|
|
||||||
for( var i = 0, n = array_length(output_display_list) - 1; i < n; i++ ) {
|
|
||||||
var ind = output_display_list[i];
|
|
||||||
var _outSurf = outputs[| ind].getValue();
|
|
||||||
|
|
||||||
var pass = "diff";
|
|
||||||
switch(ind) {
|
|
||||||
case 0 : pass = "diff" break;
|
|
||||||
case 2 : pass = "norm" break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var _transform = new __3d_transform(_pos,, _sca, _lpos, _lrot, _lsca, false, _dimS );
|
|
||||||
var _light = new __3d_light(_ldir, _lhgt, _lint, _lclr, _aclr);
|
|
||||||
var _cam = new __3d_camera(_proj, _fov);
|
|
||||||
|
|
||||||
_outSurf = _3d_pre_setup(_outSurf, _dim, _transform, _light, _cam, pass);
|
|
||||||
submit_vertex();
|
|
||||||
_3d_post_setup();
|
|
||||||
|
|
||||||
outputs[| ind].setValue(_outSurf);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
return _scene;
|
||||||
|
} #endregion
|
||||||
}
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
||||||
"name": "__legacy",
|
"name": "d3d compose",
|
||||||
"path": "folders/nodes/data/3D/__legacy.yy",
|
"path": "folders/nodes/data/3D/d3d compose.yy",
|
||||||
},
|
},
|
||||||
}
|
}
|
12
scripts/node_3d_repeat/node_counter.yy
Normal file
12
scripts/node_3d_repeat/node_counter.yy
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"isDnD": false,
|
||||||
|
"isCompatibility": false,
|
||||||
|
"parent": {
|
||||||
|
"name": "variable",
|
||||||
|
"path": "folders/nodes/data/variable.yy",
|
||||||
|
},
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "node_counter",
|
||||||
|
"tags": [],
|
||||||
|
"resourceType": "GMScript",
|
||||||
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
"isCompatibility": false,
|
"isCompatibility": false,
|
||||||
"isDnD": false,
|
"isDnD": false,
|
||||||
"parent": {
|
"parent": {
|
||||||
"name": "3D",
|
"name": "d3d compose",
|
||||||
"path": "folders/nodes/data/3D.yy",
|
"path": "folders/nodes/data/3D/d3d compose.yy",
|
||||||
},
|
},
|
||||||
}
|
}
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
"resourceType": "GMScript",
|
|
||||||
"resourceVersion": "1.0",
|
|
||||||
"name": "node_3d_transform",
|
|
||||||
"isCompatibility": false,
|
|
||||||
"isDnD": false,
|
|
||||||
"parent": {
|
|
||||||
"name": "__legacy",
|
|
||||||
"path": "folders/nodes/data/3D/__legacy.yy",
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -109,6 +109,14 @@ function valueAnimator(_val, _prop, _sep_axis = false) constructor {
|
||||||
return _f.lerpTo(_t, _lrp);
|
return _f.lerpTo(_t, _lrp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(prop.display_type == VALUE_DISPLAY.d3quarternion) {
|
||||||
|
var _qf = new BBMOD_Quaternion(_f[0], _f[1], _f[2], _f[3]);
|
||||||
|
var _qt = new BBMOD_Quaternion(_t[0], _t[1], _t[2], _t[3]);
|
||||||
|
|
||||||
|
var _ql = _qf.Slerp(_qt, _lrp);
|
||||||
|
return _ql.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
if(prop.type == VALUE_TYPE.color) {
|
if(prop.type == VALUE_TYPE.color) {
|
||||||
if(is_array(_f) && is_array(_t)) {
|
if(is_array(_f) && is_array(_t)) {
|
||||||
var _len = ceil(lerp(array_length(_f), array_length(_t), _lrp));
|
var _len = ceil(lerp(array_length(_f), array_length(_t), _lrp));
|
||||||
|
|
|
@ -367,10 +367,13 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
||||||
addNodeObject(d3d, "Sprite Stack", s_node_stack, "Node_Sprite_Stack", [1, Node_Sprite_Stack],, "Create sprite stack either from repeating a single image or stacking different images using array.");
|
addNodeObject(d3d, "Sprite Stack", s_node_stack, "Node_Sprite_Stack", [1, Node_Sprite_Stack],, "Create sprite stack either from repeating a single image or stacking different images using array.");
|
||||||
|
|
||||||
ds_list_add(d3d, "3D");
|
ds_list_add(d3d, "3D");
|
||||||
addNodeObject(d3d, "3D Scene", s_node_3d_scene, "Node_3D_Scene", [1, Node_3D_Scene]);
|
|
||||||
addNodeObject(d3d, "3D Camera", s_node_3d_camera, "Node_3D_Camera", [1, Node_3D_Camera]);
|
addNodeObject(d3d, "3D Camera", s_node_3d_camera, "Node_3D_Camera", [1, Node_3D_Camera]);
|
||||||
addNodeObject(d3d, "3D Material", s_node_3d_meterial, "Node_3D_Material", [1, Node_3D_Material]);
|
addNodeObject(d3d, "3D Material", s_node_3d_meterial, "Node_3D_Material", [1, Node_3D_Material]);
|
||||||
|
|
||||||
|
ds_list_add(d3d, "Compose");
|
||||||
|
addNodeObject(d3d, "3D Scene", s_node_3d_scene, "Node_3D_Scene", [1, Node_3D_Scene]);
|
||||||
|
addNodeObject(d3d, "3D Repeat", s_node_3d_scene, "Node_3D_Repeat", [1, Node_3D_Repeat]);
|
||||||
|
|
||||||
ds_list_add(d3d, "Mesh");
|
ds_list_add(d3d, "Mesh");
|
||||||
addNodeObject(d3d, "3D Object", s_node_3d_obj, "Node_3D_Mesh_Obj", [0, Node_create_3D_Obj],, "Load .obj file from your computer as a 3D object.");
|
addNodeObject(d3d, "3D Object", s_node_3d_obj, "Node_3D_Mesh_Obj", [0, Node_create_3D_Obj],, "Load .obj file from your computer as a 3D object.");
|
||||||
addNodeObject(d3d, "3D Plane", s_node_3d_plane, "Node_3D_Mesh_Plane", [1, Node_3D_Mesh_Plane],, "Put 2D image on a plane in 3D space.");
|
addNodeObject(d3d, "3D Plane", s_node_3d_plane, "Node_3D_Mesh_Plane", [1, Node_3D_Mesh_Plane],, "Put 2D image on a plane in 3D space.");
|
||||||
|
@ -386,19 +389,19 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
|
||||||
addNodeObject(d3d, "Point Light", s_node_3d_light_point, "Node_3D_Light_Point", [1, Node_3D_Light_Point]);
|
addNodeObject(d3d, "Point Light", s_node_3d_light_point, "Node_3D_Light_Point", [1, Node_3D_Light_Point]);
|
||||||
|
|
||||||
ds_list_add(d3d, "Legacy"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
ds_list_add(d3d, "Legacy"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
addNodeObject(d3d, "3D Plane", s_node_3d_plane, "Node_3D_Plane", [1, Node_3D_Plane],, "Put 2D image on a plane in 3D space.").isDeprecated();
|
addNodeObject(d3d, "3D Plane", s_node_3d_plane, "__Node_3D_Plane", [1, __Node_3D_Plane],, "Put 2D image on a plane in 3D space.").isDeprecated();
|
||||||
addNodeObject(d3d, "3D Cube", s_node_3d_cube, "Node_3D_Cube", [1, Node_3D_Cube]).isDeprecated();
|
addNodeObject(d3d, "3D Cube", s_node_3d_cube, "__Node_3D_Cube", [1, __Node_3D_Cube]).isDeprecated();
|
||||||
addNodeObject(d3d, "3D Cylinder", s_node_3d_cylinder, "Node_3D_Cylinder", [1, Node_3D_Cylinder]).isDeprecated();
|
addNodeObject(d3d, "3D Cylinder", s_node_3d_cylinder, "__Node_3D_Cylinder", [1, __Node_3D_Cylinder]).isDeprecated();
|
||||||
addNodeObject(d3d, "3D Sphere", s_node_3d_sphere, "Node_3D_Sphere", [1, Node_3D_Sphere]).setVersion(1090).isDeprecated();
|
addNodeObject(d3d, "3D Sphere", s_node_3d_sphere, "__Node_3D_Sphere", [1, __Node_3D_Sphere]).setVersion(1090).isDeprecated();
|
||||||
addNodeObject(d3d, "3D Cone", s_node_3d_cone, "Node_3D_Cone", [1, Node_3D_Cone]).setVersion(1090).isDeprecated();
|
addNodeObject(d3d, "3D Cone", s_node_3d_cone, "__Node_3D_Cone", [1, __Node_3D_Cone]).setVersion(1090).isDeprecated();
|
||||||
addNodeObject(d3d, "3D Extrude", s_node_3d_extrude, "Node_3D_Extrude", [1, Node_3D_Extrude],, "Extrude 2D image into 3D object.").isDeprecated();
|
addNodeObject(d3d, "3D Extrude", s_node_3d_extrude, "__Node_3D_Extrude", [1, __Node_3D_Extrude],, "Extrude 2D image into 3D object.").isDeprecated();
|
||||||
|
|
||||||
addNodeObject(d3d, "3D Transform", s_node_3d_transform, "Node_3D_Transform", [1, Node_3D_Transform]).setVersion(1080).isDeprecated();
|
addNodeObject(d3d, "3D Transform", s_node_3d_transform, "__Node_3D_Transform", [1, __Node_3D_Transform]).setVersion(1080).isDeprecated();
|
||||||
addNodeObject(d3d, "3D Combine", s_node_3d_obj_combine, "Node_3D_Combine", [1, Node_3D_Combine],, "Combine multiple 3D object to a single scene,").setVersion(1080).isDeprecated();
|
addNodeObject(d3d, "3D Combine", s_node_3d_obj_combine, "__Node_3D_Combine", [1, __Node_3D_Combine],, "Combine multiple 3D object to a single scene,").setVersion(1080).isDeprecated();
|
||||||
addNodeObject(d3d, "3D Repeat", s_node_3d_array, "Node_3D_Repeat", [1, Node_3D_Repeat], ["3d array"], "Repeat 3D object multiple times.").setVersion(1080).isDeprecated();
|
addNodeObject(d3d, "3D Repeat", s_node_3d_array, "__Node_3D_Repeat", [1, __Node_3D_Repeat], ["3d array"], "Repeat 3D object multiple times.").setVersion(1080).isDeprecated();
|
||||||
addNodeObject(d3d, "3D Displace", s_node_3d_displace, "Node_3D_Displace", [1, Node_3D_Displace]).setVersion(1143).isDeprecated();
|
addNodeObject(d3d, "3D Displace", s_node_3d_displace, "__Node_3D_Displace", [1, __Node_3D_Displace]).setVersion(1143).isDeprecated();
|
||||||
|
|
||||||
addNodeObject(d3d, "3D Export", s_node_3d_export, "Node_3D_Export", [1, Node_3D_Export]).setVersion(1143).isDeprecated();
|
addNodeObject(d3d, "3D Export", s_node_3d_export, "__Node_3D_Export", [1, __Node_3D_Export]).setVersion(1143).isDeprecated();
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
var generator = ds_list_create(); #region
|
var generator = ds_list_create(); #region
|
||||||
|
|
|
@ -100,8 +100,9 @@ enum VALUE_DISPLAY {
|
||||||
path_load,
|
path_load,
|
||||||
path_font,
|
path_font,
|
||||||
|
|
||||||
//vertex
|
//d3d
|
||||||
d3vertex,
|
d3vertex,
|
||||||
|
d3quarternion,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum KEYFRAME_END {
|
enum KEYFRAME_END {
|
||||||
|
@ -250,6 +251,7 @@ function typeArray(_type) { #region
|
||||||
case VALUE_DISPLAY.text_array :
|
case VALUE_DISPLAY.text_array :
|
||||||
|
|
||||||
case VALUE_DISPLAY.d3vertex :
|
case VALUE_DISPLAY.d3vertex :
|
||||||
|
case VALUE_DISPLAY.d3quarternion :
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -666,6 +668,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru
|
||||||
|
|
||||||
extract_node = "Node_Number";
|
extract_node = "Node_Number";
|
||||||
break; #endregion
|
break; #endregion
|
||||||
|
case VALUE_DISPLAY.d3quarternion :
|
||||||
case VALUE_DISPLAY.vector : #region
|
case VALUE_DISPLAY.vector : #region
|
||||||
var val = animator.getValue();
|
var val = animator.getValue();
|
||||||
if(array_length(val) <= 4) {
|
if(array_length(val) <= 4) {
|
||||||
|
|
|
@ -36,7 +36,16 @@ function readObj(path) {
|
||||||
ds_list_add(vt, [ _u, _v ]);
|
ds_list_add(vt, [ _u, _v ]);
|
||||||
break;
|
break;
|
||||||
case "vn" :
|
case "vn" :
|
||||||
ds_list_add(vn, [ toNumber(sep[1]), toNumber(sep[2]), toNumber(sep[3]) ]);
|
var _nx = toNumber(sep[1]);
|
||||||
|
var _ny = toNumber(sep[2]);
|
||||||
|
var _nz = toNumber(sep[3]);
|
||||||
|
var _di = sqrt(_nx * _nx + _ny * _ny + _nz * _nz);
|
||||||
|
|
||||||
|
_nx /= _di;
|
||||||
|
_ny /= _di;
|
||||||
|
_nz /= _di;
|
||||||
|
|
||||||
|
ds_list_add(vn, [ _nx, _ny, _nz ]);
|
||||||
break;
|
break;
|
||||||
case "f" :
|
case "f" :
|
||||||
var _len = array_length(sep);
|
var _len = array_length(sep);
|
||||||
|
|
|
@ -131,13 +131,13 @@ function Panel_Preview() : PanelContent() constructor {
|
||||||
d3_scene_light_enabled = true;
|
d3_scene_light_enabled = true;
|
||||||
|
|
||||||
d3_scene_light0 = new __3dLightDirectional();
|
d3_scene_light0 = new __3dLightDirectional();
|
||||||
d3_scene_light0.position.set(-1, -2, 3);
|
d3_scene_light0.transform.position.set(-1, -2, 3);
|
||||||
d3_scene_light0.color = $FFFFFF;
|
d3_scene_light0.color = $FFFFFF;
|
||||||
d3_scene_light0.shadow_active = false;
|
d3_scene_light0.shadow_active = false;
|
||||||
d3_scene_light0.shadow_map_scale = 4;
|
d3_scene_light0.shadow_map_scale = 4;
|
||||||
|
|
||||||
d3_scene_light1 = new __3dLightDirectional();
|
d3_scene_light1 = new __3dLightDirectional();
|
||||||
d3_scene_light1.position.set(1, 2, -3);
|
d3_scene_light1.transform.position.set(1, 2, -3);
|
||||||
d3_scene_light1.color = $505050;
|
d3_scene_light1.color = $505050;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -834,7 +834,7 @@ function Panel_Preview() : PanelContent() constructor {
|
||||||
d3_surface_outline = surface_verify(d3_surface_outline, w, h);
|
d3_surface_outline = surface_verify(d3_surface_outline, w, h);
|
||||||
|
|
||||||
#region defer
|
#region defer
|
||||||
if(_prev_node.is_3D && d3_scene_preview != d3_scene) {
|
if(_prev_node.is_3D) {
|
||||||
var _prev_obj = _prev_node.getPreviewObject();
|
var _prev_obj = _prev_node.getPreviewObject();
|
||||||
d3_scene_preview.deferPass(_prev_obj, w, h);
|
d3_scene_preview.deferPass(_prev_obj, w, h);
|
||||||
}
|
}
|
||||||
|
@ -904,12 +904,16 @@ function Panel_Preview() : PanelContent() constructor {
|
||||||
|
|
||||||
switch(d3_preview_channel) {
|
switch(d3_preview_channel) {
|
||||||
case 0 :
|
case 0 :
|
||||||
draw_surface_safe(d3_surface_bg);
|
if(d3_scene_preview.draw_background)
|
||||||
|
draw_surface_safe(d3_surface_bg);
|
||||||
draw_surface_safe(d3_surface);
|
draw_surface_safe(d3_surface);
|
||||||
|
|
||||||
BLEND_MULTIPLY
|
BLEND_MULTIPLY
|
||||||
draw_surface_safe(d3_scene_preview.ssao);
|
draw_surface_safe(d3_scene_preview.ssao);
|
||||||
BLEND_NORMAL
|
BLEND_NORMAL
|
||||||
|
|
||||||
|
//draw_clear(c_white);
|
||||||
|
//draw_surface_safe(d3_scene_preview.geometry_data[2]);
|
||||||
break;
|
break;
|
||||||
case 1 : draw_surface_safe(d3_surface_normal); break;
|
case 1 : draw_surface_safe(d3_surface_normal); break;
|
||||||
case 2 : draw_surface_safe(d3_surface_depth); break;
|
case 2 : draw_surface_safe(d3_surface_depth); break;
|
||||||
|
@ -932,7 +936,7 @@ function Panel_Preview() : PanelContent() constructor {
|
||||||
gpu_set_ztestenable(false);
|
gpu_set_ztestenable(false);
|
||||||
for( var i = 0, n = array_length(_inspect_obj); i < n; i++ ) {
|
for( var i = 0, n = array_length(_inspect_obj); i < n; i++ ) {
|
||||||
if(_inspect_obj[i] == noone) continue;
|
if(_inspect_obj[i] == noone) continue;
|
||||||
_inspect_obj[i].submitSel(d3_scene);
|
_inspect_obj[i].submitSel(d3_scene_preview);
|
||||||
}
|
}
|
||||||
surface_reset_target();
|
surface_reset_target();
|
||||||
|
|
||||||
|
|
|
@ -27,8 +27,6 @@ varying float v_cameraDistance;
|
||||||
uniform float light_dir_shadow_bias[LIGHT_DIR_LIMIT];
|
uniform float light_dir_shadow_bias[LIGHT_DIR_LIMIT];
|
||||||
uniform sampler2D light_dir_shadowmap_0;
|
uniform sampler2D light_dir_shadowmap_0;
|
||||||
uniform sampler2D light_dir_shadowmap_1;
|
uniform sampler2D light_dir_shadowmap_1;
|
||||||
uniform sampler2D light_dir_shadowmap_2;
|
|
||||||
uniform sampler2D light_dir_shadowmap_3;
|
|
||||||
|
|
||||||
#define LIGHT_PNT_LIMIT 16
|
#define LIGHT_PNT_LIMIT 16
|
||||||
uniform int light_pnt_count;
|
uniform int light_pnt_count;
|
||||||
|
@ -43,8 +41,6 @@ varying float v_cameraDistance;
|
||||||
uniform float light_pnt_shadow_bias[LIGHT_DIR_LIMIT];
|
uniform float light_pnt_shadow_bias[LIGHT_DIR_LIMIT];
|
||||||
uniform sampler2D light_pnt_shadowmap_0;
|
uniform sampler2D light_pnt_shadowmap_0;
|
||||||
uniform sampler2D light_pnt_shadowmap_1;
|
uniform sampler2D light_pnt_shadowmap_1;
|
||||||
uniform sampler2D light_pnt_shadowmap_2;
|
|
||||||
uniform sampler2D light_pnt_shadowmap_3;
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ---- material ----
|
#region ---- material ----
|
||||||
|
@ -56,7 +52,7 @@ varying float v_cameraDistance;
|
||||||
uniform int mat_metalic;
|
uniform int mat_metalic;
|
||||||
uniform float mat_reflective;
|
uniform float mat_reflective;
|
||||||
|
|
||||||
uniform int mat_use_normal;
|
uniform int mat_defer_normal;
|
||||||
uniform float mat_normal_strength;
|
uniform float mat_normal_strength;
|
||||||
uniform sampler2D mat_normal_map;
|
uniform sampler2D mat_normal_map;
|
||||||
|
|
||||||
|
@ -70,6 +66,8 @@ varying float v_cameraDistance;
|
||||||
uniform int env_use_mapping;
|
uniform int env_use_mapping;
|
||||||
uniform sampler2D env_map;
|
uniform sampler2D env_map;
|
||||||
uniform vec2 env_map_dimension;
|
uniform vec2 env_map_dimension;
|
||||||
|
|
||||||
|
uniform mat4 viewProjMat;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ++++ matrix ++++
|
#region ++++ matrix ++++
|
||||||
|
@ -95,8 +93,6 @@ varying float v_cameraDistance;
|
||||||
float sampleDirShadowMap(int index, vec2 position) {
|
float sampleDirShadowMap(int index, vec2 position) {
|
||||||
if(index == 0) return texture2D(light_dir_shadowmap_0, position).r;
|
if(index == 0) return texture2D(light_dir_shadowmap_0, position).r;
|
||||||
if(index == 1) return texture2D(light_dir_shadowmap_1, position).r;
|
if(index == 1) return texture2D(light_dir_shadowmap_1, position).r;
|
||||||
if(index == 2) return texture2D(light_dir_shadowmap_2, position).r;
|
|
||||||
if(index == 3) return texture2D(light_dir_shadowmap_3, position).r;
|
|
||||||
return 0.;
|
return 0.;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,8 +105,6 @@ varying float v_cameraDistance;
|
||||||
|
|
||||||
if(index == 0) return texture2D(light_pnt_shadowmap_0, position)[side];
|
if(index == 0) return texture2D(light_pnt_shadowmap_0, position)[side];
|
||||||
if(index == 1) return texture2D(light_pnt_shadowmap_1, position)[side];
|
if(index == 1) return texture2D(light_pnt_shadowmap_1, position)[side];
|
||||||
if(index == 2) return texture2D(light_pnt_shadowmap_2, position)[side];
|
|
||||||
if(index == 3) return texture2D(light_pnt_shadowmap_3, position)[side];
|
|
||||||
return 0.;
|
return 0.;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -155,14 +149,17 @@ void main() {
|
||||||
vec4 final_color = mat_baseColor;
|
vec4 final_color = mat_baseColor;
|
||||||
vec3 viewDirection = normalize(cameraPosition - v_worldPosition.xyz);
|
vec3 viewDirection = normalize(cameraPosition - v_worldPosition.xyz);
|
||||||
|
|
||||||
|
vec4 viewProjPos = viewProjMat * vec4(v_worldPosition.xyz, 1.);
|
||||||
|
viewProjPos /= viewProjPos.w;
|
||||||
|
viewProjPos = viewProjPos * 0.5 + 0.5;
|
||||||
|
|
||||||
#region ++++ normal ++++
|
#region ++++ normal ++++
|
||||||
vec3 _norm = v_vNormal;
|
vec3 _norm = v_vNormal;
|
||||||
if(mat_use_normal == 1) {
|
|
||||||
vec3 _sampled_normal = texture2D(mat_normal_map, uv_coord).rgb;
|
|
||||||
_norm += (_sampled_normal - 0.5) * 2. * mat_normal_strength;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec3 normal = normalize(_norm);
|
if(mat_defer_normal == 1)
|
||||||
|
_norm = texture2D(mat_normal_map, viewProjPos.xy).rgb;
|
||||||
|
|
||||||
|
vec3 normal = normalize(_norm);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ++++ environment ++++
|
#region ++++ environment ++++
|
||||||
|
|
|
@ -21,7 +21,8 @@ void main() {
|
||||||
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
|
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
|
||||||
|
|
||||||
v_worldPosition = gm_Matrices[MATRIX_WORLD] * object_space_pos;
|
v_worldPosition = gm_Matrices[MATRIX_WORLD] * object_space_pos;
|
||||||
v_viewPosition = (gm_Matrices[MATRIX_WORLD_VIEW] * object_space_pos).xyz;
|
v_viewPosition = gl_Position.xyz;
|
||||||
|
|
||||||
v_vColour = in_Colour;
|
v_vColour = in_Colour;
|
||||||
v_vTexcoord = in_TextureCoord;
|
v_vTexcoord = in_TextureCoord;
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,19 @@
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
varying vec4 v_worldPosition;
|
varying vec4 v_worldPosition;
|
||||||
varying vec3 v_viewPosition;
|
varying vec3 v_viewPosition;
|
||||||
varying vec3 v_vNormal;
|
varying vec3 v_vNormal;
|
||||||
|
|
||||||
|
uniform int use_normal;
|
||||||
|
uniform float normal_strength;
|
||||||
|
uniform sampler2D normal_map;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
gl_FragData[0] = vec4(v_worldPosition.xyz, 1.);
|
gl_FragData[0] = vec4(v_worldPosition.xyz, 1.);
|
||||||
gl_FragData[1] = vec4(v_viewPosition, 1.);
|
gl_FragData[1] = vec4(v_viewPosition, 1.);
|
||||||
gl_FragData[2] = vec4(v_vNormal, 1.);
|
|
||||||
|
vec3 normal = v_vNormal;
|
||||||
|
if(use_normal == 1)
|
||||||
|
normal += (texture2D(normal_map, v_vTexcoord).rgb * 2. - 1.) * normal_strength;
|
||||||
|
|
||||||
|
gl_FragData[2] = vec4(normalize(normal), 1.);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ attribute vec3 in_Normal;
|
||||||
attribute vec4 in_Colour;
|
attribute vec4 in_Colour;
|
||||||
attribute vec2 in_TextureCoord;
|
attribute vec2 in_TextureCoord;
|
||||||
|
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
varying vec4 v_worldPosition;
|
varying vec4 v_worldPosition;
|
||||||
varying vec3 v_viewPosition;
|
varying vec3 v_viewPosition;
|
||||||
varying vec3 v_vNormal;
|
varying vec3 v_vNormal;
|
||||||
|
@ -20,6 +21,8 @@ void main() {
|
||||||
//viewPos.z = (viewPos.z - planeNear - planeFar) / (planeFar - planeNear);
|
//viewPos.z = (viewPos.z - planeNear - planeFar) / (planeFar - planeNear);
|
||||||
v_viewPosition = viewPos.xyz;
|
v_viewPosition = viewPos.xyz;
|
||||||
|
|
||||||
|
v_vTexcoord = in_TextureCoord;
|
||||||
|
|
||||||
vec3 worldNormal = normalize(gm_Matrices[MATRIX_WORLD] * vec4(in_Normal, 0.)).xyz;
|
vec3 worldNormal = normalize(gm_Matrices[MATRIX_WORLD] * vec4(in_Normal, 0.)).xyz;
|
||||||
v_vNormal = worldNormal;
|
v_vNormal = worldNormal;
|
||||||
}
|
}
|
||||||
|
|
39
shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.fsh
Normal file
39
shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.fsh
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
//
|
||||||
|
// Simple passthrough fragment shader
|
||||||
|
//
|
||||||
|
varying vec2 v_vTexcoord;
|
||||||
|
varying vec4 v_vColour;
|
||||||
|
|
||||||
|
uniform vec2 dimension;
|
||||||
|
uniform float radius;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec3 current = texture2D( gm_BaseTexture, v_vTexcoord ).rgb;
|
||||||
|
if(length(current) == 0.) {
|
||||||
|
gl_FragColor = vec4(0.);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 tx = 1. / dimension;
|
||||||
|
vec3 sampled = vec3(0.);
|
||||||
|
float weight = 0.;
|
||||||
|
|
||||||
|
for(float i = -radius; i <= radius; i++)
|
||||||
|
for(float j = -radius; j <= radius; j++) {
|
||||||
|
vec2 pos = v_vTexcoord + vec2(i, j) * tx;
|
||||||
|
if(pos.x < 0. || pos.y < 0. || pos.x > 1. || pos.y > 1.)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
float str = 1. - length(vec2(i, j)) / radius;
|
||||||
|
if(str < 0.) continue;
|
||||||
|
|
||||||
|
vec3 _sample = texture2D( gm_BaseTexture, pos ).rgb;
|
||||||
|
if(length(_sample) == 0.)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
sampled += _sample * str;
|
||||||
|
weight += str;
|
||||||
|
}
|
||||||
|
|
||||||
|
gl_FragColor = vec4(sampled / weight, 1.);
|
||||||
|
}
|
19
shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.vsh
Normal file
19
shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.vsh
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
//
|
||||||
|
// Simple passthrough vertex shader
|
||||||
|
//
|
||||||
|
attribute vec3 in_Position; // (x,y,z)
|
||||||
|
//attribute vec3 in_Normal; // (x,y,z) unused in this shader.
|
||||||
|
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;
|
||||||
|
}
|
10
shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.yy
Normal file
10
shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.yy
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"resourceType": "GMShader",
|
||||||
|
"resourceVersion": "1.0",
|
||||||
|
"name": "sh_d3d_normal_blur",
|
||||||
|
"parent": {
|
||||||
|
"name": "3d",
|
||||||
|
"path": "folders/shader/3d.yy",
|
||||||
|
},
|
||||||
|
"type": 1,
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue