mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2024-12-25 06:26:42 +01:00
3D image transform node.
This commit is contained in:
parent
d5f1a61a6c
commit
97c2915406
15 changed files with 296 additions and 34 deletions
|
@ -96,12 +96,12 @@
|
|||
{"name":"3D","order":20,"path":"folders/nodes/data/3D.yy",},
|
||||
{"name":"primitive","order":9,"path":"folders/nodes/data/3D/__legacy/primitive.yy",},
|
||||
{"name":"2d effects","order":1,"path":"folders/nodes/data/3D/2d effects.yy",},
|
||||
{"name":"d3d camera","order":12,"path":"folders/nodes/data/3D/d3d camera.yy",},
|
||||
{"name":"d3d compose","order":8,"path":"folders/nodes/data/3D/d3d compose.yy",},
|
||||
{"name":"d3d light","order":6,"path":"folders/nodes/data/3D/d3d light.yy",},
|
||||
{"name":"d3d mesh","order":4,"path":"folders/nodes/data/3D/d3d mesh.yy",},
|
||||
{"name":"d3d modifier","order":9,"path":"folders/nodes/data/3D/d3d modifier.yy",},
|
||||
{"name":"d3d particle","order":10,"path":"folders/nodes/data/3D/d3d particle.yy",},
|
||||
{"name":"d3d camera","order":11,"path":"folders/nodes/data/3D/d3d camera.yy",},
|
||||
{"name":"d3d compose","order":7,"path":"folders/nodes/data/3D/d3d compose.yy",},
|
||||
{"name":"d3d light","order":5,"path":"folders/nodes/data/3D/d3d light.yy",},
|
||||
{"name":"d3d mesh","order":3,"path":"folders/nodes/data/3D/d3d mesh.yy",},
|
||||
{"name":"d3d modifier","order":8,"path":"folders/nodes/data/3D/d3d modifier.yy",},
|
||||
{"name":"d3d particle","order":9,"path":"folders/nodes/data/3D/d3d particle.yy",},
|
||||
{"name":"animation","order":6,"path":"folders/nodes/data/animation.yy",},
|
||||
{"name":"compose","order":11,"path":"folders/nodes/data/compose.yy",},
|
||||
{"name":"armature","order":3,"path":"folders/nodes/data/compose/armature.yy",},
|
||||
|
@ -274,7 +274,7 @@
|
|||
{"name":"__node_process_template","order":18,"path":"scripts/__node_process_template/__node_process_template.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":"node_3d_point_affector","order":11,"path":"scripts/node_3d_point_affector/node_3d_point_affector.yy",},
|
||||
{"name":"node_3d_point_affector","order":10,"path":"scripts/node_3d_point_affector/node_3d_point_affector.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":"s_node_grid_tri_noise","order":22,"path":"sprites/s_node_grid_tri_noise/s_node_grid_tri_noise.yy",},
|
||||
|
@ -483,7 +483,7 @@
|
|||
{"name":"byte_writer","order":8,"path":"scripts/byte_writer/byte_writer.yy",},
|
||||
{"name":"checkboxGroup","order":28,"path":"scripts/checkboxGroup/checkboxGroup.yy",},
|
||||
{"name":"node_FXAA","order":8,"path":"scripts/node_FXAA/node_FXAA.yy",},
|
||||
{"name":"__node_3d_object","order":5,"path":"scripts/__node_3d_object/__node_3d_object.yy",},
|
||||
{"name":"__node_3d_object","order":4,"path":"scripts/__node_3d_object/__node_3d_object.yy",},
|
||||
{"name":"s_node_pixel_find","order":13,"path":"sprites/s_node_pixel_find/s_node_pixel_find.yy",},
|
||||
{"name":"s_biterator_canvas_cover","order":16,"path":"sprites/s_biterator_canvas_cover/s_biterator_canvas_cover.yy",},
|
||||
{"name":"sh_noise_grid_tri","order":3,"path":"shaders/sh_noise_grid_tri/sh_noise_grid_tri.yy",},
|
||||
|
@ -501,6 +501,7 @@
|
|||
{"name":"s_node_HSV_combine","order":44,"path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",},
|
||||
{"name":"Obj_FirebaseFirestore_Collection_Query_GreaterEqual","order":5,"path":"objects/Obj_FirebaseFirestore_Collection_Query_GreaterEqual/Obj_FirebaseFirestore_Collection_Query_GreaterEqual.yy",},
|
||||
{"name":"s_node_pb_box_contract","order":25,"path":"sprites/s_node_pb_box_contract/s_node_pb_box_contract.yy",},
|
||||
{"name":"s_node_image_transform_3d","order":25,"path":"sprites/s_node_image_transform_3d/s_node_image_transform_3d.yy",},
|
||||
{"name":"node_normal_light","order":2,"path":"scripts/node_normal_light/node_normal_light.yy",},
|
||||
{"name":"o_dialog_release_note","order":8,"path":"objects/o_dialog_release_note/o_dialog_release_note.yy",},
|
||||
{"name":"sh_fd_advect_material_rgba_16_glsl","order":4,"path":"shaders/sh_fd_advect_material_rgba_16_glsl/sh_fd_advect_material_rgba_16_glsl.yy",},
|
||||
|
@ -785,7 +786,7 @@
|
|||
{"name":"draw_sprite_ext_override","order":9,"path":"scripts/draw_sprite_ext_override/draw_sprite_ext_override.yy",},
|
||||
{"name":"node_array_add","order":6,"path":"scripts/node_array_add/node_array_add.yy",},
|
||||
{"name":"o_dialog_textbox_function_guide","order":8,"path":"objects/o_dialog_textbox_function_guide/o_dialog_textbox_function_guide.yy",},
|
||||
{"name":"node_3d_material","order":7,"path":"scripts/node_3d_material/node_3d_material.yy",},
|
||||
{"name":"node_3d_material","order":6,"path":"scripts/node_3d_material/node_3d_material.yy",},
|
||||
{"name":"pcx_server","order":2,"path":"scripts/pcx_server/pcx_server.yy",},
|
||||
{"name":"s_node_array_set","order":9,"path":"sprites/s_node_array_set/s_node_array_set.yy",},
|
||||
{"name":"node_dust","order":19,"path":"scripts/node_dust/node_dust.yy",},
|
||||
|
@ -1714,6 +1715,7 @@
|
|||
{"name":"node_iterator_sort_input","order":1,"path":"scripts/node_iterator_sort_input/node_iterator_sort_input.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":"node_3d_transform_image","order":12,"path":"scripts/node_3d_transform_image/node_3d_transform_image.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":"tooltip_selector_object","order":1,"path":"scripts/tooltip_selector_object/tooltip_selector_object.yy",},
|
||||
|
|
|
@ -1098,6 +1098,7 @@
|
|||
{"id":{"name":"s_node_HSV_combine","path":"sprites/s_node_HSV_combine/s_node_HSV_combine.yy",},},
|
||||
{"id":{"name":"Obj_FirebaseFirestore_Collection_Query_GreaterEqual","path":"objects/Obj_FirebaseFirestore_Collection_Query_GreaterEqual/Obj_FirebaseFirestore_Collection_Query_GreaterEqual.yy",},},
|
||||
{"id":{"name":"s_node_pb_box_contract","path":"sprites/s_node_pb_box_contract/s_node_pb_box_contract.yy",},},
|
||||
{"id":{"name":"s_node_image_transform_3d","path":"sprites/s_node_image_transform_3d/s_node_image_transform_3d.yy",},},
|
||||
{"id":{"name":"node_normal_light","path":"scripts/node_normal_light/node_normal_light.yy",},},
|
||||
{"id":{"name":"o_dialog_release_note","path":"objects/o_dialog_release_note/o_dialog_release_note.yy",},},
|
||||
{"id":{"name":"sh_fd_advect_material_rgba_16_glsl","path":"shaders/sh_fd_advect_material_rgba_16_glsl/sh_fd_advect_material_rgba_16_glsl.yy",},},
|
||||
|
@ -2493,6 +2494,7 @@
|
|||
{"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":"s_node_smokeSim_render_output","path":"sprites/s_node_smokeSim_render_output/s_node_smokeSim_render_output.yy",},},
|
||||
{"id":{"name":"node_3d_transform_image","path":"scripts/node_3d_transform_image/node_3d_transform_image.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":"o_dialog_about","path":"objects/o_dialog_about/o_dialog_about.yy",},},
|
||||
|
|
|
@ -594,8 +594,12 @@ function Node_3D_Object(_x, _y, _group = noone) : Node_3D(_x, _y, _group) constr
|
|||
drag_axis = noone;
|
||||
UNDO_HOLDING = false;
|
||||
}
|
||||
|
||||
if(onDrawOverlay3D != 0) onDrawOverlay3D(active, params, _mx, _my, _snx, _sny, _panel);
|
||||
} #endregion
|
||||
|
||||
static onDrawOverlay3D = 0;
|
||||
|
||||
static setTransform = function(object, _data) { #region
|
||||
if(object == noone) return;
|
||||
var _pos = _data[0];
|
||||
|
|
|
@ -25,10 +25,10 @@
|
|||
|
||||
globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER;
|
||||
|
||||
VERSION = 11571;
|
||||
VERSION = 11600;
|
||||
SAVE_VERSION = 11570;
|
||||
VERSION_STRING = "1.15.7.1";
|
||||
BUILD_NUMBER = 11571;
|
||||
VERSION_STRING = "1.16rc1";
|
||||
BUILD_NUMBER = 11600;
|
||||
|
||||
globalvar APPEND_MAP;
|
||||
APPEND_MAP = ds_map_create();
|
||||
|
|
|
@ -129,25 +129,27 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
|
|||
UNDO_HOLDING = false;
|
||||
}
|
||||
|
||||
var _outSurf = outputs[| 0].getValue();
|
||||
if(is_array(_outSurf)) _outSurf = array_safe_get(_outSurf, 0);
|
||||
if(!is_surface(_outSurf)) return;
|
||||
#region draw result
|
||||
var _outSurf = outputs[| 0].getValue();
|
||||
if(is_array(_outSurf)) _outSurf = array_safe_get(_outSurf, 0);
|
||||
if(!is_surface(_outSurf)) return;
|
||||
|
||||
var _w = _panel.w;
|
||||
var _h = _panel.h - _panel.toolbar_height;
|
||||
var _pw = surface_get_width_safe(_outSurf);
|
||||
var _ph = surface_get_height_safe(_outSurf);
|
||||
var _ps = min(128 / _ph, 160 / _pw);
|
||||
var _w = _panel.w;
|
||||
var _h = _panel.h - _panel.toolbar_height;
|
||||
var _pw = surface_get_width_safe(_outSurf);
|
||||
var _ph = surface_get_height_safe(_outSurf);
|
||||
var _ps = min(128 / _ph, 160 / _pw);
|
||||
|
||||
var _pws = _pw * _ps;
|
||||
var _phs = _ph * _ps;
|
||||
var _pws = _pw * _ps;
|
||||
var _phs = _ph * _ps;
|
||||
|
||||
var _px = _w - 16 - _pws;
|
||||
var _py = _h - 16 - _phs;
|
||||
var _px = _w - 16 - _pws;
|
||||
var _py = _h - 16 - _phs;
|
||||
|
||||
draw_surface_ext_safe(_outSurf, _px, _py, _ps, _ps);
|
||||
draw_set_color(COLORS._main_icon);
|
||||
draw_rectangle(_px, _py, _px + _pws, _py + _phs, true);
|
||||
draw_surface_ext_safe(_outSurf, _px, _py, _ps, _ps);
|
||||
draw_set_color(COLORS._main_icon);
|
||||
draw_rectangle(_px, _py, _px + _pws, _py + _phs, true);
|
||||
#endregion
|
||||
} #endregion
|
||||
|
||||
static onValueUpdate = function(index) { #region
|
||||
|
|
43
scripts/node_3d_transform_image/node_3d_mesh_plane.gml
Normal file
43
scripts/node_3d_transform_image/node_3d_mesh_plane.gml
Normal file
|
@ -0,0 +1,43 @@
|
|||
function Node_3D_Mesh_Plane(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group) constructor {
|
||||
name = "3D Plane";
|
||||
|
||||
object_class = __3dPlane;
|
||||
|
||||
inputs[| in_mesh + 0] = nodeValue("Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone )
|
||||
.setVisible(true, true);
|
||||
|
||||
inputs[| in_mesh + 1] = nodeValue("Normal", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2 )
|
||||
.setDisplay(VALUE_DISPLAY.enum_button, [ "X", "Y", "Z" ]);
|
||||
|
||||
inputs[| in_mesh + 2] = nodeValue("Both side", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, false )
|
||||
|
||||
inputs[| in_mesh + 3] = nodeValue("Back Material", self, JUNCTION_CONNECT.input, VALUE_TYPE.d3Material, noone )
|
||||
|
||||
input_display_list = [
|
||||
__d3d_input_list_mesh, in_mesh + 1,
|
||||
__d3d_input_list_transform,
|
||||
["Material", false], in_mesh + 2, in_mesh + 0, in_mesh + 3,
|
||||
]
|
||||
|
||||
static step = function() {
|
||||
var _both = getSingleValue(in_mesh + 2);
|
||||
inputs[| in_mesh + 3].setVisible(_both, _both);
|
||||
}
|
||||
|
||||
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
|
||||
var _mat = _data[in_mesh + 0];
|
||||
var _axs = _data[in_mesh + 1];
|
||||
var _both = _data[in_mesh + 2];
|
||||
var _bmat = _data[in_mesh + 3];
|
||||
|
||||
var object = getObject(_array_index);
|
||||
object.checkParameter({ normal: _axs, two_side: _both });
|
||||
object.materials = _both? [ _mat, _bmat ] : [ _mat ];
|
||||
|
||||
setTransform(object, _data);
|
||||
|
||||
return object;
|
||||
} #endregion
|
||||
|
||||
static getPreviewValues = function() { return array_safe_get(all_inputs, in_mesh + 0, noone); }
|
||||
}
|
110
scripts/node_3d_transform_image/node_3d_transform_image.gml
Normal file
110
scripts/node_3d_transform_image/node_3d_transform_image.gml
Normal file
|
@ -0,0 +1,110 @@
|
|||
function Node_3D_Transform_Image(_x, _y, _group = noone) : Node_3D_Mesh(_x, _y, _group) constructor {
|
||||
name = "Transform 3D";
|
||||
|
||||
preview_channel = 1;
|
||||
object = new __3dPlane();
|
||||
object.checkParameter({ normal: 2 });
|
||||
|
||||
objectPreview = new __3dPlane();
|
||||
objectPreview.checkParameter({ normal: 2 });
|
||||
materialPreview = new __d3dMaterial();
|
||||
objectPreview.materials[0] = materialPreview;
|
||||
|
||||
camera = camera_create();
|
||||
viewMat = matrix_build_lookat(0, 0, 1,
|
||||
0, 0, 0,
|
||||
1, 0, 0);
|
||||
|
||||
projMat = matrix_build_projection_ortho(1, 1, 0.001, 10);
|
||||
|
||||
|
||||
inputs[| in_mesh + 0] = nodeValue("Surface", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone )
|
||||
.setVisible(true, true);
|
||||
|
||||
input_display_list = [
|
||||
["Material", false], in_mesh + 0,
|
||||
__d3d_input_list_transform,
|
||||
]
|
||||
|
||||
outputs[| 0].setVisible(false);
|
||||
outputs[| 1] = nodeValue("Rendered", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
|
||||
|
||||
output_display_list = [ 1 ]
|
||||
|
||||
static onDrawOverlay3D = function(active, params, _mx, _my, _snx, _sny, _panel) {
|
||||
#region draw result
|
||||
var _outSurf = outputs[| 1].getValue();
|
||||
if(is_array(_outSurf)) _outSurf = array_safe_get(_outSurf, preview_index);
|
||||
if(!is_surface(_outSurf)) return;
|
||||
|
||||
var _w = _panel.w;
|
||||
var _h = _panel.h - _panel.toolbar_height;
|
||||
var _pw = surface_get_width_safe(_outSurf);
|
||||
var _ph = surface_get_height_safe(_outSurf);
|
||||
var _ps = min(128 / _ph, 160 / _pw);
|
||||
|
||||
var _pws = _pw * _ps;
|
||||
var _phs = _ph * _ps;
|
||||
|
||||
var _px = _w - 16 - _pws;
|
||||
var _py = _h - 16 - _phs;
|
||||
|
||||
draw_surface_ext_safe(_outSurf, _px, _py, _ps, _ps);
|
||||
draw_set_color(COLORS._main_icon);
|
||||
draw_rectangle(_px, _py, _px + _pws, _py + _phs, true);
|
||||
#endregion
|
||||
}
|
||||
|
||||
static processData = function(_output, _data, _output_index, _array_index = 0) { #region
|
||||
var _surf = _data[in_mesh + 0];
|
||||
if(!is_surface(_surf)) return 0;
|
||||
|
||||
if(_output_index == 0) {
|
||||
object.materials = [ new __d3dMaterial(_surf) ];
|
||||
setTransform(object, _data);
|
||||
|
||||
if(_array_index == preview_index) {
|
||||
materialPreview.surface = _surf;
|
||||
setTransform(objectPreview, _data);
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
if(_output_index == 1) {
|
||||
_output = surface_verify(_output, surface_get_width_safe(_surf), surface_get_height_safe(_surf));
|
||||
surface_set_target(_output);
|
||||
DRAW_CLEAR
|
||||
camera_set_view_mat(camera, viewMat);
|
||||
camera_set_proj_mat(camera, projMat);
|
||||
camera_apply(camera);
|
||||
|
||||
object.transform.submitMatrix();
|
||||
matrix_set(matrix_world, matrix_stack_top());
|
||||
|
||||
vertex_submit(object.VB[0], pr_trianglelist, surface_get_texture(_surf));
|
||||
|
||||
object.transform.clearMatrix();
|
||||
matrix_set(matrix_world, matrix_build_identity());
|
||||
|
||||
camera_apply(0);
|
||||
surface_reset_target();
|
||||
|
||||
return _output;
|
||||
}
|
||||
|
||||
return 0;
|
||||
} #endregion
|
||||
|
||||
static getPreviewObject = function() { return objectPreview; }
|
||||
|
||||
static getPreviewValues = function() { return array_safe_get(all_inputs, in_mesh + 0, noone); }
|
||||
|
||||
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover = false, _focus = false) { #region
|
||||
var _surf = outputs[| 1].getValue();
|
||||
if(is_array(_surf)) _surf = array_safe_get(_surf[preview_index]);
|
||||
if(!is_surface(_surf)) return;
|
||||
|
||||
var bbox = drawGetBbox(xx, yy, _s);
|
||||
draw_surface_bbox(_surf, bbox);
|
||||
} #endregion
|
||||
}
|
11
scripts/node_3d_transform_image/node_3d_transform_image.yy
Normal file
11
scripts/node_3d_transform_image/node_3d_transform_image.yy
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"resourceType": "GMScript",
|
||||
"resourceVersion": "1.0",
|
||||
"name": "node_3d_transform_image",
|
||||
"isCompatibility": false,
|
||||
"isDnD": false,
|
||||
"parent": {
|
||||
"name": "3D",
|
||||
"path": "folders/nodes/data/3D.yy",
|
||||
},
|
||||
}
|
12
scripts/node_3d_transform_image/node_counter.yy
Normal file
12
scripts/node_3d_transform_image/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",
|
||||
}
|
|
@ -295,6 +295,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
|||
|
||||
var _hi = ui(junction_draw_pad_y);
|
||||
var _ho = ui(junction_draw_pad_y);
|
||||
var _prev_surf = previewable && (preview_channel < ds_list_size(outputs) && outputs[| preview_channel].type == VALUE_TYPE.surface);
|
||||
|
||||
for( var i = 0; i < ds_list_size(inputs); i++ ) {
|
||||
var _inp = inputs[| i];
|
||||
|
@ -308,7 +309,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
|||
for( var i = 0; i < ds_list_size(outputs); i++ )
|
||||
if(outputs[| i].isVisible()) _ho += 24;
|
||||
|
||||
h = max(min_h, previewable * 128, _hi, _ho);
|
||||
h = max(min_h, _prev_surf * 128, _hi, _ho);
|
||||
} run_in(1, function() { setHeight(); }); #endregion
|
||||
|
||||
static setDisplayName = function(_name) { #region
|
||||
|
|
|
@ -11,7 +11,7 @@ function Node_Palette_Extract(_x, _y, _group = noone) : Node(_x, _y, _group) con
|
|||
.rejectArray();
|
||||
|
||||
inputs[| 3] = nodeValue("Algorithm", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
|
||||
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "K-mean", "Frequency", "All colors" ])
|
||||
.setDisplay(VALUE_DISPLAY.enum_scroll, { data: [ "K-mean", "Frequency", "All colors" ], update_hover: false })
|
||||
.rejectArray();
|
||||
|
||||
outputs[| 0] = nodeValue("Palette", self, JUNCTION_CONNECT.output, VALUE_TYPE.color, [ ])
|
||||
|
|
|
@ -498,11 +498,12 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio
|
|||
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 Camera", s_node_3d_camera, "Node_3D_Camera", [1, Node_3D_Camera]).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Camera Set", s_node_3d_camera_set, "Node_3D_Camera_Set", [1, Node_3D_Camera_Set]).setVersion(11571);
|
||||
addNodeObject(d3d, "3D Material", s_node_3d_meterial, "Node_3D_Material", [1, Node_3D_Material]).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Scene", s_node_3d_scene, "Node_3D_Scene", [1, Node_3D_Scene]).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Repeat", s_node_3d_array, "Node_3D_Repeat", [1, Node_3D_Repeat]).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Camera", s_node_3d_camera, "Node_3D_Camera", [1, Node_3D_Camera]).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Camera Set", s_node_3d_camera_set, "Node_3D_Camera_Set", [1, Node_3D_Camera_Set]).setVersion(11571);
|
||||
addNodeObject(d3d, "3D Material", s_node_3d_meterial, "Node_3D_Material", [1, Node_3D_Material]).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Scene", s_node_3d_scene, "Node_3D_Scene", [1, Node_3D_Scene]).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Repeat", s_node_3d_array, "Node_3D_Repeat", [1, Node_3D_Repeat]).setVersion(11510);
|
||||
addNodeObject(d3d, "Transform 3D", s_node_image_transform_3d, "Node_3D_Transform_Image", [1, Node_3D_Transform_Image],, "Transform image in 3D space").setVersion(11600);
|
||||
|
||||
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.").setVersion(11510);
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
"resourceType": "GMSprite",
|
||||
"resourceVersion": "1.0",
|
||||
"name": "s_node_image_transform_3d",
|
||||
"bbox_bottom": 62,
|
||||
"bbox_left": 13,
|
||||
"bbox_right": 50,
|
||||
"bbox_top": 1,
|
||||
"bboxMode": 0,
|
||||
"collisionKind": 1,
|
||||
"collisionTolerance": 0,
|
||||
"DynamicTexturePage": false,
|
||||
"edgeFiltering": false,
|
||||
"For3D": false,
|
||||
"frames": [
|
||||
{"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"fd1959b6-75b9-42a3-b449-4ec476e5d3b7",},
|
||||
],
|
||||
"gridX": 0,
|
||||
"gridY": 0,
|
||||
"height": 64,
|
||||
"HTile": false,
|
||||
"layers": [
|
||||
{"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"6ab7e1e4-082d-417e-a93e-4ae569a8492c","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_image_transform_3d",
|
||||
"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":"fd1959b6-75b9-42a3-b449-4ec476e5d3b7","path":"sprites/s_node_image_transform_3d/s_node_image_transform_3d.yy",},},},"Disabled":false,"id":"1f916d17-4fe4-4671-8559-36a8c909095f","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,
|
||||
}
|
Loading…
Reference in a new issue