From fdb2858378a9781421ebd7ff8ba1863bad2fd255 Mon Sep 17 00:00:00 2001 From: MakhamDev Date: Sat, 28 Oct 2023 15:53:11 +0700 Subject: [PATCH] 3D instancer --- PixelComposer.resource_order | 3 + PixelComposer.yyp | 8 ++ .../Shaders/3dInstance/3dInstancePS.hlsl | 23 +++++ .../Shaders/3dInstance/3dInstanceVS.hlsl | 32 +++++++ datafiles/Shaders/3dInstance/CommonPS.hlsl | 7 ++ datafiles/Shaders/3dInstance/CommonVS.hlsl | 13 +++ .../Shaders/3dInstance/rubber_duck_toy_1k.bin | Bin 0 -> 463104 bytes objects/o_main/Other_2.gml | 2 + scripts/__d3d11/__d3d11.gml | 58 +++++------- scripts/d3d_cube/d3d_cube.gml | 2 +- scripts/d3d_object/d3d_object.gml | 2 +- .../d3d_object_instancer.gml | 87 ++++++++++++++++++ .../d3d_object_instancer.yy | 11 +++ .../node_3d_instancer/node_3d_instancer.gml | 38 ++++++++ .../node_3d_instancer/node_3d_instancer.yy | 11 +++ scripts/node_3d_instancer/node_counter.yy | 12 +++ scripts/node_3d_particle/node_3d_particle.gml | 38 ++++++++ scripts/node_3d_particle/node_3d_particle.yy | 11 +++ scripts/node_3d_particle/node_counter.yy | 12 +++ scripts/node_registry/node_registry.gml | 2 + shaders/sh_d3d_default/sh_d3d_default.vsh | 3 - shaders/sh_d3d_outline/sh_d3d_outline.fsh | 4 +- 22 files changed, 338 insertions(+), 41 deletions(-) create mode 100644 datafiles/Shaders/3dInstance/3dInstancePS.hlsl create mode 100644 datafiles/Shaders/3dInstance/3dInstanceVS.hlsl create mode 100644 datafiles/Shaders/3dInstance/CommonPS.hlsl create mode 100644 datafiles/Shaders/3dInstance/CommonVS.hlsl create mode 100644 datafiles/Shaders/3dInstance/rubber_duck_toy_1k.bin create mode 100644 scripts/d3d_object_instancer/d3d_object_instancer.gml create mode 100644 scripts/d3d_object_instancer/d3d_object_instancer.yy create mode 100644 scripts/node_3d_instancer/node_3d_instancer.gml create mode 100644 scripts/node_3d_instancer/node_3d_instancer.yy create mode 100644 scripts/node_3d_instancer/node_counter.yy create mode 100644 scripts/node_3d_particle/node_3d_particle.gml create mode 100644 scripts/node_3d_particle/node_3d_particle.yy create mode 100644 scripts/node_3d_particle/node_counter.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 5e20127a2..89e5eef93 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -648,6 +648,7 @@ {"name":"sh_3d_extrude_filler","order":8,"path":"shaders/sh_3d_extrude_filler/sh_3d_extrude_filler.yy",}, {"name":"quarternionBox","order":32,"path":"scripts/quarternionBox/quarternionBox.yy",}, {"name":"s_window_exit","order":2,"path":"sprites/s_window_exit/s_window_exit.yy",}, + {"name":"node_3d_particle","order":4,"path":"scripts/node_3d_particle/node_3d_particle.yy",}, {"name":"s_node_color_remove","order":7,"path":"sprites/s_node_color_remove/s_node_color_remove.yy",}, {"name":"sh_average","order":7,"path":"shaders/sh_average/sh_average.yy",}, {"name":"sh_warp_4points_pers","order":10,"path":"shaders/sh_warp_4points_pers/sh_warp_4points_pers.yy",}, @@ -1434,6 +1435,7 @@ {"name":"s_node_RGB","order":34,"path":"sprites/s_node_RGB/s_node_RGB.yy",}, {"name":"fd_rectangle_draw","order":9,"path":"scripts/fd_rectangle_draw/fd_rectangle_draw.yy",}, {"name":"node_color_palette_replacement","order":14,"path":"scripts/node_color_palette_replacement/node_color_palette_replacement.yy",}, + {"name":"d3d_object_instancer","order":10,"path":"scripts/d3d_object_instancer/d3d_object_instancer.yy",}, {"name":"sh_BGR","order":2,"path":"shaders/sh_BGR/sh_BGR.yy",}, {"name":"oRigidbody","order":2,"path":"objects/oRigidbody/oRigidbody.yy",}, {"name":"node_grey_to_alpha","order":4,"path":"scripts/node_grey_to_alpha/node_grey_to_alpha.yy",}, @@ -1620,6 +1622,7 @@ {"name":"s_node_wav_file_read","order":16,"path":"sprites/s_node_wav_file_read/s_node_wav_file_read.yy",}, {"name":"o_dialog_assetbox","order":3,"path":"objects/o_dialog_assetbox/o_dialog_assetbox.yy",}, {"name":"node_lerp","order":2,"path":"scripts/node_lerp/node_lerp.yy",}, + {"name":"node_3d_instancer","order":3,"path":"scripts/node_3d_instancer/node_3d_instancer.yy",}, {"name":"s_node_pixel_sort","order":42,"path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",}, {"name":"sh_mask_expand","order":55,"path":"shaders/sh_mask_expand/sh_mask_expand.yy",}, {"name":"node_texture_remap","order":2,"path":"scripts/node_texture_remap/node_texture_remap.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 397f22b43..7a2aad904 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -762,6 +762,11 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"tile_0126.png","CopyToMask":-1,"filePath":"datafiles/Sample Projects",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Tree sway.png","CopyToMask":-1,"filePath":"datafiles/Sample Projects",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Tree sway.pxc","CopyToMask":-1,"filePath":"datafiles/Sample Projects",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"3dInstancePS.hlsl","CopyToMask":-1,"filePath":"datafiles/Shaders/3dInstance",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"3dInstanceVS.hlsl","CopyToMask":-1,"filePath":"datafiles/Shaders/3dInstance",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"CommonPS.hlsl","CopyToMask":-1,"filePath":"datafiles/Shaders/3dInstance",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"CommonVS.hlsl","CopyToMask":-1,"filePath":"datafiles/Shaders/3dInstance",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"rubber_duck_toy_1k.bin","CopyToMask":-1,"filePath":"datafiles/Shaders/3dInstance",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"Steamworks_Extension_Documentation.html","CopyToMask":0,"filePath":"datafiles",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ucrtbased.dll","ConfigValues":{},"CopyToMask":-1,"filePath":"datafiles",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"webpmux.exe","CopyToMask":-1,"filePath":"datafiles/webp",}, @@ -1257,6 +1262,7 @@ {"id":{"name":"quarternionBox","path":"scripts/quarternionBox/quarternionBox.yy",},}, {"id":{"name":"s_window_exit","path":"sprites/s_window_exit/s_window_exit.yy",},}, {"id":{"name":"d3d_gizmo_sphere","path":"scripts/d3d_gizmo_sphere/d3d_gizmo_sphere.yy",},}, + {"id":{"name":"node_3d_particle","path":"scripts/node_3d_particle/node_3d_particle.yy",},}, {"id":{"name":"s_node_color_remove","path":"sprites/s_node_color_remove/s_node_color_remove.yy",},}, {"id":{"name":"sh_average","path":"shaders/sh_average/sh_average.yy",},}, {"id":{"name":"sh_warp_4points_pers","path":"shaders/sh_warp_4points_pers/sh_warp_4points_pers.yy",},}, @@ -2162,6 +2168,7 @@ {"id":{"name":"s_node_export","path":"sprites/s_node_export/s_node_export.yy",},}, {"id":{"name":"texture_set_interpolation","path":"scripts/texture_set_interpolation/texture_set_interpolation.yy",},}, {"id":{"name":"node_color_palette_replacement","path":"scripts/node_color_palette_replacement/node_color_palette_replacement.yy",},}, + {"id":{"name":"d3d_object_instancer","path":"scripts/d3d_object_instancer/d3d_object_instancer.yy",},}, {"id":{"name":"sh_BGR","path":"shaders/sh_BGR/sh_BGR.yy",},}, {"id":{"name":"oRigidbody","path":"objects/oRigidbody/oRigidbody.yy",},}, {"id":{"name":"node_grey_to_alpha","path":"scripts/node_grey_to_alpha/node_grey_to_alpha.yy",},}, @@ -2376,6 +2383,7 @@ {"id":{"name":"s_node_wav_file_read","path":"sprites/s_node_wav_file_read/s_node_wav_file_read.yy",},}, {"id":{"name":"o_dialog_assetbox","path":"objects/o_dialog_assetbox/o_dialog_assetbox.yy",},}, {"id":{"name":"node_lerp","path":"scripts/node_lerp/node_lerp.yy",},}, + {"id":{"name":"node_3d_instancer","path":"scripts/node_3d_instancer/node_3d_instancer.yy",},}, {"id":{"name":"s_node_pixel_sort","path":"sprites/s_node_pixel_sort/s_node_pixel_sort.yy",},}, {"id":{"name":"sh_mask_expand","path":"shaders/sh_mask_expand/sh_mask_expand.yy",},}, {"id":{"name":"node_texture_remap","path":"scripts/node_texture_remap/node_texture_remap.yy",},}, diff --git a/datafiles/Shaders/3dInstance/3dInstancePS.hlsl b/datafiles/Shaders/3dInstance/3dInstancePS.hlsl new file mode 100644 index 000000000..79f6907c1 --- /dev/null +++ b/datafiles/Shaders/3dInstance/3dInstancePS.hlsl @@ -0,0 +1,23 @@ +#include "CommonPS.hlsl" + +struct VS_out +{ + float4 Position : SV_POSITION; + float3 Normal : NORMAL0; + float4 Color : COLOR0; + float2 TexCoord : TEXCOORD0; +}; + +struct PS_out +{ + float4 Color : SV_Target0; +}; + +void main(in VS_out IN, out PS_out OUT) +{ + OUT.Color = gm_BaseTextureObject.Sample(gm_BaseTexture, IN.TexCoord); + float3 N = normalize(IN.Normal); + float3 L = normalize(float3(1.0, 1.0, 1.0)); + float NdotL = saturate(dot(N, L)); + OUT.Color.rgb *= lerp(0.2, 1.0, NdotL); +} diff --git a/datafiles/Shaders/3dInstance/3dInstanceVS.hlsl b/datafiles/Shaders/3dInstance/3dInstanceVS.hlsl new file mode 100644 index 000000000..f698b2430 --- /dev/null +++ b/datafiles/Shaders/3dInstance/3dInstanceVS.hlsl @@ -0,0 +1,32 @@ +#include "CommonVS.hlsl" + +struct VS_in +{ + float3 Position : POSITION; + float3 Normal : NORMAL0; + float4 Color : COLOR0; + float2 TexCoord : TEXCOORD0; + uint InstanceID : SV_InstanceID; +}; + +struct VS_out +{ + float4 Position : SV_POSITION; + float3 Normal : NORMAL0; + float4 Color : COLOR0; + float2 TexCoord : TEXCOORD0; +}; + +cbuffer Data : register(b10) +{ + float4 InstancePosition[4096]; +}; + +void main(in VS_in IN, out VS_out OUT) +{ + float3 position = IN.Position.xyz + InstancePosition[IN.InstanceID].xyz; + OUT.Position = mul(gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION], float4(position.xyz, 1.0)); + OUT.Normal = mul(gm_Matrices[MATRIX_WORLD], float4(IN.Normal.xyz, 0.0)); + OUT.Color = IN.Color; + OUT.TexCoord = IN.TexCoord; +} diff --git a/datafiles/Shaders/3dInstance/CommonPS.hlsl b/datafiles/Shaders/3dInstance/CommonPS.hlsl new file mode 100644 index 000000000..133168dbd --- /dev/null +++ b/datafiles/Shaders/3dInstance/CommonPS.hlsl @@ -0,0 +1,7 @@ +#ifndef __COMMONPS_HLSL__ +#define __COMMONPS_HLSL__ + +Texture2D gm_BaseTextureObject : register(t0); +SamplerState gm_BaseTexture : register(s0); + +#endif // __COMMONPS_HLSL__ diff --git a/datafiles/Shaders/3dInstance/CommonVS.hlsl b/datafiles/Shaders/3dInstance/CommonVS.hlsl new file mode 100644 index 000000000..9c7782129 --- /dev/null +++ b/datafiles/Shaders/3dInstance/CommonVS.hlsl @@ -0,0 +1,13 @@ +#ifndef __COMMONVS_HLSL__ +#define __COMMONVS_HLSL__ + +#define MATRIX_WORLD 0 +#define MATRIX_WORLD_VIEW 1 +#define MATRIX_WORLD_VIEW_PROJECTION 2 + +cbuffer Matrices : register(b0) +{ + float4x4 gm_Matrices[3]; +}; + +#endif // __COMMONVS_HLSL__ diff --git a/datafiles/Shaders/3dInstance/rubber_duck_toy_1k.bin b/datafiles/Shaders/3dInstance/rubber_duck_toy_1k.bin new file mode 100644 index 0000000000000000000000000000000000000000..0e99d960a260f8346ad8254a9f800dc2a9581241 GIT binary patch literal 463104 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 jJe7ujSBa##*24SdDtcS1AIrY1 init Palette"); __initPalette(); log_message("SESSION", "> init Gradient"); __initGradient(); + log_message("SESSION", "> init Ins Renderer"); __initInstanceRenderer(); + setPanel(); loadAddon(); diff --git a/scripts/__d3d11/__d3d11.gml b/scripts/__d3d11/__d3d11.gml index e71d3381a..b6eb25e09 100644 --- a/scripts/__d3d11/__d3d11.gml +++ b/scripts/__d3d11/__d3d11.gml @@ -11,12 +11,9 @@ /// @desc Retrieves the last error message. /// /// @return {String} The last error message. -function d3d11_get_error_string() -{ +function d3d11_get_error_string() { gml_pragma("forceinline"); - static _fn = external_define( - GMD3D11_PATH, "d3d11_get_error_string", dll_cdecl, ty_string, - 0); + static _fn = external_define(GMD3D11_PATH, "d3d11_get_error_string", dll_cdecl, ty_string, 0); return external_call(_fn); } @@ -29,12 +26,9 @@ function d3d11_get_error_string() /// @param {Pointer.Texture} _texture The texture to pass. /// /// @return {Real} Returns 1 on success or 0 on fail. -function d3d11_texture_set_stage_vs(_slot, _texture) -{ +function d3d11_texture_set_stage_vs(_slot, _texture) { gml_pragma("forceinline"); - static _fn = external_define( - GMD3D11_PATH, "d3d11_texture_set_stage_vs", dll_cdecl, ty_real, - 1, ty_real); + static _fn = external_define(GMD3D11_PATH, "d3d11_texture_set_stage_vs", dll_cdecl, ty_real, 1, ty_real); texture_set_stage(0, _texture); return external_call(_fn, _slot); } @@ -49,11 +43,9 @@ function d3d11_texture_set_stage_vs(_slot, _texture) /// @param {Pointer.Texture} _texture The texture to pass. /// /// @see GMD3D11_IS_SUPPORTED -function texture_set_stage_vs(_slot, _texture) -{ +function texture_set_stage_vs(_slot, _texture) { gml_pragma("forceinline"); - if (GMD3D11_IS_SUPPORTED) - { + if (GMD3D11_IS_SUPPORTED) { d3d11_texture_set_stage_vs(_slot, _texture); return; } @@ -69,12 +61,9 @@ function texture_set_stage_vs(_slot, _texture) /// @param {Pointer.Texture} _texture The texture to pass. /// /// @return {Real} Returns 1 on success or 0 on fail. -function d3d11_texture_set_stage_ps(_slot, _texture) -{ +function d3d11_texture_set_stage_ps(_slot, _texture) { gml_pragma("forceinline"); - static _fn = external_define( - GMD3D11_PATH, "d3d11_texture_set_stage_ps", dll_cdecl, ty_real, - 1, ty_real); + static _fn = external_define(GMD3D11_PATH, "d3d11_texture_set_stage_ps", dll_cdecl, ty_real, 1, ty_real); texture_set_stage(0, _texture); return external_call(_fn, _slot); } @@ -85,12 +74,9 @@ function d3d11_texture_set_stage_ps(_slot, _texture) /// is submitted. After that the number is reset back to 0! /// /// @param {Real} _count Number of instances to draw. Use 0 to disable instanced rendering. -function d3d11_draw_instanced(_count) -{ +function d3d11_draw_instanced(_count) { gml_pragma("forceinline"); - static _fn = external_define( - GMD3D11_PATH, "d3d11_draw_instanced", dll_cdecl, ty_real, - 1, ty_real); + static _fn = external_define(GMD3D11_PATH, "d3d11_draw_instanced", dll_cdecl, ty_real, 1, ty_real); return external_call(_fn, _count); } @@ -102,23 +88,27 @@ function d3d11_draw_instanced(_count) /// @param {Constant.PrimitiveType} _prim The primitive type. /// @param {Pointer.Texture} _texture The texture to use. /// @param {Real} _count The number of instances to draw. -function vertex_submit_instanced(_vbuff, _prim, _texture, _count) -{ +function vertex_submit_instanced(_vbuff, _prim, _texture, _count) { gml_pragma("forceinline"); if (!d3d11_draw_instanced(_count)) - { return false; - } + vertex_submit(_vbuff, _prim, _texture); return true; } -if (GMD3D11_IS_SUPPORTED) -{ - var _init = external_define( - GMD3D11_PATH, "d3d11_init", dll_cdecl, ty_real, 2, ty_string, ty_string); - var _osInfo = os_get_info(); - var _device = _osInfo[? "video_d3d11_device"]; +function vertex_buffer_load(_filename, _vformat) { + gml_pragma("forceinline"); + var _buffer = buffer_load(_filename); + var _vbuffer = vertex_create_buffer_from_buffer(_buffer, _vformat); + buffer_delete(_buffer); + return _vbuffer; +} + +if (GMD3D11_IS_SUPPORTED) { + var _init = external_define(GMD3D11_PATH, "d3d11_init", dll_cdecl, ty_real, 2, ty_string, ty_string); + var _osInfo = os_get_info(); + var _device = _osInfo[? "video_d3d11_device"]; var _context = _osInfo[? "video_d3d11_context"]; external_call(_init, _device, _context); } diff --git a/scripts/d3d_cube/d3d_cube.gml b/scripts/d3d_cube/d3d_cube.gml index 8d1deca37..f4d80ff0e 100644 --- a/scripts/d3d_cube/d3d_cube.gml +++ b/scripts/d3d_cube/d3d_cube.gml @@ -59,7 +59,7 @@ function __3dCube() : __3dObject() constructor { new __vertex( size, -size, -size).setNormal(0, -1, 0).setUV(1, 1), new __vertex(-size, -size, -size).setNormal(0, -1, 0).setUV(0, 1), ]]; - + VB = build(); } initModel(1); } \ No newline at end of file diff --git a/scripts/d3d_object/d3d_object.gml b/scripts/d3d_object/d3d_object.gml index f2eed9cae..8574a1100 100644 --- a/scripts/d3d_object/d3d_object.gml +++ b/scripts/d3d_object/d3d_object.gml @@ -82,7 +82,7 @@ function __3dObject() constructor { } } vertex_end(_buffer); - //vertex_freeze(_buffer); + vertex_freeze(_buffer); return _buffer; } #endregion diff --git a/scripts/d3d_object_instancer/d3d_object_instancer.gml b/scripts/d3d_object_instancer/d3d_object_instancer.gml new file mode 100644 index 000000000..1bf17c517 --- /dev/null +++ b/scripts/d3d_object_instancer/d3d_object_instancer.gml @@ -0,0 +1,87 @@ +#region shader + globalvar INSTANCE_SHADER_VS, INSTANCE_SHADER_PS; + + function __initInstanceRenderer() { + INSTANCE_SHADER_VS = d3d11_shader_compile_vs(working_directory + "Shaders/3dInstance/3dInstanceVS.hlsl", "main", "vs_4_0"); + INSTANCE_SHADER_PS = d3d11_shader_compile_ps(working_directory + "Shaders/3dInstance/3dInstancePS.hlsl", "main", "ps_4_0"); + + if (!d3d11_shader_exists(INSTANCE_SHADER_VS)) noti_warning(d3d11_get_error_string()); + if (!d3d11_shader_exists(INSTANCE_SHADER_PS)) noti_warning(d3d11_get_error_string()); + } +#endregion + +function __3dObjectInstancer() : __3dObject() constructor { + object_data = noone; + object_counts = 1; + + VF = global.VF_POS_NORM_TEX_COL; + render_type = pr_trianglelist; + + transform = new __transform(); + size = new __vec3(1); + + positions = []; + + static setData = function() { #region + d3d11_cbuffer_begin(); + d3d11_cbuffer_add_float(4 * object_counts); + object_data = d3d11_cbuffer_end(); + + var _buffer = buffer_create(d3d11_cbuffer_get_size(object_data), buffer_fixed, 1); + + for(var i = 0; i < object_counts; i++) { + var pos = array_safe_get(positions, i, 0); + + buffer_write(_buffer, buffer_f32, array_safe_get(pos, 0, 0)); + buffer_write(_buffer, buffer_f32, array_safe_get(pos, 1, 0)); + buffer_write(_buffer, buffer_f32, array_safe_get(pos, 2, 0)); + buffer_write(_buffer, buffer_f32, 0); + } + + d3d11_cbuffer_update(object_data, _buffer); + buffer_delete(_buffer); + } #endregion + + static generateNormal = function(_s = normal_draw_size) {} + + static submit = function(scene = {}, shader = noone) { submitVertex(scene, shader); } + static submitUI = function(scene = {}, shader = noone) { submitVertex(scene, shader); } + static submitSel = function(scene = {}, shader = noone) { submitVertex(scene, shader); } + + static submitShader = function(scene = {}, shader = noone) {} + static submitShadow = function(scene = {}, object = noone) {} + + static submitVertex = function(scene = {}, shader = noone) { #region + d3d11_shader_override_vs(INSTANCE_SHADER_VS); + d3d11_shader_override_ps(INSTANCE_SHADER_PS); + + preSubmitVertex(scene); + transform.submitMatrix(); + matrix_set(matrix_world, matrix_stack_top()); + + d3d11_shader_set_cbuffer_vs(10, object_data); + for( var i = 0, n = array_length(VB); i < n; i++ ) { + var _ind = array_safe_get(material_index, i, i); + var _mat = array_safe_get(materials, _ind, noone); + var _tex = _mat == noone? -1 : _mat.getTexture(); + + vertex_submit_instanced(VB[i], render_type, _tex, object_counts); + } + + d3d11_shader_override_vs(-1); + d3d11_shader_override_ps(-1); + + transform.clearMatrix(); + matrix_set(matrix_world, matrix_build_identity()); + + postSubmitVertex(scene); + } #endregion + + static clone = function(_vertex = true) {} + + static destroy = function() {} + + static onDestroy = function() {} + + static toString = function() { return $"[D3D Instanced Object]\n\t({object_counts} instances\n\tPosition: {transform.position}\n\tRotation: {transform.rotation}\n\tScale: {transform.scale})" } +} \ No newline at end of file diff --git a/scripts/d3d_object_instancer/d3d_object_instancer.yy b/scripts/d3d_object_instancer/d3d_object_instancer.yy new file mode 100644 index 000000000..0f31a885a --- /dev/null +++ b/scripts/d3d_object_instancer/d3d_object_instancer.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "d3d_object_instancer", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "3d", + "path": "folders/functions/3d.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_3d_instancer/node_3d_instancer.gml b/scripts/node_3d_instancer/node_3d_instancer.gml new file mode 100644 index 000000000..2596883ee --- /dev/null +++ b/scripts/node_3d_instancer/node_3d_instancer.gml @@ -0,0 +1,38 @@ +function Node_3D_Instancer(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor { + name = "3D Instancer"; + + inputs[| in_mesh + 0] = nodeValue("Amounts", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); + + inputs[| in_mesh + 1] = nodeValue("Positions", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) + .setDisplay(VALUE_DISPLAY.vector) + .setArrayDepth(1); + + static processData = function(_output, _data, _output_index, _array_index = 0) { + var _obj = _data[0]; + if(!is_instanceof(_obj, __3dObject)) return noone; + if(_obj.VF != global.VF_POS_NORM_TEX_COL) return noone; + + var _amo = _data[in_mesh + 0]; + var _pos = _data[in_mesh + 1]; + + if(_amo <= 0) return noone; + var _res = new __3dObjectInstancer(); + + _res.object_counts = max(1, _amo); + _res.positions = _pos; + + _res.vertex = _obj.vertex; + _res.VB = _obj.VB; + _res.render_type = _obj.render_type; + _res.custom_shader = _obj.custom_shader; + _res.transform = _obj.transform.clone(); + _res.size = _obj.size.clone(); + _res.materials = _obj.materials; + _res.material_index = _obj.material_index; + _res.texture_flip = _obj.texture_flip; + + _res.setData(); + + return _res; + } +} \ No newline at end of file diff --git a/scripts/node_3d_instancer/node_3d_instancer.yy b/scripts/node_3d_instancer/node_3d_instancer.yy new file mode 100644 index 000000000..b36e242a2 --- /dev/null +++ b/scripts/node_3d_instancer/node_3d_instancer.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_3d_instancer", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "d3d modifier", + "path": "folders/nodes/data/3D/d3d modifier.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_3d_instancer/node_counter.yy b/scripts/node_3d_instancer/node_counter.yy new file mode 100644 index 000000000..10832a0b0 --- /dev/null +++ b/scripts/node_3d_instancer/node_counter.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_3d_particle/node_3d_particle.gml b/scripts/node_3d_particle/node_3d_particle.gml new file mode 100644 index 000000000..0bc722aa5 --- /dev/null +++ b/scripts/node_3d_particle/node_3d_particle.gml @@ -0,0 +1,38 @@ +function Node_3D_Particle(_x, _y, _group = noone) : Node_3D_Modifier(_x, _y, _group) constructor { + name = "3D Particle"; + + inputs[| in_mesh + 0] = nodeValue("Amounts", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 1); + + inputs[| in_mesh + 1] = nodeValue("Positions", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, 0 ]) + .setDisplay(VALUE_DISPLAY.vector) + .setArrayDepth(1); + + static processData = function(_output, _data, _output_index, _array_index = 0) { + var _obj = _data[0]; + if(!is_instanceof(_obj, __3dObject)) return noone; + if(_obj.VF != global.VF_POS_NORM_TEX_COL) return noone; + + var _amo = _data[in_mesh + 0]; + var _pos = _data[in_mesh + 1]; + + if(_amo <= 0) return noone; + var _res = new __3dObjectInstancer(); + + _res.object_counts = max(1, _amo); + _res.positions = _pos; + + _res.vertex = _obj.vertex; + _res.VB = _obj.VB; + _res.render_type = _obj.render_type; + _res.custom_shader = _obj.custom_shader; + _res.transform = _obj.transform.clone(); + _res.size = _obj.size.clone(); + _res.materials = _obj.materials; + _res.material_index = _obj.material_index; + _res.texture_flip = _obj.texture_flip; + + _res.setData(); + + return _res; + } +} \ No newline at end of file diff --git a/scripts/node_3d_particle/node_3d_particle.yy b/scripts/node_3d_particle/node_3d_particle.yy new file mode 100644 index 000000000..41bbbe45d --- /dev/null +++ b/scripts/node_3d_particle/node_3d_particle.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_3d_particle", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "d3d modifier", + "path": "folders/nodes/data/3D/d3d modifier.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_3d_particle/node_counter.yy b/scripts/node_3d_particle/node_counter.yy new file mode 100644 index 000000000..10832a0b0 --- /dev/null +++ b/scripts/node_3d_particle/node_counter.yy @@ -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", +} \ No newline at end of file diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 5292c775c..b65aa9fe7 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -418,6 +418,8 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor { #regio ds_list_add(d3d, "Modify"); addNodeObject(d3d, "Discretize vertex", s_node_3d_discretize, "Node_3D_Round_Vertex", [1, Node_3D_Round_Vertex]).setVersion(11560); addNodeObject(d3d, "Set Material", s_node_3d_set_material, "Node_3D_Set_Material", [1, Node_3D_Set_Material]).setVersion(11560); + /**/ addNodeObject(d3d, "3D Instancer", s_node_3d_set_material, "Node_3D_Instancer", [1, Node_3D_Instancer]).setVersion(11560); + /**/ addNodeObject(d3d, "3D Particle", s_node_3d_set_material, "Node_3D_Particle", [1, Node_3D_Particle]).setVersion(11560); 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(); diff --git a/shaders/sh_d3d_default/sh_d3d_default.vsh b/shaders/sh_d3d_default/sh_d3d_default.vsh index ca245900a..7a609c7b3 100644 --- a/shaders/sh_d3d_default/sh_d3d_default.vsh +++ b/shaders/sh_d3d_default/sh_d3d_default.vsh @@ -1,6 +1,3 @@ -// -// Simple passthrough vertex shader -// attribute vec3 in_Position; attribute vec3 in_Normal; attribute vec4 in_Colour; diff --git a/shaders/sh_d3d_outline/sh_d3d_outline.fsh b/shaders/sh_d3d_outline/sh_d3d_outline.fsh index 5a15cdca0..492d5dfeb 100644 --- a/shaders/sh_d3d_outline/sh_d3d_outline.fsh +++ b/shaders/sh_d3d_outline/sh_d3d_outline.fsh @@ -14,7 +14,7 @@ void main() { gl_FragColor = vec4(0.); vec4 sam = texture2D( gm_BaseTexture, v_vTexcoord ); - if(sam.r > 0.5) return; + if(sam.r > 0.) return; for(float i = 1.; i <= 2.; i++) { float base = 1.; @@ -30,7 +30,7 @@ void main() { vec2 pxs = (pixelPosition + vec2( cos(ang), sin(ang)) * i) / dimension; vec4 sam = texture2D( gm_BaseTexture, pxs ); - if(sam.r > 0.5) { + if(sam.r > 0.) { gl_FragColor = outlineColor; return; }