3D object now use material

This commit is contained in:
Tanasart 2023-08-24 12:43:03 +02:00
parent 5f9eaff257
commit 78b4da0c39
33 changed files with 605 additions and 74 deletions

View file

@ -483,6 +483,7 @@
{"name":"fd_draw_surface_to_collision_mask_surface","order":2,"path":"scripts/fd_draw_surface_to_collision_mask_surface/fd_draw_surface_to_collision_mask_surface.yy",},
{"name":"sh_blur_box_contrast","order":3,"path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",},
{"name":"sh_fd_calculate_pressure_jacobi_glsl","order":8,"path":"shaders/sh_fd_calculate_pressure_jacobi_glsl/sh_fd_calculate_pressure_jacobi_glsl.yy",},
{"name":"s_node_3d_sphere_ico","order":15,"path":"sprites/s_node_3d_sphere_ico/s_node_3d_sphere_ico.yy",},
{"name":"node_color_from_rgb","order":7,"path":"scripts/node_color_from_rgb/node_color_from_rgb.yy",},
{"name":"node_struct_get","order":1,"path":"scripts/node_struct_get/node_struct_get.yy",},
{"name":"d3d_plane","order":2,"path":"scripts/d3d_plane/d3d_plane.yy",},
@ -738,6 +739,7 @@
{"name":"s_node_strandSim_render_texture","order":5,"path":"sprites/s_node_strandSim_render_texture/s_node_strandSim_render_texture.yy",},
{"name":"sh_fd_advect_material_a_8_glsl","order":3,"path":"shaders/sh_fd_advect_material_a_8_glsl/sh_fd_advect_material_a_8_glsl.yy",},
{"name":"node_color_remove","order":2,"path":"scripts/node_color_remove/node_color_remove.yy",},
{"name":"s_node_3d_light_directi","order":17,"path":"sprites/s_node_3d_light_directi/s_node_3d_light_directi.yy",},
{"name":"spr_gameframe_pixel","order":3,"path":"sprites/spr_gameframe_pixel/spr_gameframe_pixel.yy",},
{"name":"process_functions","order":38,"path":"scripts/process_functions/process_functions.yy",},
{"name":"s_node_radial","order":53,"path":"sprites/s_node_radial/s_node_radial.yy",},
@ -798,6 +800,7 @@
{"name":"node_VFX_spawner","order":1,"path":"scripts/node_VFX_spawner/node_VFX_spawner.yy",},
{"name":"_draw_defines","order":21,"path":"scripts/_draw_defines/_draw_defines.yy",},
{"name":"sh_color_replace","order":8,"path":"shaders/sh_color_replace/sh_color_replace.yy",},
{"name":"s_node_3d_meterial","order":12,"path":"sprites/s_node_3d_meterial/s_node_3d_meterial.yy",},
{"name":"__surface","order":8,"path":"scripts/__surface/__surface.yy",},
{"name":"clipboard","order":9,"path":"extensions/clipboard/clipboard.yy",},
{"name":"__node_3d_light","order":1,"path":"scripts/__node_3d_light/__node_3d_light.yy",},
@ -966,6 +969,7 @@
{"name":"o_dialog_preview_snap","order":4,"path":"objects/o_dialog_preview_snap/o_dialog_preview_snap.yy",},
{"name":"sh_blend_min","order":9,"path":"shaders/sh_blend_min/sh_blend_min.yy",},
{"name":"d3d_gizmo_circle_z","order":4,"path":"scripts/d3d_gizmo_circle_z/d3d_gizmo_circle_z.yy",},
{"name":"s_node_3d_scene","order":14,"path":"sprites/s_node_3d_scene/s_node_3d_scene.yy",},
{"name":"sh_pb_shade_half","order":5,"path":"shaders/sh_pb_shade_half/sh_pb_shade_half.yy",},
{"name":"node_polar","order":4,"path":"scripts/node_polar/node_polar.yy",},
{"name":"s_node_twirl","order":41,"path":"sprites/s_node_twirl/s_node_twirl.yy",},
@ -1263,6 +1267,7 @@
{"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":"s_node_timeline_preview","order":2,"path":"sprites/s_node_timeline_preview/s_node_timeline_preview.yy",},
{"name":"s_node_3d_light_point","order":18,"path":"sprites/s_node_3d_light_point/s_node_3d_light_point.yy",},
{"name":"node_csv_file_read","order":9,"path":"scripts/node_csv_file_read/node_csv_file_read.yy",},
{"name":"scrollPane","order":14,"path":"scripts/scrollPane/scrollPane.yy",},
{"name":"node_gradient_extract","order":13,"path":"scripts/node_gradient_extract/node_gradient_extract.yy",},
@ -1312,6 +1317,7 @@
{"name":"sh_downsample","order":1,"path":"shaders/sh_downsample/sh_downsample.yy",},
{"name":"sh_remove_black","order":33,"path":"shaders/sh_remove_black/sh_remove_black.yy",},
{"name":"path_parser","order":3,"path":"scripts/path_parser/path_parser.yy",},
{"name":"s_node_3d_camera","order":13,"path":"sprites/s_node_3d_camera/s_node_3d_camera.yy",},
{"name":"node_crop_content","order":14,"path":"scripts/node_crop_content/node_crop_content.yy",},
{"name":"s_node_unicode","order":8,"path":"sprites/s_node_unicode/s_node_unicode.yy",},
{"name":"s_node_color_from_hsv","order":4,"path":"sprites/s_node_color_from_hsv/s_node_color_from_hsv.yy",},
@ -1355,6 +1361,7 @@
{"name":"node_palette_replacement","order":2,"path":"scripts/node_palette_replacement/node_palette_replacement.yy",},
{"name":"s_node_scatter","order":19,"path":"sprites/s_node_scatter/s_node_scatter.yy",},
{"name":"s_node_bokeh","order":51,"path":"sprites/s_node_bokeh/s_node_bokeh.yy",},
{"name":"s_node_3d_sphere_uv","order":16,"path":"sprites/s_node_3d_sphere_uv/s_node_3d_sphere_uv.yy",},
{"name":"s_biterator_toggler","order":13,"path":"sprites/s_biterator_toggler/s_biterator_toggler.yy",},
{"name":"sh_vertex_depth_pass","order":2,"path":"shaders/sh_vertex_depth_pass/sh_vertex_depth_pass.yy",},
{"name":"sh_curve","order":3,"path":"shaders/sh_curve/sh_curve.yy",},

View file

@ -1040,6 +1040,7 @@
{"id":{"name":"sh_blur_box_contrast","path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",},},
{"id":{"name":"s_button","path":"sprites/s_button/s_button.yy",},},
{"id":{"name":"sh_fd_calculate_pressure_jacobi_glsl","path":"shaders/sh_fd_calculate_pressure_jacobi_glsl/sh_fd_calculate_pressure_jacobi_glsl.yy",},},
{"id":{"name":"s_node_3d_sphere_ico","path":"sprites/s_node_3d_sphere_ico/s_node_3d_sphere_ico.yy",},},
{"id":{"name":"node_color_from_rgb","path":"scripts/node_color_from_rgb/node_color_from_rgb.yy",},},
{"id":{"name":"node_struct_get","path":"scripts/node_struct_get/node_struct_get.yy",},},
{"id":{"name":"node_3d_mesh_cube","path":"scripts/node_3d_mesh_cube/node_3d_mesh_cube.yy",},},
@ -1337,6 +1338,7 @@
{"id":{"name":"sh_fd_advect_material_a_8_glsl","path":"shaders/sh_fd_advect_material_a_8_glsl/sh_fd_advect_material_a_8_glsl.yy",},},
{"id":{"name":"node_color_remove","path":"scripts/node_color_remove/node_color_remove.yy",},},
{"id":{"name":"FileDropper","path":"extensions/FileDropper/FileDropper.yy",},},
{"id":{"name":"s_node_3d_light_directi","path":"sprites/s_node_3d_light_directi/s_node_3d_light_directi.yy",},},
{"id":{"name":"spr_gameframe_pixel","path":"sprites/spr_gameframe_pixel/spr_gameframe_pixel.yy",},},
{"id":{"name":"process_functions","path":"scripts/process_functions/process_functions.yy",},},
{"id":{"name":"s_node_radial","path":"sprites/s_node_radial/s_node_radial.yy",},},
@ -1405,6 +1407,7 @@
{"id":{"name":"s_node_equation","path":"sprites/s_node_equation/s_node_equation.yy",},},
{"id":{"name":"_draw_defines","path":"scripts/_draw_defines/_draw_defines.yy",},},
{"id":{"name":"sh_color_replace","path":"shaders/sh_color_replace/sh_color_replace.yy",},},
{"id":{"name":"s_node_3d_meterial","path":"sprites/s_node_3d_meterial/s_node_3d_meterial.yy",},},
{"id":{"name":"__surface","path":"scripts/__surface/__surface.yy",},},
{"id":{"name":"clipboard","path":"extensions/clipboard/clipboard.yy",},},
{"id":{"name":"__node_3d_light","path":"scripts/__node_3d_light/__node_3d_light.yy",},},
@ -1587,6 +1590,7 @@
{"id":{"name":"o_dialog_preview_snap","path":"objects/o_dialog_preview_snap/o_dialog_preview_snap.yy",},},
{"id":{"name":"sh_blend_min","path":"shaders/sh_blend_min/sh_blend_min.yy",},},
{"id":{"name":"d3d_gizmo_circle_z","path":"scripts/d3d_gizmo_circle_z/d3d_gizmo_circle_z.yy",},},
{"id":{"name":"s_node_3d_scene","path":"sprites/s_node_3d_scene/s_node_3d_scene.yy",},},
{"id":{"name":"sh_pb_shade_half","path":"shaders/sh_pb_shade_half/sh_pb_shade_half.yy",},},
{"id":{"name":"node_polar","path":"scripts/node_polar/node_polar.yy",},},
{"id":{"name":"s_node_twirl","path":"sprites/s_node_twirl/s_node_twirl.yy",},},
@ -1931,6 +1935,7 @@
{"id":{"name":"node_path_map_area","path":"scripts/node_path_map_area/node_path_map_area.yy",},},
{"id":{"name":"node_3d_mesh_icosphere","path":"scripts/node_3d_mesh_icosphere/node_3d_mesh_icosphere.yy",},},
{"id":{"name":"s_node_timeline_preview","path":"sprites/s_node_timeline_preview/s_node_timeline_preview.yy",},},
{"id":{"name":"s_node_3d_light_point","path":"sprites/s_node_3d_light_point/s_node_3d_light_point.yy",},},
{"id":{"name":"node_csv_file_read","path":"scripts/node_csv_file_read/node_csv_file_read.yy",},},
{"id":{"name":"scrollPane","path":"scripts/scrollPane/scrollPane.yy",},},
{"id":{"name":"node_gradient_extract","path":"scripts/node_gradient_extract/node_gradient_extract.yy",},},
@ -1988,6 +1993,7 @@
{"id":{"name":"sh_downsample","path":"shaders/sh_downsample/sh_downsample.yy",},},
{"id":{"name":"sh_remove_black","path":"shaders/sh_remove_black/sh_remove_black.yy",},},
{"id":{"name":"path_parser","path":"scripts/path_parser/path_parser.yy",},},
{"id":{"name":"s_node_3d_camera","path":"sprites/s_node_3d_camera/s_node_3d_camera.yy",},},
{"id":{"name":"node_crop_content","path":"scripts/node_crop_content/node_crop_content.yy",},},
{"id":{"name":"s_node_unicode","path":"sprites/s_node_unicode/s_node_unicode.yy",},},
{"id":{"name":"s_node_color_from_hsv","path":"sprites/s_node_color_from_hsv/s_node_color_from_hsv.yy",},},
@ -2037,6 +2043,7 @@
{"id":{"name":"node_palette_replacement","path":"scripts/node_palette_replacement/node_palette_replacement.yy",},},
{"id":{"name":"s_node_scatter","path":"sprites/s_node_scatter/s_node_scatter.yy",},},
{"id":{"name":"s_node_bokeh","path":"sprites/s_node_bokeh/s_node_bokeh.yy",},},
{"id":{"name":"s_node_3d_sphere_uv","path":"sprites/s_node_3d_sphere_uv/s_node_3d_sphere_uv.yy",},},
{"id":{"name":"s_biterator_toggler","path":"sprites/s_biterator_toggler/s_biterator_toggler.yy",},},
{"id":{"name":"sh_vertex_depth_pass","path":"shaders/sh_vertex_depth_pass/sh_vertex_depth_pass.yy",},},
{"id":{"name":"sh_curve","path":"shaders/sh_curve/sh_curve.yy",},},

View file

@ -158,7 +158,7 @@ function __3dObject() constructor {
var sca = matrix_build(0, 0, 0,
0, 0, 0,
params.custom_scale.x, params.custom_scale.y, params.custom_scale.z);
matrix_stack_push(pos);
matrix_stack_push(siz);
matrix_stack_push(sca);

View file

@ -5,27 +5,27 @@ function Node_3D_Mesh_Cone(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group
inputs[| in_mesh + 0] = nodeValue("Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8 );
inputs[| in_mesh + 1] = nodeValue("Texture Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 1] = nodeValue("Material Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 2] = nodeValue("Texture Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 2] = nodeValue("Material Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 3] = nodeValue("Smooth Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false );
input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 3,
__d3d_input_list_transform,
["Texture", false], in_mesh + 1, in_mesh + 2,
["Material", false], in_mesh + 1, in_mesh + 2,
]
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
var _side = _data[in_mesh + 0];
var _tex_bot = _data[in_mesh + 1];
var _tex_sid = _data[in_mesh + 2];
var _mat_bot = _data[in_mesh + 1];
var _mat_sid = _data[in_mesh + 2];
var _smt = _data[in_mesh + 3];
var object = getObject(_array_index);
object.checkParameter({sides: _side, smooth: _smt});
object.texture = [ surface_texture(_tex_bot), surface_texture(_tex_sid) ];
object.materials = [ _mat_bot, _mat_sid ];
setTransform(object, _data);

View file

@ -3,57 +3,55 @@ function Node_3D_Mesh_Cube(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group
object_class = noone;
inputs[| in_mesh + 0] = nodeValue("Texture per side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false );
inputs[| in_mesh + 0] = nodeValue("Material per side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false );
inputs[| in_mesh + 1] = nodeValue("Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 1] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 2] = nodeValue("Texture Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 2] = nodeValue("Material Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 3] = nodeValue("Texture Left", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 3] = nodeValue("Material Left", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 4] = nodeValue("Texture Right", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 4] = nodeValue("Material Right", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 5] = nodeValue("Texture Back", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 5] = nodeValue("Material Back", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 6] = nodeValue("Texture Front", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 6] = nodeValue("Material Front", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
input_display_list = [
__d3d_input_list_mesh,
__d3d_input_list_transform,
["Texture", false], in_mesh + 0, in_mesh + 1, in_mesh + 2, in_mesh + 3,
["Material", false], in_mesh + 0, in_mesh + 1, in_mesh + 2, in_mesh + 3,
in_mesh + 4, in_mesh + 5, in_mesh + 6,
]
static step = function() { #region
var _tex_side = inputs[| in_mesh + 0].getValue();
var _mat_side = inputs[| in_mesh + 0].getValue();
inputs[| in_mesh + 1].name = _tex_side? "Texture Top" : "Texture";
inputs[| in_mesh + 1].name = _mat_side? "Material Top" : "Material";
inputs[| in_mesh + 1].setVisible(true, true);
inputs[| in_mesh + 2].setVisible(_tex_side, _tex_side);
inputs[| in_mesh + 3].setVisible(_tex_side, _tex_side);
inputs[| in_mesh + 4].setVisible(_tex_side, _tex_side);
inputs[| in_mesh + 5].setVisible(_tex_side, _tex_side);
inputs[| in_mesh + 6].setVisible(_tex_side, _tex_side);
inputs[| in_mesh + 2].setVisible(_mat_side, _mat_side);
inputs[| in_mesh + 3].setVisible(_mat_side, _mat_side);
inputs[| in_mesh + 4].setVisible(_mat_side, _mat_side);
inputs[| in_mesh + 5].setVisible(_mat_side, _mat_side);
inputs[| in_mesh + 6].setVisible(_mat_side, _mat_side);
} #endregion
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
var _tex_side = _data[in_mesh + 0];
var _tex_1 = _data[in_mesh + 1];
var _tex_2 = _data[in_mesh + 2];
var _tex_3 = _data[in_mesh + 3];
var _tex_4 = _data[in_mesh + 4];
var _tex_5 = _data[in_mesh + 5];
var _tex_6 = _data[in_mesh + 6];
var _mat_side = _data[in_mesh + 0];
var _mat_1 = _data[in_mesh + 1];
var _mat_2 = _data[in_mesh + 2];
var _mat_3 = _data[in_mesh + 3];
var _mat_4 = _data[in_mesh + 4];
var _mat_5 = _data[in_mesh + 5];
var _mat_6 = _data[in_mesh + 6];
var object;
if(_tex_side) {
if(_mat_side) {
object = getObject(_array_index, __3dCubeFaces);
object.texture = [ surface_texture(_tex_1), surface_texture(_tex_2),
surface_texture(_tex_3), surface_texture(_tex_4),
surface_texture(_tex_5), surface_texture(_tex_6) ];
object.materials = [ _mat_1, _mat_2, _mat_3, _mat_4, _mat_5, _mat_6 ];
} else {
object = getObject(_array_index, __3dCube);
object.texture = [ surface_texture(_tex_1) ];
object.materials = [ _mat_1 ];
}
setTransform(object, _data);

View file

@ -5,30 +5,30 @@ function Node_3D_Mesh_Cylinder(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _g
inputs[| in_mesh + 0] = nodeValue("Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 8 );
inputs[| in_mesh + 1] = nodeValue("Texture Top", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 1] = nodeValue("Material Top", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 2] = nodeValue("Texture Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 2] = nodeValue("Material Bottom", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 3] = nodeValue("Texture Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 3] = nodeValue("Material Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 4] = nodeValue("Smooth Side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false );
input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 4,
__d3d_input_list_transform,
["Texture", false], in_mesh + 1, in_mesh + 2, in_mesh + 3,
["Material", false], in_mesh + 1, in_mesh + 2, in_mesh + 3,
]
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
var _side = _data[in_mesh + 0];
var _tex_top = _data[in_mesh + 1];
var _tex_bot = _data[in_mesh + 2];
var _tex_sid = _data[in_mesh + 3];
var _mat_top = _data[in_mesh + 1];
var _mat_bot = _data[in_mesh + 2];
var _mat_sid = _data[in_mesh + 3];
var _smt = _data[in_mesh + 4];
var object = getObject(_array_index);
object.checkParameter({sides: _side, smooth: _smt});
object.texture = [ surface_texture(_tex_top), surface_texture(_tex_bot), surface_texture(_tex_sid) ];
object.materials = [ _mat_top, _mat_bot, _mat_sid ];
setTransform(object, _data);

View file

@ -3,7 +3,7 @@ function Node_3D_Mesh_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _gr
object_class = __3dSurfaceExtrude;
inputs[| in_mesh + 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
inputs[| in_mesh + 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone);
inputs[| in_mesh + 1] = nodeValue("Height map", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
@ -18,14 +18,15 @@ function Node_3D_Mesh_Extrude(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _gr
]
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
var _surf = _data[in_mesh + 0];
var _mat = _data[in_mesh + 0];
var _hght = _data[in_mesh + 1];
var _smt = _data[in_mesh + 2];
var _updt = _data[in_mesh + 3];
var _surf = _mat == noone? noone : _mat.surface;
var object = getObject(_array_index);
object.checkParameter({surface: _surf, height: _hght, smooth: _smt}, _updt);
object.texture = [ surface_texture(_surf) ];
object.materials = [ _mat ];
setTransform(object, _data);

View file

@ -5,24 +5,24 @@ function Node_3D_Mesh_Sphere_Ico(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y,
inputs[| in_mesh + 0] = nodeValue("Subdivision", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1 );
inputs[| in_mesh + 1] = nodeValue("Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 1] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 2] = nodeValue("Smooth Normal", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false );
input_display_list = [
__d3d_input_list_mesh, in_mesh + 0, in_mesh + 2,
__d3d_input_list_transform,
["Texture", false], in_mesh + 1,
["Material", false], in_mesh + 1,
]
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
var _sub = _data[in_mesh + 0];
var _tex = _data[in_mesh + 1];
var _mat = _data[in_mesh + 1];
var _smt = _data[in_mesh + 2];
var object = getObject(_array_index);
object.checkParameter({level: _sub, smooth: _smt});
object.texture = [ surface_texture(_tex) ];
object.materials = [ _mat ];
setTransform(object, _data);

View file

@ -35,8 +35,8 @@ function Node_3D_Mesh_Obj(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group)
input_display_list = [
__d3d_input_list_mesh,
__d3d_input_list_transform,
["Object", false], in_mesh + 0,
["Texture", false], in_mesh + 1,
["Object", false], in_mesh + 0,
["Material", false], in_mesh + 1,
]
input_fix_len = ds_list_size(inputs);
@ -63,7 +63,7 @@ function Node_3D_Mesh_Obj(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group)
static createMaterial = function(m_index) { #region
var index = ds_list_size(inputs);
inputs[| index] = nodeValue(materialNames[m_index] + " Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone)
inputs[| index] = nodeValue(materialNames[m_index] + " Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone)
.setVisible(true, true);
input_display_list[input_display_len + m_index] = index;
@ -140,9 +140,9 @@ function Node_3D_Mesh_Obj(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group)
if(_path != current_path)
updateObj(_path);
var textures = [];
var materials = [];
for( var i = input_fix_len, n = array_length(_data); i < n; i++ )
textures[i - input_fix_len] = surface_texture(_data[i]);
materials[i - input_fix_len] = _data[i];
var _object = getObject(_array_index);
if(object == noone)
@ -153,7 +153,7 @@ function Node_3D_Mesh_Obj(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group)
_object.NVB = object.NVB;
_object.vertex = object.vertex;
_object.object_counts = object.object_counts;
_object.texture = textures;
_object.materials = materials;
setTransform(_object, _data);
return _object;

View file

@ -3,7 +3,7 @@ function Node_3D_Mesh_Plane(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _grou
object_class = __3dPlane;
inputs[| in_mesh + 0] = nodeValue("Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone );
inputs[| in_mesh + 0] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone );
inputs[| in_mesh + 1] = nodeValue("Normal", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2 )
.setDisplay(VALUE_DISPLAY.enum_button, [ "X", "Y", "Z" ]);
@ -11,16 +11,16 @@ function Node_3D_Mesh_Plane(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _grou
input_display_list = [
__d3d_input_list_mesh, in_mesh + 1,
__d3d_input_list_transform,
["Texture", false], in_mesh + 0,
["Material", false], in_mesh + 0,
]
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
var _tex = _data[in_mesh + 0];
var _mat = _data[in_mesh + 0];
var _axs = _data[in_mesh + 1];
var object = getObject(_array_index);
object.checkParameter({normal: _axs});
object.texture = [ surface_texture(_tex) ];
object.materials = [ _mat ];
setTransform(object, _data);

View file

@ -367,23 +367,23 @@ 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.");
ds_list_add(d3d, "3D");
addNodeObject(d3d, "3D Scene", s_node_3d_cube, "Node_3D_Scene", [1, Node_3D_Scene]);
addNodeObject(d3d, "3D Camera", s_node_3d_cube, "Node_3D_Camera", [1, Node_3D_Camera]);
addNodeObject(d3d, "3D Material", s_node_3d_cube, "Node_3D_Material", [1, Node_3D_Material]);
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 Material", s_node_3d_meterial, "Node_3D_Material", [1, Node_3D_Material]);
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 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 Cube", s_node_3d_cube, "Node_3D_Mesh_Cube", [1, Node_3D_Mesh_Cube]);
addNodeObject(d3d, "3D Cylinder", s_node_3d_cylinder, "Node_3D_Mesh_Cylinder", [1, Node_3D_Mesh_Cylinder]);
addNodeObject(d3d, "3D UV Sphere", s_node_3d_sphere, "Node_3D_Mesh_Sphere_UV", [1, Node_3D_Mesh_Sphere_UV]);
addNodeObject(d3d, "3D Icosphere", s_node_3d_sphere, "Node_3D_Mesh_Sphere_Ico", [1, Node_3D_Mesh_Sphere_Ico]);
addNodeObject(d3d, "3D Cone", s_node_3d_cone, "Node_3D_Mesh_Cone", [1, Node_3D_Mesh_Cone])
addNodeObject(d3d, "Surface Extrude", s_node_3d_extrude, "Node_3D_Mesh_Extrude", [1, Node_3D_Mesh_Extrude],, "Extrude 2D image into 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 Cube", s_node_3d_cube, "Node_3D_Mesh_Cube", [1, Node_3D_Mesh_Cube]);
addNodeObject(d3d, "3D Cylinder", s_node_3d_cylinder, "Node_3D_Mesh_Cylinder", [1, Node_3D_Mesh_Cylinder]);
addNodeObject(d3d, "3D UV Sphere", s_node_3d_sphere_uv, "Node_3D_Mesh_Sphere_UV", [1, Node_3D_Mesh_Sphere_UV]);
addNodeObject(d3d, "3D Icosphere", s_node_3d_sphere_ico, "Node_3D_Mesh_Sphere_Ico", [1, Node_3D_Mesh_Sphere_Ico]);
addNodeObject(d3d, "3D Cone", s_node_3d_cone, "Node_3D_Mesh_Cone", [1, Node_3D_Mesh_Cone])
addNodeObject(d3d, "Surface Extrude", s_node_3d_extrude, "Node_3D_Mesh_Extrude", [1, Node_3D_Mesh_Extrude],, "Extrude 2D image into 3D object.");
ds_list_add(d3d, "Light");
addNodeObject(d3d, "Directional Light", s_node_3d_cube, "Node_3D_Light_Directional", [1, Node_3D_Light_Directional]);
addNodeObject(d3d, "Point Light", s_node_3d_cube, "Node_3D_Light_Point", [1, Node_3D_Light_Point]);
addNodeObject(d3d, "Directional Light", s_node_3d_light_directi, "Node_3D_Light_Directional", [1, Node_3D_Light_Directional]);
addNodeObject(d3d, "Point Light", s_node_3d_light_point, "Node_3D_Light_Point", [1, Node_3D_Light_Point]);
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();

View file

@ -115,9 +115,9 @@ varying float v_cameraDistance;
vec3 viewDir = normalize(viewVec);
vec3 refcDir = reflect(-lightDir, normal);
float kD = 1, kS = 0;
float kD = 1., kS = 0.;
if(mat_diffuse + mat_specular != 0) {
if(mat_diffuse + mat_specular != 0.) {
kD = mat_diffuse / (mat_diffuse + mat_specular);
kS = mat_specular / (mat_diffuse + mat_specular);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -0,0 +1,74 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_3d_camera",
"bbox_bottom": 61,
"bbox_left": 2,
"bbox_right": 61,
"bbox_top": 2,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"453d1f44-0232-4468-9a89-f2e29c803c96",},
],
"gridX": 0,
"gridY": 0,
"height": 64,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"fdd1c445-15ed-490b-8cbf-4dec3f897978","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "3D",
"path": "folders/nodes/icons/3D.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_3d_camera",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 1.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"453d1f44-0232-4468-9a89-f2e29c803c96","path":"sprites/s_node_3d_camera/s_node_3d_camera.yy",},},},"Disabled":false,"id":"136d2012-2eae-4556-9de0-6b3f5b33b770","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 32,
"yorigin": 32,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,74 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_3d_light_directi",
"bbox_bottom": 58,
"bbox_left": 3,
"bbox_right": 60,
"bbox_top": 2,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"0ba42020-7546-4263-b4b1-40240a51f527",},
],
"gridX": 0,
"gridY": 0,
"height": 64,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"3e3b086d-014e-465b-aa5c-88622dddd1c3","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "3D",
"path": "folders/nodes/icons/3D.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_3d_light_directi",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 1.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"0ba42020-7546-4263-b4b1-40240a51f527","path":"sprites/s_node_3d_light_directi/s_node_3d_light_directi.yy",},},},"Disabled":false,"id":"e2219d6a-b5a4-41f7-bbc9-9b3893ea55da","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 32,
"yorigin": 32,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,74 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_3d_light_point",
"bbox_bottom": 61,
"bbox_left": 1,
"bbox_right": 62,
"bbox_top": 1,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"39d1d3de-14d9-425f-8c5c-85e9f872de3f",},
],
"gridX": 0,
"gridY": 0,
"height": 64,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"9340a932-7e5c-41e6-a73c-096118293d2f","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "3D",
"path": "folders/nodes/icons/3D.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_3d_light_point",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 1.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"39d1d3de-14d9-425f-8c5c-85e9f872de3f","path":"sprites/s_node_3d_light_point/s_node_3d_light_point.yy",},},},"Disabled":false,"id":"108a744a-aaee-4ae9-ba72-4791f4edf9fc","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 32,
"yorigin": 32,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,74 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_3d_meterial",
"bbox_bottom": 57,
"bbox_left": 6,
"bbox_right": 57,
"bbox_top": 6,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"05029973-4048-4752-9a25-c50c8d3aad69",},
],
"gridX": 0,
"gridY": 0,
"height": 64,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"7903cc5e-b815-4dda-815c-a838dd455263","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "3D",
"path": "folders/nodes/icons/3D.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_3d_meterial",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 1.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"05029973-4048-4752-9a25-c50c8d3aad69","path":"sprites/s_node_3d_meterial/s_node_3d_meterial.yy",},},},"Disabled":false,"id":"8587664d-efce-4ed6-a5e0-3fbdfd21cc12","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 32,
"yorigin": 32,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,74 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_3d_scene",
"bbox_bottom": 61,
"bbox_left": 6,
"bbox_right": 57,
"bbox_top": 2,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"6129b2b3-dfab-4324-8109-9f988ecc601f",},
],
"gridX": 0,
"gridY": 0,
"height": 64,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"f99aed39-a7f8-4b03-b892-358b336626ac","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "3D",
"path": "folders/nodes/icons/3D.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_3d_scene",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 1.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"6129b2b3-dfab-4324-8109-9f988ecc601f","path":"sprites/s_node_3d_scene/s_node_3d_scene.yy",},},},"Disabled":false,"id":"989dff58-7f2a-4c47-a413-e123a2fbbd6b","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 32,
"yorigin": 32,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1,74 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_3d_sphere_ico",
"bbox_bottom": 58,
"bbox_left": 6,
"bbox_right": 57,
"bbox_top": 5,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"3c3a032c-1fd3-48ed-b521-f8ff7e7a9264",},
],
"gridX": 0,
"gridY": 0,
"height": 64,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"edf41f62-1f0e-4c73-9dc3-05c6e8bb0a97","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "3D",
"path": "folders/nodes/icons/3D.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_3d_sphere_ico",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 1.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"3c3a032c-1fd3-48ed-b521-f8ff7e7a9264","path":"sprites/s_node_3d_sphere_ico/s_node_3d_sphere_ico.yy",},},},"Disabled":false,"id":"cf82f5c1-617a-49ab-a363-5332da9244b7","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 32,
"yorigin": 32,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 64,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -0,0 +1,74 @@
{
"resourceType": "GMSprite",
"resourceVersion": "1.0",
"name": "s_node_3d_sphere_uv",
"bbox_bottom": 57,
"bbox_left": 6,
"bbox_right": 57,
"bbox_top": 6,
"bboxMode": 0,
"collisionKind": 1,
"collisionTolerance": 0,
"DynamicTexturePage": false,
"edgeFiltering": false,
"For3D": false,
"frames": [
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"36dc80df-1de4-48bf-912d-644782c7afaa",},
],
"gridX": 0,
"gridY": 0,
"height": 64,
"HTile": false,
"layers": [
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"0217769b-c275-4284-84ca-cbeadc8deec4","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,},
],
"nineSlice": null,
"origin": 4,
"parent": {
"name": "3D",
"path": "folders/nodes/icons/3D.yy",
},
"preMultiplyAlpha": false,
"sequence": {
"resourceType": "GMSequence",
"resourceVersion": "1.4",
"name": "s_node_3d_sphere_uv",
"autoRecord": true,
"backdropHeight": 768,
"backdropImageOpacity": 0.5,
"backdropImagePath": "",
"backdropWidth": 1366,
"backdropXOffset": 0.0,
"backdropYOffset": 0.0,
"events": {"resourceType":"KeyframeStore<MessageEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"eventStubScript": null,
"eventToFunction": {},
"length": 1.0,
"lockOrigin": false,
"moments": {"resourceType":"KeyframeStore<MomentsEventKeyframe>","resourceVersion":"1.0","Keyframes":[],},
"playback": 1,
"playbackSpeed": 30.0,
"playbackSpeedType": 0,
"showBackdrop": true,
"showBackdropImage": false,
"timeUnits": 1,
"tracks": [
{"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore<SpriteFrameKeyframe>","resourceVersion":"1.0","Keyframes":[
{"resourceType":"Keyframe<SpriteFrameKeyframe>","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"36dc80df-1de4-48bf-912d-644782c7afaa","path":"sprites/s_node_3d_sphere_uv/s_node_3d_sphere_uv.yy",},},},"Disabled":false,"id":"172c36a0-f42f-42aa-9922-94d5081a369e","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,},
],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,},
],
"visibleRange": null,
"volume": 1.0,
"xorigin": 32,
"yorigin": 32,
},
"swatchColours": null,
"swfPrecision": 2.525,
"textureGroupId": {
"name": "Default",
"path": "texturegroups/Default",
},
"type": 0,
"VTile": false,
"width": 64,
}