mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-02-15 14:45:12 +01:00
[Export] Add openExr export format.
This commit is contained in:
parent
0c86654fa1
commit
2f424e6284
8 changed files with 353 additions and 130 deletions
|
@ -54,8 +54,8 @@
|
|||
{"name":"sprite","order":30,"path":"folders/functions/sprite.yy",},
|
||||
{"name":"string","order":31,"path":"folders/functions/string.yy",},
|
||||
{"name":"surface","order":32,"path":"folders/functions/surface.yy",},
|
||||
{"name":"dynamic_surface","order":8,"path":"folders/functions/surface/dynamic_surface.yy",},
|
||||
{"name":"svg","order":46,"path":"folders/functions/svg.yy",},
|
||||
{"name":"dynamic_surface","order":1,"path":"folders/functions/surface/dynamic_surface.yy",},
|
||||
{"name":"svg","order":39,"path":"folders/functions/svg.yy",},
|
||||
{"name":"test","order":33,"path":"folders/functions/test.yy",},
|
||||
{"name":"tooltip","order":34,"path":"folders/functions/tooltip.yy",},
|
||||
{"name":"tween","order":35,"path":"folders/functions/tween.yy",},
|
||||
|
@ -94,6 +94,7 @@
|
|||
{"name":"filter","order":4,"path":"folders/nodes/data/filter.yy",},
|
||||
{"name":"colors","order":1,"path":"folders/nodes/data/filter/colors.yy",},
|
||||
{"name":"normalize","order":37,"path":"folders/nodes/data/filter/colors/normalize.yy",},
|
||||
{"name":"threshold","order":23,"path":"folders/nodes/data/filter/colors/threshold.yy",},
|
||||
{"name":"combine","order":2,"path":"folders/nodes/data/filter/combine.yy",},
|
||||
{"name":"conversion","order":3,"path":"folders/nodes/data/filter/conversion.yy",},
|
||||
{"name":"hsv channel","order":5,"path":"folders/nodes/data/filter/conversion/hsv channel.yy",},
|
||||
|
@ -261,7 +262,6 @@
|
|||
{"name":"rotator","order":2,"path":"folders/widgets/rotator.yy",},
|
||||
{"name":"sliders","order":3,"path":"folders/widgets/sliders.yy",},
|
||||
{"name":"text","order":4,"path":"folders/widgets/text.yy",},
|
||||
{"name":"threshold","order":23,"path":"folders/nodes/data/filter/colors/threshold.yy",},
|
||||
],
|
||||
"ResourceOrderSettings":[
|
||||
{"name":"ac_disappear","order":2,"path":"animcurves/ac_disappear/ac_disappear.yy",},
|
||||
|
@ -440,7 +440,6 @@
|
|||
{"name":"__rectangle","order":7,"path":"scripts/__rectangle/__rectangle.yy",},
|
||||
{"name":"__shapes","order":3,"path":"scripts/__shapes/__shapes.yy",},
|
||||
{"name":"__strandSim","order":2,"path":"scripts/__strandSim/__strandSim.yy",},
|
||||
{"name":"__surface","order":7,"path":"scripts/__surface/__surface.yy",},
|
||||
{"name":"__tiler_autoterrain","order":1,"path":"scripts/__tiler_autoterrain/__tiler_autoterrain.yy",},
|
||||
{"name":"__tiler_brush","order":3,"path":"scripts/__tiler_brush/__tiler_brush.yy",},
|
||||
{"name":"__tiler_rule","order":4,"path":"scripts/__tiler_rule/__tiler_rule.yy",},
|
||||
|
@ -483,6 +482,7 @@
|
|||
{"name":"binder_gamemaker_tile","order":7,"path":"scripts/binder_gamemaker_tile/binder_gamemaker_tile.yy",},
|
||||
{"name":"binder_gamemaker","order":6,"path":"scripts/binder_gamemaker/binder_gamemaker.yy",},
|
||||
{"name":"biterator","order":1,"path":"scripts/biterator/biterator.yy",},
|
||||
{"name":"blurSurface","order":2,"path":"scripts/blurSurface/blurSurface.yy",},
|
||||
{"name":"buffer_object","order":1,"path":"scripts/buffer_object/buffer_object.yy",},
|
||||
{"name":"buttonAnchor","order":5,"path":"scripts/buttonAnchor/buttonAnchor.yy",},
|
||||
{"name":"buttonColor","order":1,"path":"scripts/buttonColor/buttonColor.yy",},
|
||||
|
@ -519,7 +519,7 @@
|
|||
{"name":"color_loader","order":13,"path":"scripts/color_loader/color_loader.yy",},
|
||||
{"name":"color_selector","order":4,"path":"scripts/color_selector/color_selector.yy",},
|
||||
{"name":"complex_function","order":12,"path":"scripts/complex_function/complex_function.yy",},
|
||||
{"name":"console_commands","order":45,"path":"scripts/console_commands/console_commands.yy",},
|
||||
{"name":"console_commands","order":47,"path":"scripts/console_commands/console_commands.yy",},
|
||||
{"name":"controlPointBox","order":4,"path":"scripts/controlPointBox/controlPointBox.yy",},
|
||||
{"name":"cornerBox","order":5,"path":"scripts/cornerBox/cornerBox.yy",},
|
||||
{"name":"cross_product","order":3,"path":"scripts/cross_product/cross_product.yy",},
|
||||
|
@ -558,12 +558,12 @@
|
|||
{"name":"d3d_uvsphere","order":8,"path":"scripts/d3d_uvsphere/d3d_uvsphere.yy",},
|
||||
{"name":"d3d_vertex","order":10,"path":"scripts/d3d_vertex/d3d_vertex.yy",},
|
||||
{"name":"d3d_wall_builder","order":26,"path":"scripts/d3d_wall_builder/d3d_wall_builder.yy",},
|
||||
{"name":"debug","order":40,"path":"scripts/debug/debug.yy",},
|
||||
{"name":"debug","order":42,"path":"scripts/debug/debug.yy",},
|
||||
{"name":"delaunay","order":1,"path":"scripts/delaunay/delaunay.yy",},
|
||||
{"name":"dialog_management","order":2,"path":"scripts/dialog_management/dialog_management.yy",},
|
||||
{"name":"directory_functions","order":9,"path":"scripts/directory_functions/directory_functions.yy",},
|
||||
{"name":"directory_object","order":3,"path":"scripts/directory_object/directory_object.yy",},
|
||||
{"name":"display_refresh","order":41,"path":"scripts/display_refresh/display_refresh.yy",},
|
||||
{"name":"display_refresh","order":43,"path":"scripts/display_refresh/display_refresh.yy",},
|
||||
{"name":"distribution_function","order":16,"path":"scripts/distribution_function/distribution_function.yy",},
|
||||
{"name":"draw_arc","order":16,"path":"scripts/draw_arc/draw_arc.yy",},
|
||||
{"name":"draw_circle_functions","order":3,"path":"scripts/draw_circle_functions/draw_circle_functions.yy",},
|
||||
|
@ -582,8 +582,8 @@
|
|||
{"name":"draw_setter","order":1,"path":"scripts/draw_setter/draw_setter.yy",},
|
||||
{"name":"draw_shapes","order":9,"path":"scripts/draw_shapes/draw_shapes.yy",},
|
||||
{"name":"draw_sprite_ext_override","order":8,"path":"scripts/draw_sprite_ext_override/draw_sprite_ext_override.yy",},
|
||||
{"name":"draw_surface_blend","order":1,"path":"scripts/draw_surface_blend/draw_surface_blend.yy",},
|
||||
{"name":"draw_surface_functions","order":3,"path":"scripts/draw_surface_functions/draw_surface_functions.yy",},
|
||||
{"name":"draw_surface_blend","order":3,"path":"scripts/draw_surface_blend/draw_surface_blend.yy",},
|
||||
{"name":"draw_surface_functions","order":5,"path":"scripts/draw_surface_functions/draw_surface_functions.yy",},
|
||||
{"name":"draw_text_delimiter","order":12,"path":"scripts/draw_text_delimiter/draw_text_delimiter.yy",},
|
||||
{"name":"draw_text_function","order":10,"path":"scripts/draw_text_function/draw_text_function.yy",},
|
||||
{"name":"draw_text_path","order":19,"path":"scripts/draw_text_path/draw_text_path.yy",},
|
||||
|
@ -1355,7 +1355,7 @@
|
|||
{"name":"preview_overlay_rotation","order":1,"path":"scripts/preview_overlay_rotation/preview_overlay_rotation.yy",},
|
||||
{"name":"preview_overlay_vector","order":2,"path":"scripts/preview_overlay_vector/preview_overlay_vector.yy",},
|
||||
{"name":"printer","order":2,"path":"scripts/printer/printer.yy",},
|
||||
{"name":"process_functions","order":44,"path":"scripts/process_functions/process_functions.yy",},
|
||||
{"name":"process_functions","order":46,"path":"scripts/process_functions/process_functions.yy",},
|
||||
{"name":"project_data","order":17,"path":"scripts/project_data/project_data.yy",},
|
||||
{"name":"project_function","order":2,"path":"scripts/project_function/project_function.yy",},
|
||||
{"name":"pseudo_regex","order":7,"path":"scripts/pseudo_regex/pseudo_regex.yy",},
|
||||
|
@ -1370,7 +1370,7 @@
|
|||
{"name":"save_function","order":1,"path":"scripts/save_function/save_function.yy",},
|
||||
{"name":"scrollBox","order":7,"path":"scripts/scrollBox/scrollBox.yy",},
|
||||
{"name":"scrollPane","order":8,"path":"scripts/scrollPane/scrollPane.yy",},
|
||||
{"name":"shell_functions","order":42,"path":"scripts/shell_functions/shell_functions.yy",},
|
||||
{"name":"shell_functions","order":44,"path":"scripts/shell_functions/shell_functions.yy",},
|
||||
{"name":"sliderRange","order":2,"path":"scripts/sliderRange/sliderRange.yy",},
|
||||
{"name":"SnapBufferWriteXML","order":1,"path":"scripts/SnapBufferWriteXML/SnapBufferWriteXML.yy",},
|
||||
{"name":"SnapFromXML","order":2,"path":"scripts/SnapFromXML/SnapFromXML.yy",},
|
||||
|
@ -1385,9 +1385,10 @@
|
|||
{"name":"string_scale","order":4,"path":"scripts/string_scale/string_scale.yy",},
|
||||
{"name":"string_splice","order":3,"path":"scripts/string_splice/string_splice.yy",},
|
||||
{"name":"struct_functions","order":4,"path":"scripts/struct_functions/struct_functions.yy",},
|
||||
{"name":"surface_draw_functions","order":6,"path":"scripts/surface_draw_functions/surface_draw_functions.yy",},
|
||||
{"name":"surface_functions","order":4,"path":"scripts/surface_functions/surface_functions.yy",},
|
||||
{"name":"surface_get_palette","order":2,"path":"scripts/surface_get_palette/surface_get_palette.yy",},
|
||||
{"name":"surface_draw_functions","order":8,"path":"scripts/surface_draw_functions/surface_draw_functions.yy",},
|
||||
{"name":"surface_exr_encode","order":8,"path":"scripts/surface_exr_encode/surface_exr_encode.yy",},
|
||||
{"name":"surface_functions","order":6,"path":"scripts/surface_functions/surface_functions.yy",},
|
||||
{"name":"surface_get_palette","order":4,"path":"scripts/surface_get_palette/surface_get_palette.yy",},
|
||||
{"name":"surfaceBox","order":9,"path":"scripts/surfaceBox/surfaceBox.yy",},
|
||||
{"name":"surfaceDynaBox","order":17,"path":"scripts/surfaceDynaBox/surfaceDynaBox.yy",},
|
||||
{"name":"svg_objects","order":1,"path":"scripts/svg_objects/svg_objects.yy",},
|
||||
|
@ -1402,7 +1403,7 @@
|
|||
{"name":"tiler_tool_selection_shape","order":9,"path":"scripts/tiler_tool_selection_shape/tiler_tool_selection_shape.yy",},
|
||||
{"name":"tiler_tool_selection","order":8,"path":"scripts/tiler_tool_selection/tiler_tool_selection.yy",},
|
||||
{"name":"tilesetBox","order":1,"path":"scripts/tilesetBox/tilesetBox.yy",},
|
||||
{"name":"time_source","order":43,"path":"scripts/time_source/time_source.yy",},
|
||||
{"name":"time_source","order":45,"path":"scripts/time_source/time_source.yy",},
|
||||
{"name":"timeline_data","order":18,"path":"scripts/timeline_data/timeline_data.yy",},
|
||||
{"name":"toggleGroup","order":12,"path":"scripts/toggleGroup/toggleGroup.yy",},
|
||||
{"name":"tooltip_hotkey","order":2,"path":"scripts/tooltip_hotkey/tooltip_hotkey.yy",},
|
||||
|
@ -1773,6 +1774,7 @@
|
|||
{"name":"sh_texture_atlas","order":2,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",},
|
||||
{"name":"sh_texture_remap","order":5,"path":"shaders/sh_texture_remap/sh_texture_remap.yy",},
|
||||
{"name":"sh_texture_repeat","order":21,"path":"shaders/sh_texture_repeat/sh_texture_repeat.yy",},
|
||||
{"name":"sh_threshold_adaptive","order":1,"path":"shaders/sh_threshold_adaptive/sh_threshold_adaptive.yy",},
|
||||
{"name":"sh_tile_random","order":26,"path":"shaders/sh_tile_random/sh_tile_random.yy",},
|
||||
{"name":"sh_tile_rule_apply","order":9,"path":"shaders/sh_tile_rule_apply/sh_tile_rule_apply.yy",},
|
||||
{"name":"sh_tile_rule_select","order":10,"path":"shaders/sh_tile_rule_select/sh_tile_rule_select.yy",},
|
||||
|
@ -2862,6 +2864,5 @@
|
|||
{"name":"workshop_badge","order":42,"path":"sprites/workshop_badge/workshop_badge.yy",},
|
||||
{"name":"workshop_bg","order":43,"path":"sprites/workshop_bg/workshop_bg.yy",},
|
||||
{"name":"workshop_frame","order":44,"path":"sprites/workshop_frame/workshop_frame.yy",},
|
||||
{"name":"sh_threshold_adaptive","order":1,"path":"shaders/sh_threshold_adaptive/sh_threshold_adaptive.yy",},
|
||||
],
|
||||
}
|
|
@ -145,6 +145,7 @@
|
|||
{"$GMFolder":"","%Name":"blur","folderPath":"folders/nodes/data/filter/blur.yy","name":"blur","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"colors","folderPath":"folders/nodes/data/filter/colors.yy","name":"colors","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"normalize","folderPath":"folders/nodes/data/filter/colors/normalize.yy","name":"normalize","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"threshold","folderPath":"folders/nodes/data/filter/colors/threshold.yy","name":"threshold","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"combine","folderPath":"folders/nodes/data/filter/combine.yy","name":"combine","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"conversion","folderPath":"folders/nodes/data/filter/conversion.yy","name":"conversion","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"hsv channel","folderPath":"folders/nodes/data/filter/conversion/hsv channel.yy","name":"hsv channel","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
|
@ -338,7 +339,6 @@
|
|||
{"$GMFolder":"","%Name":"rotator","folderPath":"folders/widgets/rotator.yy","name":"rotator","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"sliders","folderPath":"folders/widgets/sliders.yy","name":"sliders","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"text","folderPath":"folders/widgets/text.yy","name":"text","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
{"$GMFolder":"","%Name":"threshold","folderPath":"folders/nodes/data/filter/colors/threshold.yy","name":"threshold","resourceType":"GMFolder","resourceVersion":"2.0",},
|
||||
],
|
||||
"IncludedFiles":[
|
||||
{"$GMIncludedFile":"","%Name":"Actions.zip","CopyToMask":-1,"filePath":"datafiles/data","name":"Actions.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
|
@ -570,7 +570,11 @@
|
|||
{"$GMIncludedFile":"","%Name":"Node_Warp.png","CopyToMask":-1,"filePath":"datafiles/data/Tooltip","name":"Node_Warp.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"Node_Wavelet_Noise.png","CopyToMask":-1,"filePath":"datafiles/data/Tooltip","name":"Node_Wavelet_Noise.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"Node_Zigzag.png","CopyToMask":-1,"filePath":"datafiles/data/Tooltip","name":"Node_Zigzag.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"dllcredits.txt","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":0,"filePath":"datafiles","name":"dllcredits.txt","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"dllcredits.txt","ConfigValues":{
|
||||
"Itch":{
|
||||
"CopyToMask":"0",
|
||||
},
|
||||
},"CopyToMask":0,"filePath":"datafiles","name":"dllcredits.txt","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"dlltest1.dll","CopyToMask":-1,"filePath":"datafiles","name":"dlltest1.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"ffmpeg.exe","CopyToMask":-1,"filePath":"datafiles/ffmpeg/bin","name":"ffmpeg.exe","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"LICENSE","CopyToMask":-1,"filePath":"datafiles/ffmpeg","name":"LICENSE","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
|
@ -589,7 +593,11 @@
|
|||
{"$GMIncludedFile":"","%Name":"mf.dll","CopyToMask":-1,"filePath":"datafiles","name":"mf.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"mfcore.dll","CopyToMask":-1,"filePath":"datafiles","name":"mfcore.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"mfplat.dll","CopyToMask":-1,"filePath":"datafiles","name":"mfplat.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"PixelComposer_profile-2.provisionprofile","ConfigValues":{"Itch":{"CopyToMask":"2",},},"CopyToMask":-1,"filePath":"datafiles","name":"PixelComposer_profile-2.provisionprofile","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"PixelComposer_profile-2.provisionprofile","ConfigValues":{
|
||||
"Itch":{
|
||||
"CopyToMask":"2",
|
||||
},
|
||||
},"CopyToMask":-1,"filePath":"datafiles","name":"PixelComposer_profile-2.provisionprofile","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"data.win","CopyToMask":-1,"filePath":"datafiles/report","name":"data.win","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"execute_shell_simple_ext_x64.dll","CopyToMask":-1,"filePath":"datafiles/report","name":"execute_shell_simple_ext_x64.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
{"$GMIncludedFile":"","%Name":"options.ini","CopyToMask":-1,"filePath":"datafiles/report","name":"options.ini","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
|
||||
|
@ -1235,7 +1243,6 @@
|
|||
{"id":{"name":"node_atlas_get","path":"scripts/node_atlas_get/node_atlas_get.yy",},},
|
||||
{"id":{"name":"node_atlas_set","path":"scripts/node_atlas_set/node_atlas_set.yy",},},
|
||||
{"id":{"name":"node_atlas_to_struct","path":"scripts/node_atlas_to_struct/node_atlas_to_struct.yy",},},
|
||||
{"id":{"name":"sh_threshold_adaptive","path":"shaders/sh_threshold_adaptive/sh_threshold_adaptive.yy",},},
|
||||
{"id":{"name":"node_atlas","path":"scripts/node_atlas/node_atlas.yy",},},
|
||||
{"id":{"name":"node_attributes","path":"scripts/node_attributes/node_attributes.yy",},},
|
||||
{"id":{"name":"node_audio_loudness","path":"scripts/node_audio_loudness/node_audio_loudness.yy",},},
|
||||
|
@ -1956,6 +1963,7 @@
|
|||
{"id":{"name":"string_splice","path":"scripts/string_splice/string_splice.yy",},},
|
||||
{"id":{"name":"struct_functions","path":"scripts/struct_functions/struct_functions.yy",},},
|
||||
{"id":{"name":"surface_draw_functions","path":"scripts/surface_draw_functions/surface_draw_functions.yy",},},
|
||||
{"id":{"name":"surface_exr_encode","path":"scripts/surface_exr_encode/surface_exr_encode.yy",},},
|
||||
{"id":{"name":"surface_functions","path":"scripts/surface_functions/surface_functions.yy",},},
|
||||
{"id":{"name":"surface_get_palette","path":"scripts/surface_get_palette/surface_get_palette.yy",},},
|
||||
{"id":{"name":"surfaceBox","path":"scripts/surfaceBox/surfaceBox.yy",},},
|
||||
|
@ -2406,6 +2414,7 @@
|
|||
{"id":{"name":"sh_texture_atlas","path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",},},
|
||||
{"id":{"name":"sh_texture_remap","path":"shaders/sh_texture_remap/sh_texture_remap.yy",},},
|
||||
{"id":{"name":"sh_texture_repeat","path":"shaders/sh_texture_repeat/sh_texture_repeat.yy",},},
|
||||
{"id":{"name":"sh_threshold_adaptive","path":"shaders/sh_threshold_adaptive/sh_threshold_adaptive.yy",},},
|
||||
{"id":{"name":"sh_threshold","path":"shaders/sh_threshold/sh_threshold.yy",},},
|
||||
{"id":{"name":"sh_tile_random","path":"shaders/sh_tile_random/sh_tile_random.yy",},},
|
||||
{"id":{"name":"sh_tile_rule_apply","path":"shaders/sh_tile_rule_apply/sh_tile_rule_apply.yy",},},
|
||||
|
|
Binary file not shown.
|
@ -81,7 +81,7 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
|||
newInput(8, nodeValue_Int("Framerate", self, 30))
|
||||
.rejectArray();
|
||||
|
||||
format_image = [ ".png", ".jpg", ".webp" ];
|
||||
format_image = [ ".png", ".jpg", ".webp", ".exr" ];
|
||||
format_animation = [ ".gif", ".apng", ".webp", ".mp4" ];
|
||||
|
||||
newInput(9, nodeValue_Enum_Scroll("Format", self, 0, { data: format_image, update_hover: false }))
|
||||
|
@ -554,6 +554,10 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
|||
|
||||
shell_execute_async(magick, shell_cmd, self);
|
||||
break;
|
||||
|
||||
case ".exr":
|
||||
surface_exr_encode(_surf, _pathOut);
|
||||
break;
|
||||
}
|
||||
|
||||
return _pathOut;
|
||||
|
@ -591,6 +595,7 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
|||
|
||||
if(form == NODE_EXPORT_FORMAT.animation) {
|
||||
p = $"{directory}/{i}/{string_lead_zero(CURRENT_FRAME, 5)}.png";
|
||||
|
||||
} else {
|
||||
if(is_array(path) && array_length(path) == array_length(surf))
|
||||
p = pathString(array_safe_get_fast(path, i), i);
|
||||
|
|
|
@ -1,3 +1,22 @@
|
|||
#region globalvar
|
||||
globalvar ALL_NODES, NODE_CATEGORY, NODE_PB_CATEGORY, NODE_PCX_CATEGORY;
|
||||
globalvar SUPPORTER_NODES, NEW_NODES;
|
||||
|
||||
globalvar NODE_PAGE_DEFAULT;
|
||||
|
||||
ALL_NODES = ds_map_create();
|
||||
NODE_CATEGORY = ds_list_create();
|
||||
NODE_PB_CATEGORY = ds_list_create();
|
||||
NODE_PCX_CATEGORY = ds_list_create();
|
||||
SUPPORTER_NODES = ds_list_create();
|
||||
NEW_NODES = ds_list_create();
|
||||
|
||||
global.__currPage = "";
|
||||
global.__currNewPage = "";
|
||||
|
||||
#macro NODE_ADD_CAT if(!IS_CMD) addNodeCatagory
|
||||
#endregion
|
||||
|
||||
function NodeObject(_name, _spr, _node, _tooltip = "") constructor {
|
||||
name = _name;
|
||||
spr = _spr;
|
||||
|
@ -237,25 +256,6 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor {
|
|||
}
|
||||
}
|
||||
|
||||
#region globalvar
|
||||
globalvar ALL_NODES, NODE_CATEGORY, NODE_PB_CATEGORY, NODE_PCX_CATEGORY;
|
||||
globalvar SUPPORTER_NODES, NEW_NODES;
|
||||
|
||||
globalvar NODE_PAGE_DEFAULT;
|
||||
|
||||
ALL_NODES = ds_map_create();
|
||||
NODE_CATEGORY = ds_list_create();
|
||||
NODE_PB_CATEGORY = ds_list_create();
|
||||
NODE_PCX_CATEGORY = ds_list_create();
|
||||
SUPPORTER_NODES = ds_list_create();
|
||||
NEW_NODES = ds_list_create();
|
||||
|
||||
global.__currPage = "";
|
||||
global.__currNewPage = "";
|
||||
|
||||
#macro NODE_ADD_CAT if(!IS_CMD) addNodeCatagory
|
||||
#endregion
|
||||
|
||||
function nodeBuild(_name, _x, _y, _group = PANEL_GRAPH.getCurrentContext()) {
|
||||
INLINE
|
||||
|
||||
|
@ -771,19 +771,19 @@ function __initNodes() {
|
|||
ds_list_add(d3d, "/Creators");
|
||||
addNodeObject(d3d, "3D Object", Node_3D_Mesh_Obj, "Load .obj file from your computer as a 3D object.").setBuild(Node_create_3D_Obj).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Plane", Node_3D_Mesh_Plane, "Put 2D image on a plane in 3D space.").setVersion(11510);
|
||||
addNodeObject(d3d, "3D Cube", Node_3D_Mesh_Cube).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Cylinder", Node_3D_Mesh_Cylinder).setVersion(11510);
|
||||
addNodeObject(d3d, "3D UV Sphere", Node_3D_Mesh_Sphere_UV).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Icosphere", Node_3D_Mesh_Sphere_Ico).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Cone", Node_3D_Mesh_Cone).setVersion(11510);
|
||||
addNodeObject(d3d, "3D Torus", Node_3D_Mesh_Torus).setVersion(1_18_01_0);
|
||||
addNodeObject(d3d, "3D Cube", Node_3D_Mesh_Cube, "Create 3D cube mesh.").setVersion(11510);
|
||||
addNodeObject(d3d, "3D Cylinder", Node_3D_Mesh_Cylinder, "Create 3D cylinder mesh").setVersion(11510);
|
||||
addNodeObject(d3d, "3D UV Sphere", Node_3D_Mesh_Sphere_UV, "Create 3D uv sphere mesh").setVersion(11510);
|
||||
addNodeObject(d3d, "3D Icosphere", Node_3D_Mesh_Sphere_Ico, "Create 3D icosphere mesh").setVersion(11510);
|
||||
addNodeObject(d3d, "3D Cone", Node_3D_Mesh_Cone, "Create 3D cone mesh").setVersion(11510);
|
||||
addNodeObject(d3d, "3D Torus", Node_3D_Mesh_Torus, "Create 3D torus mesh").setVersion(1_18_01_0);
|
||||
addNodeObject(d3d, "3D Terrain", Node_3D_Mesh_Terrain, "Create 3D terrain from height map.").setVersion(11560);
|
||||
addNodeObject(d3d, "3D Wall Builder", Node_3D_Mesh_Wall_Builder).setVersion(1_18_01_0);
|
||||
addNodeObject(d3d, "3D Wall Builder", Node_3D_Mesh_Wall_Builder, "Create 3D wall be extruding 2D path.").setVersion(1_18_01_0);
|
||||
addNodeObject(d3d, "Surface Extrude", Node_3D_Mesh_Extrude, "Extrude 2D image into 3D object.").setVersion(11510);
|
||||
addNodeObject(d3d, "Path Extrude", Node_3D_Mesh_Path_Extrude, "Extrude path into 3D object.").setVersion(11750);
|
||||
ds_list_add(d3d, "/Exporters");
|
||||
addNodeObject(d3d, "Mesh Export", Node_3D_Mesh_Export, "Export 3D mesh as .obj file").setVersion(11740);
|
||||
addNodeObject(d3d, "Slice Stack", Node_3D_Mesh_Stack_Slice).setVersion(11750);
|
||||
addNodeObject(d3d, "Slice Stack", Node_3D_Mesh_Stack_Slice, "Slice 3D object into array of 2d images.").setVersion(11750);
|
||||
|
||||
ds_list_add(d3d, "Light");
|
||||
addNodeObject(d3d, "Directional Light", Node_3D_Light_Directional, "Create directional light directed at the origin point.").setVersion(11510);
|
||||
|
@ -794,8 +794,8 @@ function __initNodes() {
|
|||
addNodeObject(d3d, "Transform", Node_3D_Transform, "Transform 3D object.").setVersion(11570);
|
||||
addNodeObject(d3d, "Transform Scene", Node_3D_Transform_Scene, "Transform 3D scene, accepts array of transformations for each objects.").setVersion(11570);
|
||||
addNodeObject(d3d, "Discretize vertex", Node_3D_Round_Vertex, "Round out vertex position to a specified step.").setVersion(11560);
|
||||
addNodeObject(d3d, "3D Displace", Node_3D_Displace).setVersion(1_18_01_0);
|
||||
addNodeObject(d3d, "3D Subdivide", Node_3D_Subdivide).setVersion(1_18_03_0);
|
||||
addNodeObject(d3d, "3D Displace", Node_3D_Displace, "Shift vertex of 3D mesh using 2D map.").setVersion(1_18_01_0);
|
||||
addNodeObject(d3d, "3D Subdivide", Node_3D_Subdivide, "Subdivide faces in mesh.").setVersion(1_18_03_0);
|
||||
ds_list_add(d3d, "/Instances");
|
||||
addNodeObject(d3d, "3D Repeat", Node_3D_Repeat, "Repeat the same 3D mesh multiple times.").setVersion(11510);
|
||||
// addNodeObject(d3d, "3D Instancer", Node_3D_Instancer).setVersion(11560);
|
||||
|
@ -808,11 +808,11 @@ function __initNodes() {
|
|||
addNodeObject(d3d, "Point Affector", Node_3D_Point_Affector, "Generate array of 3D points interpolating between two values based on the distance.").setVersion(11570);
|
||||
|
||||
ds_list_add(d3d, "Ray Marching");
|
||||
addNodeObject(d3d, "RM Primitive", Node_RM_Primitive).setBuild(Node_create_RM_Primitive).setTags(global.node_rm_primitive_keys).setVersion(11720);
|
||||
addNodeObject(d3d, "RM Terrain", Node_RM_Terrain).setTags(["ray marching"]).setVersion(11720);
|
||||
addNodeObject(d3d, "RM Combine", Node_RM_Combine).setTags(["ray marching", "rm boolean"]).setVersion(11740);
|
||||
addNodeObject(d3d, "RM Render", Node_RM_Render).setTags(["ray marching"]).setVersion(11740);
|
||||
addNodeObject(d3d, "RM Cloud", Node_RM_Cloud, "Generate distance field cloud.").patreonExtra();
|
||||
addNodeObject(d3d, "RM Primitive", Node_RM_Primitive, "Create SDF object.").setBuild(Node_create_RM_Primitive).setTags(global.node_rm_primitive_keys).setVersion(11720);
|
||||
addNodeObject(d3d, "RM Combine", Node_RM_Combine, "Combine 2 SDF objects using boolean operation.").setTags(["ray marching", "rm boolean"]).setVersion(11740);
|
||||
addNodeObject(d3d, "RM Render", Node_RM_Render, "Render SDF object.").setTags(["ray marching"]).setVersion(11740);
|
||||
addNodeObject(d3d, "RM Terrain", Node_RM_Terrain, "Generate SDF image from height map.").setTags(["ray marching"]).setVersion(11720);
|
||||
addNodeObject(d3d, "RM Cloud", Node_RM_Cloud, "Generate distance field cloud texture.").patreonExtra();
|
||||
#endregion
|
||||
|
||||
#region generator
|
||||
|
@ -835,7 +835,7 @@ function __initNodes() {
|
|||
addNodeObject(generator, "Draw Cross Section", Node_Cross_Section, "Map the brightness of pixels on a linear axis into a surface.").setVersion(11710);
|
||||
addNodeObject(generator, "Interpret Number", Node_Interpret_Number, "Convert array of number into surface.").setVersion(11530);
|
||||
addNodeObject(generator, "Pixel Builder", Node_Pixel_Builder, "Will break, do not create. please. Why is it here??").setVersion(11540);
|
||||
addNodeObject(generator, "Tile Drawer", Node_Tile_Drawer).setVersion(1_18_03_0);
|
||||
addNodeObject(generator, "Tile Drawer", Node_Tile_Drawer, "Draw using tileset.").setVersion(1_18_03_0);
|
||||
|
||||
ds_list_add(generator, "Noises");
|
||||
ds_list_add(generator, "/Basics");
|
||||
|
@ -1065,7 +1065,7 @@ function __initNodes() {
|
|||
ds_list_add(values, "/To Surface");
|
||||
addNodeObject(values, "Fill Path", Node_Path_Fill, "Fill area inside path.").setVersion(1_18_06_2);
|
||||
addNodeObject(values, "Map Path", Node_Path_Map, "Map a texture between multiple paths.").setVersion(11640);
|
||||
addNodeObject(values, "Morph Path", Node_Path_Morph).setVersion(1_18_06_2);
|
||||
addNodeObject(values, "Morph Path", Node_Path_Morph, "Draw gradient connecting 2 paths.").setVersion(1_18_06_2);
|
||||
ds_list_add(values, "/Segments");
|
||||
addNodeObject(values, "Filter Segments", Node_Segment_Filter, "Filter segment (vec2 array) based on a conditions.").setVersion(11780);
|
||||
|
||||
|
|
166
scripts/surface_exr_encode/surface_exr_encode.gml
Normal file
166
scripts/surface_exr_encode/surface_exr_encode.gml
Normal file
|
@ -0,0 +1,166 @@
|
|||
function surface_exr_encode(surface, path, param = {}) {
|
||||
if(!surface_exists(surface)) return;
|
||||
|
||||
var _sw = surface_get_width(surface);
|
||||
var _sh = surface_get_height(surface);
|
||||
var _fr = surface_get_format(surface);
|
||||
var _fb = surface_format_get_channel(_fr);
|
||||
var _ty = surface_format_get_buffer_type(_fr);
|
||||
|
||||
var _px = array_create(_sw * _sh * _fb);
|
||||
var _sb = buffer_from_surface(surface, false);
|
||||
var _gam = struct_try_get(param, "gamma")? 2.2 : 1;
|
||||
var _lim = _fr == surface_rgba8unorm? 255 : 1;
|
||||
buffer_to_start(_sb);
|
||||
|
||||
for( var i = 0; i < _sh; i++ ) {
|
||||
var _line = i * _sw * _fb;
|
||||
|
||||
if(_fb == 1) {
|
||||
for( var j = 0; j < _sw; j++ ) {
|
||||
var _y = buffer_read(_sb, _ty);
|
||||
|
||||
_px[_line + _sw * 0 + j] = power(_y, _gam) / _lim;
|
||||
}
|
||||
|
||||
} else if(_fb == 4) {
|
||||
for( var j = 0; j < _sw; j++ ) {
|
||||
var _a = buffer_read(_sb, _ty);
|
||||
var _b = buffer_read(_sb, _ty);
|
||||
var _g = buffer_read(_sb, _ty);
|
||||
var _r = buffer_read(_sb, _ty);
|
||||
|
||||
_px[_line + _sw * 0 + j] = power(_r, _gam) / _lim;
|
||||
_px[_line + _sw * 1 + j] = power(_g, _gam) / _lim;
|
||||
_px[_line + _sw * 2 + j] = power(_b, _gam) / _lim;
|
||||
_px[_line + _sw * 3 + j] = _a / _lim;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buffer_delete(_sb);
|
||||
|
||||
var _offset_position = 0;
|
||||
var _line_count = _sh;
|
||||
var _line_offsets = array_create(_line_count);
|
||||
|
||||
var _b = buffer_create(1, buffer_grow, 1);
|
||||
buffer_to_start(_b);
|
||||
|
||||
/// VERSION
|
||||
|
||||
buffer_write(_b, buffer_u32, 20000630);
|
||||
buffer_write(_b, buffer_u8, 2);
|
||||
buffer_write(_b, buffer_u8, 0);
|
||||
buffer_write(_b, buffer_u8, 0);
|
||||
buffer_write(_b, buffer_u8, 0);
|
||||
|
||||
/// HEADER
|
||||
|
||||
buffer_write(_b, buffer_string, "channels");
|
||||
buffer_write(_b, buffer_string, "chlist");
|
||||
buffer_write(_b, buffer_u32, 18 * _fb + 1);
|
||||
if(_fb == 1) {
|
||||
buffer_write(_b, buffer_string, "Y");
|
||||
buffer_write(_b, buffer_u32, 2);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
|
||||
} else {
|
||||
buffer_write(_b, buffer_string, "R");
|
||||
buffer_write(_b, buffer_u32, 2);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
|
||||
buffer_write(_b, buffer_string, "G");
|
||||
buffer_write(_b, buffer_u32, 2);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
|
||||
buffer_write(_b, buffer_string, "B");
|
||||
buffer_write(_b, buffer_u32, 2);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
|
||||
buffer_write(_b, buffer_string, "A");
|
||||
buffer_write(_b, buffer_u32, 2);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
}
|
||||
buffer_write(_b, buffer_u8, 0);
|
||||
|
||||
buffer_write(_b, buffer_string, "compression");
|
||||
buffer_write(_b, buffer_string, "compression");
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
buffer_write(_b, buffer_u8, 0);
|
||||
|
||||
buffer_write(_b, buffer_string, "dataWindow");
|
||||
buffer_write(_b, buffer_string, "box2i");
|
||||
buffer_write(_b, buffer_u32, 16);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, _sw - 1);
|
||||
buffer_write(_b, buffer_u32, _sh - 1);
|
||||
|
||||
buffer_write(_b, buffer_string, "displayWindow");
|
||||
buffer_write(_b, buffer_string, "box2i");
|
||||
buffer_write(_b, buffer_u32, 16);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, 0);
|
||||
buffer_write(_b, buffer_u32, _sw - 1);
|
||||
buffer_write(_b, buffer_u32, _sh - 1);
|
||||
|
||||
buffer_write(_b, buffer_string, "lineOrder");
|
||||
buffer_write(_b, buffer_string, "lineOrder");
|
||||
buffer_write(_b, buffer_u32, 1);
|
||||
buffer_write(_b, buffer_u8, 0);
|
||||
|
||||
buffer_write(_b, buffer_string, "pixelAspectRatio");
|
||||
buffer_write(_b, buffer_string, "float");
|
||||
buffer_write(_b, buffer_u32, 4);
|
||||
buffer_write(_b, buffer_f32, 1);
|
||||
|
||||
buffer_write(_b, buffer_string, "screenWindowCenter");
|
||||
buffer_write(_b, buffer_string, "v2f");
|
||||
buffer_write(_b, buffer_u32, 8);
|
||||
buffer_write(_b, buffer_f32, 0);
|
||||
buffer_write(_b, buffer_f32, 0);
|
||||
|
||||
buffer_write(_b, buffer_string, "screenWindowWidth");
|
||||
buffer_write(_b, buffer_string, "float");
|
||||
buffer_write(_b, buffer_u32, 4);
|
||||
buffer_write(_b, buffer_f32, 1);
|
||||
|
||||
buffer_write(_b, buffer_u8, 0);
|
||||
|
||||
/// OFFSETS
|
||||
|
||||
_offset_position = buffer_tell(_b);
|
||||
repeat(_line_count) buffer_write(_b, buffer_u64, 0);
|
||||
|
||||
/// PIXEL
|
||||
|
||||
for( var i = 0; i < _line_count; i++ ) {
|
||||
_line_offsets[i] = buffer_tell(_b);
|
||||
var _lo = i * _sw * _fb;
|
||||
|
||||
buffer_write(_b, buffer_u32, i);
|
||||
buffer_write(_b, buffer_u32, _sw * 4 * _fb);
|
||||
|
||||
for( var j = 0; j < _sw * _fb; j++ )
|
||||
buffer_write(_b, buffer_f32, _px[_lo + j]);
|
||||
}
|
||||
|
||||
buffer_seek(_b, buffer_seek_start, _offset_position);
|
||||
for( var i = 0; i < _line_count; i++ )
|
||||
buffer_write(_b, buffer_u64, _line_offsets[i]);
|
||||
|
||||
buffer_save(_b, path);
|
||||
buffer_delete(_b);
|
||||
return 1;
|
||||
}
|
14
scripts/surface_exr_encode/surface_exr_encode.yy
Normal file
14
scripts/surface_exr_encode/surface_exr_encode.yy
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"$GMScript":"v1",
|
||||
"%Name":"surface_exr_encode",
|
||||
"isCompatibility":false,
|
||||
"isDnD":false,
|
||||
"name":"surface_exr_encode",
|
||||
"parent":{
|
||||
"name":"surface",
|
||||
"path":"folders/functions/surface.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
"tags":[],
|
||||
}
|
|
@ -509,6 +509,34 @@ function surface_reset_target_override() { __surface_reset_target(); winwin_draw
|
|||
return _arr;
|
||||
}
|
||||
|
||||
function surface_format_get_buffer_type(format) {
|
||||
switch(format) {
|
||||
case surface_rgba4unorm : return buffer_u8; break;
|
||||
case surface_rgba8unorm : return buffer_u8; break;
|
||||
case surface_rgba16float : return buffer_f16; break;
|
||||
case surface_rgba32float : return buffer_f32; break;
|
||||
|
||||
case surface_r8unorm : return buffer_u8; break;
|
||||
case surface_r16float : return buffer_f16; break;
|
||||
case surface_r32float : return buffer_f32; break;
|
||||
}
|
||||
return buffer_u8;
|
||||
}
|
||||
|
||||
function surface_format_get_channel(format) {
|
||||
switch(format) {
|
||||
case surface_rgba4unorm :
|
||||
case surface_rgba8unorm :
|
||||
case surface_rgba16float :
|
||||
case surface_rgba32float : return 4; break;
|
||||
|
||||
case surface_r8unorm :
|
||||
case surface_r16float :
|
||||
case surface_r32float : return 1; break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
function surface_format_get_bytes(format) {
|
||||
switch(format) {
|
||||
case surface_rgba4unorm : return 4 * 0.5; break;
|
||||
|
|
Loading…
Reference in a new issue