[3D Camera] Add AO, shadow, diffuse passes.

This commit is contained in:
Tanasart 2025-01-24 11:16:37 +07:00
parent e2d0f2bc8c
commit e6057b9561
14 changed files with 298 additions and 199 deletions

View file

@ -383,7 +383,7 @@
{"name":"slider_Slider","order":1,"path":"objects/slider_Slider/slider_Slider.yy",}, {"name":"slider_Slider","order":1,"path":"objects/slider_Slider/slider_Slider.yy",},
{"name":"rm_main","order":1,"path":"rooms/rm_main/rm_main.yy",}, {"name":"rm_main","order":1,"path":"rooms/rm_main/rm_main.yy",},
{"name":"__3d_particle","order":1,"path":"scripts/__3d_particle/__3d_particle.yy",}, {"name":"__3d_particle","order":1,"path":"scripts/__3d_particle/__3d_particle.yy",},
{"name":"__3D","order":6,"path":"scripts/__3D/__3D.yy",}, {"name":"__3D","order":1,"path":"scripts/__3D/__3D.yy",},
{"name":"__add_node_item","order":12,"path":"scripts/__add_node_item/__add_node_item.yy",}, {"name":"__add_node_item","order":12,"path":"scripts/__add_node_item/__add_node_item.yy",},
{"name":"__bbox","order":5,"path":"scripts/__bbox/__bbox.yy",}, {"name":"__bbox","order":5,"path":"scripts/__bbox/__bbox.yy",},
{"name":"__bone_constain_look_at","order":6,"path":"scripts/__bone_constain_look_at/__bone_constain_look_at.yy",}, {"name":"__bone_constain_look_at","order":6,"path":"scripts/__bone_constain_look_at/__bone_constain_look_at.yy",},
@ -408,7 +408,6 @@
{"name":"__node_3d_displace","order":2,"path":"scripts/__node_3d_displace/__node_3d_displace.yy",}, {"name":"__node_3d_displace","order":2,"path":"scripts/__node_3d_displace/__node_3d_displace.yy",},
{"name":"__node_3d_export","order":3,"path":"scripts/__node_3d_export/__node_3d_export.yy",}, {"name":"__node_3d_export","order":3,"path":"scripts/__node_3d_export/__node_3d_export.yy",},
{"name":"__node_3d_extrude","order":4,"path":"scripts/__node_3d_extrude/__node_3d_extrude.yy",}, {"name":"__node_3d_extrude","order":4,"path":"scripts/__node_3d_extrude/__node_3d_extrude.yy",},
{"name":"__node_3d_light","order":1,"path":"scripts/__node_3d_light/__node_3d_light.yy",},
{"name":"__node_3d_mesh","order":1,"path":"scripts/__node_3d_mesh/__node_3d_mesh.yy",}, {"name":"__node_3d_mesh","order":1,"path":"scripts/__node_3d_mesh/__node_3d_mesh.yy",},
{"name":"__node_3d_obj","order":5,"path":"scripts/__node_3d_obj/__node_3d_obj.yy",}, {"name":"__node_3d_obj","order":5,"path":"scripts/__node_3d_obj/__node_3d_obj.yy",},
{"name":"__node_3d_object","order":11,"path":"scripts/__node_3d_object/__node_3d_object.yy",}, {"name":"__node_3d_object","order":11,"path":"scripts/__node_3d_object/__node_3d_object.yy",},
@ -541,20 +540,20 @@
{"name":"d3d_gizmo_line","order":1,"path":"scripts/d3d_gizmo_line/d3d_gizmo_line.yy",}, {"name":"d3d_gizmo_line","order":1,"path":"scripts/d3d_gizmo_line/d3d_gizmo_line.yy",},
{"name":"d3d_gizmo_plane_falloff","order":6,"path":"scripts/d3d_gizmo_plane_falloff/d3d_gizmo_plane_falloff.yy",}, {"name":"d3d_gizmo_plane_falloff","order":6,"path":"scripts/d3d_gizmo_plane_falloff/d3d_gizmo_plane_falloff.yy",},
{"name":"d3d_gizmo_plane","order":5,"path":"scripts/d3d_gizmo_plane/d3d_gizmo_plane.yy",}, {"name":"d3d_gizmo_plane","order":5,"path":"scripts/d3d_gizmo_plane/d3d_gizmo_plane.yy",},
{"name":"d3d_group","order":3,"path":"scripts/d3d_group/d3d_group.yy",}, {"name":"d3d_group","order":4,"path":"scripts/d3d_group/d3d_group.yy",},
{"name":"d3d_icosphere","order":10,"path":"scripts/d3d_icosphere/d3d_icosphere.yy",}, {"name":"d3d_icosphere","order":10,"path":"scripts/d3d_icosphere/d3d_icosphere.yy",},
{"name":"d3d_light_directional","order":1,"path":"scripts/d3d_light_directional/d3d_light_directional.yy",}, {"name":"d3d_light_directional","order":1,"path":"scripts/d3d_light_directional/d3d_light_directional.yy",},
{"name":"d3d_light_point","order":2,"path":"scripts/d3d_light_point/d3d_light_point.yy",}, {"name":"d3d_light_point","order":2,"path":"scripts/d3d_light_point/d3d_light_point.yy",},
{"name":"d3d_material","order":4,"path":"scripts/d3d_material/d3d_material.yy",}, {"name":"d3d_material","order":5,"path":"scripts/d3d_material/d3d_material.yy",},
{"name":"d3d_object_instancer","order":5,"path":"scripts/d3d_object_instancer/d3d_object_instancer.yy",}, {"name":"d3d_object_instancer","order":6,"path":"scripts/d3d_object_instancer/d3d_object_instancer.yy",},
{"name":"d3d_object","order":1,"path":"scripts/d3d_object/d3d_object.yy",}, {"name":"d3d_object","order":2,"path":"scripts/d3d_object/d3d_object.yy",},
{"name":"d3d_path_extrude","order":22,"path":"scripts/d3d_path_extrude/d3d_path_extrude.yy",}, {"name":"d3d_path_extrude","order":22,"path":"scripts/d3d_path_extrude/d3d_path_extrude.yy",},
{"name":"d3d_plane_bend_mesh","order":16,"path":"scripts/d3d_plane_bend_mesh/d3d_plane_bend_mesh.yy",}, {"name":"d3d_plane_bend_mesh","order":16,"path":"scripts/d3d_plane_bend_mesh/d3d_plane_bend_mesh.yy",},
{"name":"d3d_plane_mesh","order":14,"path":"scripts/d3d_plane_mesh/d3d_plane_mesh.yy",}, {"name":"d3d_plane_mesh","order":14,"path":"scripts/d3d_plane_mesh/d3d_plane_mesh.yy",},
{"name":"d3d_plane","order":2,"path":"scripts/d3d_plane/d3d_plane.yy",}, {"name":"d3d_plane","order":2,"path":"scripts/d3d_plane/d3d_plane.yy",},
{"name":"d3d_ray","order":9,"path":"scripts/d3d_ray/d3d_ray.yy",}, {"name":"d3d_ray","order":9,"path":"scripts/d3d_ray/d3d_ray.yy",},
{"name":"d3d_rot3","order":3,"path":"scripts/d3d_rot3/d3d_rot3.yy",}, {"name":"d3d_rot3","order":3,"path":"scripts/d3d_rot3/d3d_rot3.yy",},
{"name":"d3d_scene","order":2,"path":"scripts/d3d_scene/d3d_scene.yy",}, {"name":"d3d_scene","order":3,"path":"scripts/d3d_scene/d3d_scene.yy",},
{"name":"d3d_surface_extrude","order":18,"path":"scripts/d3d_surface_extrude/d3d_surface_extrude.yy",}, {"name":"d3d_surface_extrude","order":18,"path":"scripts/d3d_surface_extrude/d3d_surface_extrude.yy",},
{"name":"d3d_terrain","order":20,"path":"scripts/d3d_terrain/d3d_terrain.yy",}, {"name":"d3d_terrain","order":20,"path":"scripts/d3d_terrain/d3d_terrain.yy",},
{"name":"d3d_torus","order":24,"path":"scripts/d3d_torus/d3d_torus.yy",}, {"name":"d3d_torus","order":24,"path":"scripts/d3d_torus/d3d_torus.yy",},
@ -1377,6 +1376,7 @@
{"name":"png_reader","order":9,"path":"scripts/png_reader/png_reader.yy",}, {"name":"png_reader","order":9,"path":"scripts/png_reader/png_reader.yy",},
{"name":"point_direction_positive","order":4,"path":"scripts/point_direction_positive/point_direction_positive.yy",}, {"name":"point_direction_positive","order":4,"path":"scripts/point_direction_positive/point_direction_positive.yy",},
{"name":"point_rect_overlap","order":2,"path":"scripts/point_rect_overlap/point_rect_overlap.yy",}, {"name":"point_rect_overlap","order":2,"path":"scripts/point_rect_overlap/point_rect_overlap.yy",},
{"name":"sh_d3d_unlit","order":4,"path":"shaders/sh_d3d_unlit/sh_d3d_unlit.yy",},
{"name":"point_rotate","order":1,"path":"scripts/point_rotate/point_rotate.yy",}, {"name":"point_rotate","order":1,"path":"scripts/point_rotate/point_rotate.yy",},
{"name":"polygon_points","order":2,"path":"scripts/polygon_points/polygon_points.yy",}, {"name":"polygon_points","order":2,"path":"scripts/polygon_points/polygon_points.yy",},
{"name":"preferences","order":5,"path":"scripts/preferences/preferences.yy",}, {"name":"preferences","order":5,"path":"scripts/preferences/preferences.yy",},
@ -1572,20 +1572,20 @@
{"name":"sh_cross_section","order":17,"path":"shaders/sh_cross_section/sh_cross_section.yy",}, {"name":"sh_cross_section","order":17,"path":"shaders/sh_cross_section/sh_cross_section.yy",},
{"name":"sh_curve_hsv","order":39,"path":"shaders/sh_curve_hsv/sh_curve_hsv.yy",}, {"name":"sh_curve_hsv","order":39,"path":"shaders/sh_curve_hsv/sh_curve_hsv.yy",},
{"name":"sh_curve","order":3,"path":"shaders/sh_curve/sh_curve.yy",}, {"name":"sh_curve","order":3,"path":"shaders/sh_curve/sh_curve.yy",},
{"name":"sh_d3d_3d_transform","order":16,"path":"shaders/sh_d3d_3d_transform/sh_d3d_3d_transform.yy",}, {"name":"sh_d3d_3d_transform","order":17,"path":"shaders/sh_d3d_3d_transform/sh_d3d_3d_transform.yy",},
{"name":"sh_d3d_background","order":12,"path":"shaders/sh_d3d_background/sh_d3d_background.yy",}, {"name":"sh_d3d_background","order":13,"path":"shaders/sh_d3d_background/sh_d3d_background.yy",},
{"name":"sh_d3d_default","order":3,"path":"shaders/sh_d3d_default/sh_d3d_default.yy",}, {"name":"sh_d3d_default","order":3,"path":"shaders/sh_d3d_default/sh_d3d_default.yy",},
{"name":"sh_d3d_extrude_extends","order":15,"path":"shaders/sh_d3d_extrude_extends/sh_d3d_extrude_extends.yy",}, {"name":"sh_d3d_extrude_extends","order":16,"path":"shaders/sh_d3d_extrude_extends/sh_d3d_extrude_extends.yy",},
{"name":"sh_d3d_geometry","order":13,"path":"shaders/sh_d3d_geometry/sh_d3d_geometry.yy",}, {"name":"sh_d3d_geometry","order":14,"path":"shaders/sh_d3d_geometry/sh_d3d_geometry.yy",},
{"name":"sh_d3d_grid_view","order":5,"path":"shaders/sh_d3d_grid_view/sh_d3d_grid_view.yy",}, {"name":"sh_d3d_grid_view","order":6,"path":"shaders/sh_d3d_grid_view/sh_d3d_grid_view.yy",},
{"name":"sh_d3d_normal_blur","order":14,"path":"shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.yy",}, {"name":"sh_d3d_normal_blur","order":15,"path":"shaders/sh_d3d_normal_blur/sh_d3d_normal_blur.yy",},
{"name":"sh_d3d_normal","order":9,"path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",}, {"name":"sh_d3d_normal","order":10,"path":"shaders/sh_d3d_normal/sh_d3d_normal.yy",},
{"name":"sh_d3d_outline","order":7,"path":"shaders/sh_d3d_outline/sh_d3d_outline.yy",}, {"name":"sh_d3d_outline","order":8,"path":"shaders/sh_d3d_outline/sh_d3d_outline.yy",},
{"name":"sh_d3d_shadow_cube_depth","order":11,"path":"shaders/sh_d3d_shadow_cube_depth/sh_d3d_shadow_cube_depth.yy",}, {"name":"sh_d3d_shadow_cube_depth","order":12,"path":"shaders/sh_d3d_shadow_cube_depth/sh_d3d_shadow_cube_depth.yy",},
{"name":"sh_d3d_shadow_depth","order":10,"path":"shaders/sh_d3d_shadow_depth/sh_d3d_shadow_depth.yy",}, {"name":"sh_d3d_shadow_depth","order":11,"path":"shaders/sh_d3d_shadow_depth/sh_d3d_shadow_depth.yy",},
{"name":"sh_d3d_silhouette","order":6,"path":"shaders/sh_d3d_silhouette/sh_d3d_silhouette.yy",}, {"name":"sh_d3d_silhouette","order":7,"path":"shaders/sh_d3d_silhouette/sh_d3d_silhouette.yy",},
{"name":"sh_d3d_ssao_blur","order":1,"path":"shaders/sh_d3d_ssao_blur/sh_d3d_ssao_blur.yy",}, {"name":"sh_d3d_ssao_blur","order":1,"path":"shaders/sh_d3d_ssao_blur/sh_d3d_ssao_blur.yy",},
{"name":"sh_d3d_wireframe","order":8,"path":"shaders/sh_d3d_wireframe/sh_d3d_wireframe.yy",}, {"name":"sh_d3d_wireframe","order":9,"path":"shaders/sh_d3d_wireframe/sh_d3d_wireframe.yy",},
{"name":"sh_de_corner","order":1,"path":"shaders/sh_de_corner/sh_de_corner.yy",}, {"name":"sh_de_corner","order":1,"path":"shaders/sh_de_corner/sh_de_corner.yy",},
{"name":"sh_de_stray","order":3,"path":"shaders/sh_de_stray/sh_de_stray.yy",}, {"name":"sh_de_stray","order":3,"path":"shaders/sh_de_stray/sh_de_stray.yy",},
{"name":"sh_default","order":6,"path":"shaders/sh_default/sh_default.yy",}, {"name":"sh_default","order":6,"path":"shaders/sh_default/sh_default.yy",},
@ -1899,6 +1899,7 @@
{"name":"s_node_3d_mesh_export","order":31,"path":"sprites/s_node_3d_mesh_export/s_node_3d_mesh_export.yy",}, {"name":"s_node_3d_mesh_export","order":31,"path":"sprites/s_node_3d_mesh_export/s_node_3d_mesh_export.yy",},
{"name":"s_node_3d_mesh_extrude","order":2,"path":"sprites/s_node_3d_mesh_extrude/s_node_3d_mesh_extrude.yy",}, {"name":"s_node_3d_mesh_extrude","order":2,"path":"sprites/s_node_3d_mesh_extrude/s_node_3d_mesh_extrude.yy",},
{"name":"s_node_3d_mesh_obj","order":3,"path":"sprites/s_node_3d_mesh_obj/s_node_3d_mesh_obj.yy",}, {"name":"s_node_3d_mesh_obj","order":3,"path":"sprites/s_node_3d_mesh_obj/s_node_3d_mesh_obj.yy",},
{"name":"node_3d_light_directional","order":1,"path":"scripts/node_3d_light_directional/node_3d_light_directional.yy",},
{"name":"s_node_3d_mesh_path_extrude","order":32,"path":"sprites/s_node_3d_mesh_path_extrude/s_node_3d_mesh_path_extrude.yy",}, {"name":"s_node_3d_mesh_path_extrude","order":32,"path":"sprites/s_node_3d_mesh_path_extrude/s_node_3d_mesh_path_extrude.yy",},
{"name":"s_node_3d_mesh_plane","order":6,"path":"sprites/s_node_3d_mesh_plane/s_node_3d_mesh_plane.yy",}, {"name":"s_node_3d_mesh_plane","order":6,"path":"sprites/s_node_3d_mesh_plane/s_node_3d_mesh_plane.yy",},
{"name":"s_node_3d_mesh_sphere_ico","order":16,"path":"sprites/s_node_3d_mesh_sphere_ico/s_node_3d_mesh_sphere_ico.yy",}, {"name":"s_node_3d_mesh_sphere_ico","order":16,"path":"sprites/s_node_3d_mesh_sphere_ico/s_node_3d_mesh_sphere_ico.yy",},

View file

@ -1306,11 +1306,7 @@
{"$GMIncludedFile":"","%Name":"Canvas.png","CopyToMask":-1,"filePath":"datafiles/data/Welcome files/Templates","name":"Canvas.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"Canvas.png","CopyToMask":-1,"filePath":"datafiles/data/Welcome files/Templates","name":"Canvas.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Canvas.pxc","CopyToMask":-1,"filePath":"datafiles/data/Welcome files/Templates","name":"Canvas.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"Canvas.pxc","CopyToMask":-1,"filePath":"datafiles/data/Welcome files/Templates","name":"Canvas.pxc","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"Welcome files.zip","CopyToMask":-1,"filePath":"datafiles/data/Welcome files","name":"Welcome files.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"Welcome files.zip","CopyToMask":-1,"filePath":"datafiles/data/Welcome files","name":"Welcome files.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"dllcredits.txt","ConfigValues":{ {"$GMIncludedFile":"","%Name":"dllcredits.txt","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":0,"filePath":"datafiles","name":"dllcredits.txt","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
"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":"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":"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",}, {"$GMIncludedFile":"","%Name":"LICENSE","CopyToMask":-1,"filePath":"datafiles/ffmpeg","name":"LICENSE","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
@ -1329,11 +1325,7 @@
{"$GMIncludedFile":"","%Name":"mf.dll","CopyToMask":-1,"filePath":"datafiles","name":"mf.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$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":"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":"mfplat.dll","CopyToMask":-1,"filePath":"datafiles","name":"mfplat.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
{"$GMIncludedFile":"","%Name":"PixelComposer_profile-2.provisionprofile","ConfigValues":{ {"$GMIncludedFile":"","%Name":"PixelComposer_profile-2.provisionprofile","ConfigValues":{"Itch":{"CopyToMask":"2",},},"CopyToMask":-1,"filePath":"datafiles","name":"PixelComposer_profile-2.provisionprofile","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
"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":"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":"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",}, {"$GMIncludedFile":"","%Name":"options.ini","CopyToMask":-1,"filePath":"datafiles/report","name":"options.ini","resourceType":"GMIncludedFile","resourceVersion":"2.0",},
@ -2329,6 +2321,7 @@
{"id":{"name":"node_scatter_points","path":"scripts/node_scatter_points/node_scatter_points.yy",},}, {"id":{"name":"node_scatter_points","path":"scripts/node_scatter_points/node_scatter_points.yy",},},
{"id":{"name":"node_scatter","path":"scripts/node_scatter/node_scatter.yy",},}, {"id":{"name":"node_scatter","path":"scripts/node_scatter/node_scatter.yy",},},
{"id":{"name":"node_sdf","path":"scripts/node_sdf/node_sdf.yy",},}, {"id":{"name":"node_sdf","path":"scripts/node_sdf/node_sdf.yy",},},
{"id":{"name":"sh_d3d_unlit","path":"shaders/sh_d3d_unlit/sh_d3d_unlit.yy",},},
{"id":{"name":"node_segment_filter","path":"scripts/node_segment_filter/node_segment_filter.yy",},}, {"id":{"name":"node_segment_filter","path":"scripts/node_segment_filter/node_segment_filter.yy",},},
{"id":{"name":"node_separate_color","path":"scripts/node_separate_color/node_separate_color.yy",},}, {"id":{"name":"node_separate_color","path":"scripts/node_separate_color/node_separate_color.yy",},},
{"id":{"name":"node_seperate_shape","path":"scripts/node_seperate_shape/node_seperate_shape.yy",},}, {"id":{"name":"node_seperate_shape","path":"scripts/node_seperate_shape/node_seperate_shape.yy",},},

Binary file not shown.

View file

@ -1,9 +1,12 @@
#macro __3D_GROUP_PRESUB transform.submitMatrix(); for( var i = 0, n = array_length(objects); i < n; i++ )
#macro __3D_GROUP_POSSUB transform.clearMatrix();
function __3dGroup() constructor { function __3dGroup() constructor {
objects = []; objects = [];
transform = new __transform(); transform = new __transform();
static getCenter = function() { #region static getCenter = function() {
var _v = new __vec3(); var _v = new __vec3();
var _i = 0; var _i = 0;
@ -19,9 +22,9 @@ function __3dGroup() constructor {
_v.add(transform.position); _v.add(transform.position);
return _v; return _v;
} #endregion }
static getBBOX = function() { #region static getBBOX = function() {
if(array_empty(objects)) return new __bbox3D(new __vec3(-0.5), new __vec3(0.5)); if(array_empty(objects)) return new __bbox3D(new __vec3(-0.5), new __vec3(0.5));
var _m0 = noone; var _m0 = noone;
var _m1 = noone; var _m1 = noone;
@ -50,52 +53,18 @@ function __3dGroup() constructor {
_m1._subtract(_cc); _m1._subtract(_cc);
return new __bbox3D(_m0, _m1); return new __bbox3D(_m0, _m1);
} #endregion }
static addObject = function(_obj) { #region static addObject = function(_obj) { array_push(objects, _obj); }
INLINE
array_push(objects, _obj);
} #endregion
static submit = function(scene = {}, shader = noone) { #region static submit = function(_sc = {}, _sh = noone) /*=>*/ { __3D_GROUP_PRESUB objects[i].submit(_sc, _sh); __3D_GROUP_POSSUB }
transform.submitMatrix(); static submitUI = function(_sc = {}, _sh = noone) /*=>*/ { __3D_GROUP_PRESUB objects[i].submitUI(_sc, _sh); __3D_GROUP_POSSUB }
for( var i = 0, n = array_length(objects); i < n; i++ ) static submitSel = function(_sc = {}, _sh = noone) /*=>*/ { __3D_GROUP_PRESUB objects[i].submitSel(_sc, _sh); __3D_GROUP_POSSUB }
objects[i].submit(scene, shader); static submitShader = function(_sc = {}, _sh = noone) /*=>*/ { __3D_GROUP_PRESUB objects[i].submitShader(_sc, _sh); __3D_GROUP_POSSUB }
transform.clearMatrix(); static submitShadow = function(_sc = {}, object = noone) /*=>*/ { for( var i = 0, n = array_length(objects); i < n; i++ ) objects[i].submitShadow(_sc, object); }
} #endregion static map = function(callback, _sc = {}) /*=>*/ { for( var i = 0, n = array_length(objects); i < n; i++ ) callback(objects[i], _sc); }
static submitUI = function(scene = {}, shader = noone) { #region static clone = function(vertex = true, cloneBuffer = false) {
transform.submitMatrix();
for( var i = 0, n = array_length(objects); i < n; i++ )
objects[i].submitUI(scene, shader);
transform.clearMatrix();
} #endregion
static submitSel = function(scene = {}, shader = noone) { #region
transform.submitMatrix();
for( var i = 0, n = array_length(objects); i < n; i++ )
objects[i].submitSel(scene, shader);
transform.clearMatrix();
} #endregion
static submitShader = function(scene = {}, shader = noone) { #region
transform.submitMatrix();
for( var i = 0, n = array_length(objects); i < n; i++ )
objects[i].submitShader(scene, shader);
transform.clearMatrix();
} #endregion
static submitShadow = function(scene = {}, object = noone) { #region
for( var i = 0, n = array_length(objects); i < n; i++ )
objects[i].submitShadow(scene, object);
} #endregion
static map = function(callback, scene = {}) { #region
for( var i = 0, n = array_length(objects); i < n; i++ )
callback(objects[i], scene);
} #endregion
static clone = function(vertex = true, cloneBuffer = false) { #region
var _new = new __3dGroup(); var _new = new __3dGroup();
_new.transform = transform.clone(); _new.transform = transform.clone();
@ -105,5 +74,5 @@ function __3dGroup() constructor {
_new.objects[i] = objects[i].clone(vertex, cloneBuffer); _new.objects[i] = objects[i].clone(vertex, cloneBuffer);
return _new; return _new;
} #endregion }
} }

View file

@ -31,6 +31,7 @@ function __3dObject() constructor {
VF = global.VF_POS_COL; VF = global.VF_POS_COL;
NVB = noone; NVB = noone;
WVB = noone; WVB = noone;
name = UUID_generate();
transform = new __transform(); transform = new __transform();
size = new __vec3(1); size = new __vec3(1);
@ -154,24 +155,24 @@ function __3dObject() constructor {
////- Submit ////- Submit
static preSubmitVertex = function(scene = {}) {} static preSubmitVertex = function(_sc = {}) {}
static postSubmitVertex = function(scene = {}) {} static postSubmitVertex = function(_sc = {}) {}
static getCenter = function() { return new __vec3(transform.position.x, transform.position.y, transform.position.z); } static getCenter = function() { return new __vec3(transform.position.x, transform.position.y, transform.position.z); }
static getBBOX = function() { return new __bbox3D(size.multiplyVec(transform.scale).multiply(-0.5), size.multiplyVec(transform.scale).multiply(0.5)); } static getBBOX = function() { return new __bbox3D(size.multiplyVec(transform.scale).multiply(-0.5), size.multiplyVec(transform.scale).multiply(0.5)); }
static submit = function(scene = {}, shader = noone) { submitVertex(scene, shader); } static submit = function(_sc = {}, _sh = noone) { submitVertex(_sc, _sh); }
static submitUI = function(scene = {}, shader = noone) { submitVertex(scene, shader); } static submitUI = function(_sc = {}, _sh = noone) { submitVertex(_sc, _sh); }
static submitSel = function(scene = {}, shader = noone) { static submitSel = function(_sc = {}, _sh = noone) {
var _s = variable_clone(scene); var _s = variable_clone(_sc);
_s.show_normal = false; _s.show_normal = false;
submitVertex(_s, sh_d3d_silhouette); submitVertex(_s, sh_d3d_silhouette);
} }
static submitShader = function(scene = {}, shader = noone) {} static submitShader = function(_sc = {}, _sh = noone) { submitVertex(_sc, _sh); }
static submitShadow = function(scene = {}, object = noone) {} static submitShadow = function(_sc = {}, _ob = noone) {}
static submitVertex = function(scene = {}, shader = noone) { static submitVertex = function(_sc = {}, _sh = noone) {
var _shader; var _shader;
switch(VF) { switch(VF) {
@ -181,26 +182,32 @@ function __3dObject() constructor {
} }
if(custom_shader != noone) _shader = custom_shader; if(custom_shader != noone) _shader = custom_shader;
if(shader != noone) _shader = shader; if(_sh != noone) _shader = _sh;
if(!is_undefined(shader)) shader_set(_shader); if(!is_undefined(_sh)) shader_set(_shader);
preSubmitVertex(scene); preSubmitVertex(_sc);
transform.submitMatrix(); transform.submitMatrix();
matrix_set(matrix_world, matrix_stack_top()); matrix_set(matrix_world, matrix_stack_top());
gpu_set_tex_repeat(true); gpu_set_tex_repeat(true);
for( var i = 0, n = array_length(VB); i < n; i++ ) { for( var i = 0, n = array_length(VB); i < n; i++ ) {
var _ind = array_safe_get_fast(material_index, i, i); var _ind = array_safe_get_fast(material_index, i, i);
var _mat = array_safe_get_fast(materials, _ind, noone); var _mat = array_safe_get_fast(materials, _ind, noone);
var _useMat = is_instanceof(_mat, __d3dMaterial); var _uMat = is_instanceof(_mat, __d3dMaterial);
shader_set_i("mat_flip", texture_flip); shader_set_i("mat_flip", texture_flip);
var _tex = _useMat? _mat.getTexture() : -1; var _tex = _uMat? _mat.getTexture() : -1;
if(_shader == sh_d3d_default) { if(_shader == sh_d3d_geometry) {
if(_useMat) { if(_uMat) _mat.submitGeometry();
_mat.submitShader(); else {
} else { shader_set_i("use_normal", 0);
shader_set_f("mat_texScale", [ 1, 1 ] );
}
} else {
if(_uMat) _mat.submitShader();
else {
shader_set_f("mat_diffuse", 1); shader_set_f("mat_diffuse", 1);
shader_set_f("mat_specular", 0); shader_set_f("mat_specular", 0);
shader_set_f("mat_shine", 1); shader_set_f("mat_shine", 1);
@ -208,23 +215,16 @@ function __3dObject() constructor {
shader_set_f("mat_reflective", 0); shader_set_f("mat_reflective", 0);
shader_set_f("mat_texScale", [ 1, 1 ] ); shader_set_f("mat_texScale", [ 1, 1 ] );
} }
} else if(_shader == sh_d3d_geometry) {
if(_useMat) _mat.submitGeometry();
else {
shader_set_i("use_normal", 0);
shader_set_f("mat_texScale", [ 1, 1 ] );
}
} }
vertex_submit(VB[i], render_type, _tex); vertex_submit(VB[i], render_type, _tex);
} }
// print(shader_get_name(_shader), instanceof(self));
gpu_set_tex_repeat(false); gpu_set_tex_repeat(false);
if(!is_undefined(shader)) shader_reset(); if(!is_undefined(_sh)) shader_reset();
if(scene.show_normal) { if(_sc.show_normal) {
if(NVB == noone) generateNormal(); if(NVB == noone) generateNormal();
if(NVB != noone) { if(NVB != noone) {
shader_set(sh_d3d_wireframe); shader_set(sh_d3d_wireframe);
@ -236,7 +236,7 @@ function __3dObject() constructor {
transform.clearMatrix(); transform.clearMatrix();
matrix_set(matrix_world, matrix_build_identity()); matrix_set(matrix_world, matrix_build_identity());
postSubmitVertex(scene); postSubmitVertex(_sc);
} }

View file

@ -41,9 +41,9 @@
globalvar HOTKEYS, HOTKEY_CONTEXT; globalvar HOTKEYS, HOTKEY_CONTEXT;
LATEST_VERSION = 1_18_00_0; LATEST_VERSION = 1_18_00_0;
VERSION = 1_18_06_2; VERSION = 1_18_08_0;
SAVE_VERSION = 1_18_05_0; SAVE_VERSION = 1_18_05_0;
VERSION_STRING = MAC? "1.18.003m" : "1.18.7.1"; VERSION_STRING = MAC? "1.18.003m" : "1.18.8.001";
BUILD_NUMBER = 118071.001; BUILD_NUMBER = 118071.001;
PREF_VERSION = 1_17_1; PREF_VERSION = 1_17_1;

View file

@ -86,24 +86,26 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
in_cam = array_length(inputs); in_cam = array_length(inputs);
newOutput(0, nodeValue_Output("Rendered", self, VALUE_TYPE.surface, noone )); newOutput(0, nodeValue_Output("Rendered", self, VALUE_TYPE.surface, noone ));
newOutput(1, nodeValue_Output("Normal", self, VALUE_TYPE.surface, noone )).setVisible(false);
newOutput(1, nodeValue_Output("Normal", self, VALUE_TYPE.surface, noone )) newOutput(2, nodeValue_Output("Depth", self, VALUE_TYPE.surface, noone )).setVisible(false);
.setVisible(false); newOutput(3, nodeValue_Output("Shadow", self, VALUE_TYPE.surface, noone )).setVisible(false);
newOutput(4, nodeValue_Output("Ambient Occlusion", self, VALUE_TYPE.surface, noone )).setVisible(false);
newOutput(2, nodeValue_Output("Depth", self, VALUE_TYPE.surface, noone )) newOutput(5, nodeValue_Output("Diffuse", self, VALUE_TYPE.surface, noone )).setVisible(false);
.setVisible(false);
input_display_list = [ i+4, input_display_list = [ i+4,
["Output", false], i+ 2, ["Output", false], i+ 2,
["Transform", false], i+ 9, 0, 1, i+10, i+11, i+12, i+13, i+14, ["Transform", false], i+ 9, 0, 1, i+10, i+11, i+12, i+13, i+14,
["Camera", true], i+ 3, i+ 0, i+ 1, i+ 8, ["Camera", true], i+ 3, i+ 0, i+ 1, i+ 8,
["Render", true], i+ 5, i+16, i+ 6, i+ 7, i+15, i+22, ["Render", true], i+ 5, i+16, i+ 6, i+ 7, i+15, i+22,
["Wireframe", true, i+23], i+24, i+25, i+26, i+27, i+28, ["Wireframe", true, i+23], i+24, i+25, i+26, i+27, i+28,
["Ambient Occlusion", true], i+17, i+20, i+18, i+19, ["Ambient Occlusion", true, i+17], i+20, i+18, i+19,
["Effects", true], i+21, ["Effects", true], i+21,
]; ];
tool_lookat = new NodeTool( "Move Target", THEME.tools_3d_transform_object ); output_display_list = [ 0, 5, 1, 2, 3, 4 ];
temp_surface = [ 0 ];
tool_lookat = new NodeTool( "Move Target", THEME.tools_3d_transform_object );
////- Preview ////- Preview
@ -207,7 +209,7 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
static submitShadow = function() {} static submitShadow = function() {}
static submitShader = function() {} static submitShader = function() {}
static processData = function(_output, _data, _output_index, _array_index = 0) { static processData = function(_outData, _data, _output_index, _array_index = 0) {
#region data #region data
var _pos = _data[0]; var _pos = _data[0];
var _rot = _data[1]; var _rot = _data[1];
@ -330,36 +332,32 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
#endregion #endregion
#region submit #region submit
var _render = outputs[0].getValue(); for( var i = 0, n = array_length(_outData); i < n; i++ ) {
var _normal = outputs[1].getValue(); if(is_surface(_outData[i]) && !surface_has_depth(_outData[i]))
var _depth = outputs[2].getValue(); surface_free(_outData[i]);
var _bgSurf = _dbg? scene.renderBackground(_dim[0], _dim[1]) : noone; _outData[i] = surface_verify(_outData[i], _dim[0], _dim[1]);
}
_render = surface_verify(_render, _dim[0], _dim[1]); temp_surface[0] = surface_verify(temp_surface[0], _dim[0], _dim[1]);
_normal = surface_verify(_normal, _dim[0], _dim[1]); var _render = temp_surface[0];
_depth = surface_verify(_depth , _dim[0], _dim[1]); var _bgSurf = _dbg? scene.renderBackground(_dim[0], _dim[1]) : noone;
if(_sobj) { if(_sobj) {
_sobj.submitShadow(scene, _sobj); _sobj.submitShadow(scene, _sobj);
submitShadow(); submitShadow();
deferData = scene.deferPass(_sobj, _dim[0], _dim[1], deferData); deferData = scene.deferPass(_sobj, _dim[0], _dim[1], deferData);
surface_set_target_ext(0, _render); surface_set_target_ext(0, _render);
surface_set_target_ext(1, _normal); surface_set_target_ext(1, _outData[1]);
surface_set_target_ext(2, _depth ); surface_set_target_ext(2, _outData[2]);
surface_set_target_ext(3, _outData[3]);
DRAW_CLEAR DRAW_CLEAR
gpu_set_zwriteenable(true); gpu_set_zwriteenable(true);
gpu_set_cullmode(_back); gpu_set_cullmode(_back);
gpu_set_ztestenable(_blend == 0);
if(_blend == 0) { if(_blend == 1) BLEND_ADD
gpu_set_ztestenable(true);
} else {
BLEND_ADD
gpu_set_ztestenable(false);
}
camera.applyCamera(); camera.applyCamera();
scene.reset(); scene.reset();
@ -373,12 +371,30 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
surface_reset_target(); surface_reset_target();
camera.resetCamera(); camera.resetCamera();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
surface_set_target_ext(0, _outData[5]);
DRAW_CLEAR
gpu_set_zwriteenable(true);
gpu_set_cullmode(_back);
gpu_set_ztestenable(_blend == 0);
if(_blend == 1) BLEND_ADD
camera.applyCamera();
scene.submitShader(_sobj, sh_d3d_unlit);
BLEND_NORMAL
surface_reset_target();
camera.resetCamera();
} }
#endregion #endregion
#region render #region render
var _finalRender = surface_create(_dim[0], _dim[1]); surface_set_target(_outData[0]);
surface_set_target(_finalRender);
DRAW_CLEAR DRAW_CLEAR
BLEND_ALPHA BLEND_ALPHA
@ -395,11 +411,13 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group)
} }
surface_reset_target(); surface_reset_target();
surface_free(_render); surface_free(_render);
_outData[4] = deferData.ssao;
#endregion #endregion
surface_depth_disable(true); surface_depth_disable(true);
return [ _finalRender, _normal, _depth ]; return _outData;
} }
////- Draw ////- Draw

View file

@ -14,37 +14,14 @@ function Node_3D_Light_Directional(_x, _y, _group = noone) : Node_3D_Light(_x, _
input_display_list = [ input_display_list = [
["Transform", false], 0, ["Transform", false], 0,
__d3d_input_list_light, __d3d_input_list_light,
["Shadow", false], in_light + 0, in_light + 1, in_light + 2, in_light + 3, ["Shadow", false, in_light + 0], in_light + 1, in_light + 2, in_light + 3,
] ]
tools = [ tool_pos ]; tools = [ tool_pos ];
tool_settings = []; tool_settings = [];
tool_attribute.context = 1; tool_attribute.context = 1;
//static drawOverlay3D = function(active, params, _mx, _my, _snx, _sny, _panel) { #region static processData = function(_output, _data, _output_index, _array_index = 0) {
// var object = getObject(0);
// var _outSurf = object.shadow_map;
// 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 _active = _data[in_d3d + 0]; var _active = _data[in_d3d + 0];
if(!_active) return noone; if(!_active) return noone;
@ -64,5 +41,5 @@ function Node_3D_Light_Directional(_x, _y, _group = noone) : Node_3D_Light(_x, _
object.transform.rotation.FromEuler(_rot.x, _rot.y, _rot.z); object.transform.rotation.FromEuler(_rot.x, _rot.y, _rot.z);
return object; return object;
} #endregion }
} }

View file

@ -17,7 +17,7 @@ function Node_3D_Light_Point(_x, _y, _group = noone) : Node_3D_Light(_x, _y, _gr
input_display_list = [ input_display_list = [
["Transform", false], 0, ["Transform", false], 0,
__d3d_input_list_light, in_light, __d3d_input_list_light, in_light,
["Shadow", false], in_light + 1, in_light + 2, in_light + 3, ["Shadow", false, in_light + 1], in_light + 2, in_light + 3,
] ]
tools = [ tool_pos ]; tools = [ tool_pos ];
@ -43,14 +43,4 @@ function Node_3D_Light_Point(_x, _y, _group = noone) : Node_3D_Light(_x, _y, _gr
return _object; return _object;
} }
// static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) {
// var bbox = drawGetBbox(xx, yy, _s);
// var _object = getObject(0);
// if(_object == noone) return;
// var __smap = _object.shadow_map;
// draw_surface_ext_safe(__smap, bbox.x0, bbox.y0, .5 * _s, .5 * _s);
// }
} }

View file

@ -206,6 +206,7 @@ void main() {
mat_baseColor *= v_vColour; mat_baseColor *= v_vColour;
vec4 final_color = mat_baseColor; vec4 final_color = mat_baseColor;
vec3 shadow = vec3(0.);
if(show_wireframe == 1 && wireframe_shade == 1) final_color = wireframeCalc(final_color); if(show_wireframe == 1 && wireframe_shade == 1) final_color = wireframeCalc(final_color);
vec3 viewDirection = normalize(cameraPosition - v_worldPosition.xyz); vec3 viewDirection = normalize(cameraPosition - v_worldPosition.xyz);
@ -272,20 +273,18 @@ void main() {
if(lightMapUV.x >= 0. && lightMapUV.x <= 1. && lightMapUV.y >= 0. && lightMapUV.y <= 1.) { if(lightMapUV.x >= 0. && lightMapUV.x <= 1. && lightMapUV.y >= 0. && lightMapUV.y <= 1.) {
light_map_depth = sampleDirShadowMap(shadow_map_index, lightMapUV); light_map_depth = sampleDirShadowMap(shadow_map_index, lightMapUV);
//gl_FragData[0] = texture2D(light_dir_shadowmap_0, lightMapUV);
//return;
shadow_map_index++; shadow_map_index++;
float shadowFactor = dot(normal, lightVector); float shadowFactor = dot(normal, lightVector);
float bias = mix(light_dir_shadow_bias[i], 0., shadowFactor); float bias = mix(light_dir_shadow_bias[i], 0., shadowFactor);
if(l_lightDistance > light_map_depth + bias) if(l_lightDistance > light_map_depth + bias) {
shadow += 1. / float(light_dir_count + light_pnt_count);
continue; continue;
}
} }
} }
vec3 light_phong = phongLight(normal, lightVector, viewDirection, light_dir_color[i].rgb); vec3 light_phong = phongLight(normal, lightVector, viewDirection, light_dir_color[i].rgb);
light_effect += light_phong * light_dir_intensity[i]; light_effect += light_phong * light_dir_intensity[i];
} }
#endregion #endregion
@ -299,11 +298,8 @@ void main() {
vec3 lightVector = light_pnt_position[i] - v_worldPosition.xyz; vec3 lightVector = light_pnt_position[i] - v_worldPosition.xyz;
light_distance = length(lightVector); light_distance = length(lightVector);
if(light_distance > light_pnt_radius[i]) { if(light_distance > light_pnt_radius[i])
// gl_FragData[0] = vec4(1., 0., 0., .5);
// return;
continue; continue;
}
lightVector = normalize(lightVector); lightVector = normalize(lightVector);
@ -328,17 +324,15 @@ void main() {
light_map_depth = samplePntShadowMap(shadow_map_index, lightMapUV, side); light_map_depth = samplePntShadowMap(shadow_map_index, lightMapUV, side);
shadow_map_index++; shadow_map_index++;
// gl_FragData[0] = vec4((l_lightDistance - (light_map_depth + bias)) * 10., ((light_map_depth + bias) - l_lightDistance) * 10., 0., 1.); if(l_lightDistance > light_map_depth + bias) {
// return; shadow += 1. / float(light_dir_count + light_pnt_count);
if(l_lightDistance > light_map_depth + bias)
continue; continue;
}
} }
} }
light_attenuation = 1. - pow(light_distance / light_pnt_radius[i], 2.); light_attenuation = 1. - pow(light_distance / light_pnt_radius[i], 2.);
vec3 light_phong = phongLight(normal, lightVector, viewDirection, light_pnt_color[i].rgb * light_attenuation); vec3 light_phong = phongLight(normal, lightVector, viewDirection, light_pnt_color[i].rgb * light_attenuation);
light_effect += light_phong * light_pnt_intensity[i]; light_effect += light_phong * light_pnt_intensity[i];
} }
#endregion #endregion
@ -360,4 +354,5 @@ void main() {
gl_FragData[0] = final_color; gl_FragData[0] = final_color;
gl_FragData[1] = vec4(0.5 + normal * 0.5, final_color.a); gl_FragData[1] = vec4(0.5 + normal * 0.5, final_color.a);
gl_FragData[2] = vec4(vec3(1. - abs(v_cameraDistance)), final_color.a); gl_FragData[2] = vec4(vec3(1. - abs(v_cameraDistance)), final_color.a);
gl_FragData[3] = vec4(shadow, 1.);
} }

View file

@ -66,5 +66,4 @@ void main() {
} }
gl_FragColor = vec4(vec3(1. - occluded / raysTotal * strength), 1.); gl_FragColor = vec4(vec3(1. - occluded / raysTotal * strength), 1.);
//gl_FragColor = vec4(vec3(distance(cPosition, cameraPosition) / 10.), 1.);
} }

View file

@ -0,0 +1,107 @@
#extension GL_OES_standard_derivatives : enable
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
varying vec3 v_vNormal;
varying vec3 v_barycentric;
varying vec4 v_worldPosition;
varying vec3 v_viewPosition;
varying float v_cameraDistance;
#define PI 3.14159265359
#define TAU 6.28318530718
uniform int use_8bit;
#region ---- light ----
uniform vec4 light_ambient;
uniform float shadowBias;
#ifdef _YY_HLSL11_
#define LIGHT_DIR_LIMIT 16
#define LIGHT_PNT_LIMIT 16
#define LIGHT_PNT_LIMIT6 16*6
#else
#define LIGHT_DIR_LIMIT 8
#define LIGHT_PNT_LIMIT 8
#define LIGHT_PNT_LIMIT6 8*6
#endif
uniform int light_dir_count;
uniform vec3 light_dir_direction[LIGHT_DIR_LIMIT];
uniform vec4 light_dir_color[LIGHT_DIR_LIMIT];
uniform float light_dir_intensity[LIGHT_DIR_LIMIT];
uniform mat4 light_dir_view[LIGHT_DIR_LIMIT];
uniform mat4 light_dir_proj[LIGHT_DIR_LIMIT];
uniform int light_dir_shadow_active[LIGHT_DIR_LIMIT];
uniform float light_dir_shadow_bias[LIGHT_DIR_LIMIT];
uniform sampler2D light_dir_shadowmap_0;
uniform sampler2D light_dir_shadowmap_1;
//uniform sampler2D light_dir_shadowmap_2;
//uniform sampler2D light_dir_shadowmap_3;
uniform int light_pnt_count;
uniform vec3 light_pnt_position[LIGHT_PNT_LIMIT];
uniform vec4 light_pnt_color[LIGHT_PNT_LIMIT];
uniform float light_pnt_intensity[LIGHT_PNT_LIMIT];
uniform float light_pnt_radius[LIGHT_PNT_LIMIT];
uniform mat4 light_pnt_view[LIGHT_PNT_LIMIT6];
uniform mat4 light_pnt_proj[LIGHT_PNT_LIMIT];
uniform int light_pnt_shadow_active[LIGHT_PNT_LIMIT];
uniform float light_pnt_shadow_bias[LIGHT_DIR_LIMIT];
uniform sampler2D light_pnt_shadowmap_0;
uniform sampler2D light_pnt_shadowmap_1;
//uniform sampler2D light_pnt_shadowmap_2;
//uniform sampler2D light_pnt_shadowmap_3;
#endregion
#region ---- material ----
vec4 mat_baseColor;
uniform float mat_diffuse;
uniform float mat_specular;
uniform float mat_shine;
uniform int mat_metalic;
uniform float mat_reflective;
uniform vec2 mat_texScale;
uniform vec2 mat_texShift;
uniform int mat_defer_normal;
uniform float mat_normal_strength;
uniform sampler2D mat_normal_map;
uniform int mat_flip;
#endregion
#region ---- rendering ----
uniform vec3 cameraPosition;
uniform int gammaCorrection;
uniform int env_use_mapping;
uniform sampler2D env_map;
uniform vec2 env_map_dimension;
uniform mat4 viewProjMat;
uniform int show_wireframe;
uniform int wireframe_aa;
uniform int wireframe_shade;
uniform int wireframe_only;
uniform float wireframe_width;
uniform vec4 wireframe_color;
#endregion
void main() {
vec2 uv_coord = v_vTexcoord;
if(mat_flip == 1) uv_coord.y = -uv_coord.y;
uv_coord = fract(uv_coord * mat_texScale + mat_texShift);
mat_baseColor = texture2D( gm_BaseTexture, uv_coord );
mat_baseColor *= v_vColour;
gl_FragData[0] = mat_baseColor;
// gl_FragColor = mat_baseColor;
}

View file

@ -0,0 +1,37 @@
attribute vec3 in_Position;
attribute vec3 in_Normal;
attribute vec2 in_TextureCoord;
attribute vec4 in_Colour;
attribute vec3 in_Barycentric;
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
varying vec3 v_vNormal;
varying vec3 v_barycentric;
varying vec4 v_worldPosition;
varying vec3 v_viewPosition;
varying float v_cameraDistance;
uniform float planeNear;
uniform float planeFar;
void main() {
vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
v_worldPosition = gm_Matrices[MATRIX_WORLD] * object_space_pos;
v_viewPosition = gl_Position.xyz;
v_vColour = in_Colour;
v_vTexcoord = in_TextureCoord;
vec3 worldNormal = normalize(gm_Matrices[MATRIX_WORLD] * vec4(in_Normal, 0.)).xyz;
v_vNormal = worldNormal;
float depthRange = abs(planeFar - planeNear);
float ndcDepth = (gl_Position.z - planeNear) / depthRange;
v_cameraDistance = ndcDepth * 0.5 + 0.5;
v_barycentric = in_Barycentric;
}

View file

@ -0,0 +1,13 @@
{
"$GMShader":"",
"%Name":"sh_d3d_unlit",
"name":"sh_d3d_unlit",
"parent":{
"name":"shader",
"path":"folders/nodes/data/3D/shader.yy",
},
"resourceType":"GMShader",
"resourceVersion":"2.0",
"tags":[],
"type":1,
}