diff options
| author | Juan Linietsky | 2017-02-16 08:55:11 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2017-02-16 08:55:43 -0300 |
| commit | 903a3aa5f0e128abb1fb752c10b343b34af8f799 (patch) | |
| tree | b1dddad8ee9a0a984559fe1260e23c0b908e0cd5 /servers/visual/visual_server_scene.cpp | |
| parent | 3fadcac7c42f97fded2af88fe2cf72ff7b0f4d71 (diff) | |
| download | godot-903a3aa5f0e128abb1fb752c10b343b34af8f799.tar.gz godot-903a3aa5f0e128abb1fb752c10b343b34af8f799.tar.zst godot-903a3aa5f0e128abb1fb752c10b343b34af8f799.zip | |
a ton of bug fixes to the renderer
Diffstat (limited to 'servers/visual/visual_server_scene.cpp')
| -rw-r--r-- | servers/visual/visual_server_scene.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp index c54f3dbca..6f7b2e3ae 100644 --- a/servers/visual/visual_server_scene.cpp +++ b/servers/visual/visual_server_scene.cpp @@ -1556,9 +1556,11 @@ void VisualServerScene::_light_instance_update_shadow(Instance *p_instance,const cull_count--; SWAP(instance_shadow_cull_result[j],instance_shadow_cull_result[cull_count]); j--; + continue; } + instance->transformed_aabb.project_range_in_plane(Plane(z_vec,0),min,max); if (max>z_max) z_max=max; @@ -3475,6 +3477,7 @@ void VisualServerScene::_update_dirty_instance(Instance *p_instance) { } else if (p_instance->base_type==VS::INSTANCE_MULTIMESH) { RID mesh = VSG::storage->multimesh_get_mesh(p_instance->base); if (mesh.is_valid()) { + bool cast_shadows=false; int sc = VSG::storage->mesh_get_surface_count(mesh); @@ -3491,6 +3494,7 @@ void VisualServerScene::_update_dirty_instance(Instance *p_instance) { cast_shadows=true; break; } + } if (!cast_shadows) { @@ -3538,6 +3542,8 @@ void VisualServerScene::_update_dirty_instance(Instance *p_instance) { void VisualServerScene::update_dirty_instances() { + VSG::storage->update_dirty_resources(); + while(_instance_update_list.first()) { _update_dirty_instance( _instance_update_list.first()->self() ); |
