Pixel-Composer/scripts/d3d_light/d3d_light.gml
2024-10-07 12:50:21 +07:00

44 lines
1.2 KiB
Plaintext

function __3dLight() : __3dObject() constructor {
UI_vertex = [ array_create(33) ];
for( var i = 0; i <= 32; i++ )
UI_vertex[0][i] = new __vertex(0, lengthdir_x(0.5, i / 32 * 360), lengthdir_y(0.5, i / 32 * 360), c_white);
VB_UI = build(noone, UI_vertex);
color = c_white;
intensity = 1;
shadow_mapper = sh_d3d_shadow_depth;
shadow_active = false;
shadow_map = noone;
shadow_map_size = 1024;
shadow_map_scale = 4;
shadow_map_camera = camera_create();
shadow_map_view = array_create(16, 0);
shadow_map_proj = array_create(16, 0);
shadow_bias = 0.001;
static getCenter = function() { return noone; }
static getBBOX = function() { return noone; }
static submit = function(scene = {}, shader = noone) {}
static setShadow = function(active, shadowMapSize, shadowMapScale = shadow_map_scale) {
shadow_active = active;
shadow_map_size = shadowMapSize;
shadow_map_scale = shadowMapScale;
return self;
}
static shadowProjectBegin = function() {}
static shadowProjectEnd = function() {}
static submitShadow = function(scene, objects) {
if(!shadow_active) return;
shadowProjectBegin();
objects.submit(scene, shadow_mapper);
shadowProjectEnd();
}
}