mirror of
https://github.com/godotengine/godot.git
synced 2025-11-01 22:21:18 +00:00
Portal occlusion culling
Adds support for occlusion culling via rooms and portals.
This commit is contained in:
parent
b0b2b7df31
commit
eb6f98ec55
78 changed files with 10865 additions and 45 deletions
|
|
@ -3019,6 +3019,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
|
|||
VS::get_singleton()->instance_set_visible(move_gizmo_instance[i], false);
|
||||
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
|
||||
VS::get_singleton()->instance_set_layer_mask(move_gizmo_instance[i], layer);
|
||||
VS::get_singleton()->instance_set_portal_mode(move_gizmo_instance[i], VisualServer::INSTANCE_PORTAL_MODE_GLOBAL);
|
||||
|
||||
move_plane_gizmo_instance[i] = VS::get_singleton()->instance_create();
|
||||
VS::get_singleton()->instance_set_base(move_plane_gizmo_instance[i], spatial_editor->get_move_plane_gizmo(i)->get_rid());
|
||||
|
|
@ -3026,6 +3027,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
|
|||
VS::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], false);
|
||||
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_plane_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
|
||||
VS::get_singleton()->instance_set_layer_mask(move_plane_gizmo_instance[i], layer);
|
||||
VS::get_singleton()->instance_set_portal_mode(move_plane_gizmo_instance[i], VisualServer::INSTANCE_PORTAL_MODE_GLOBAL);
|
||||
|
||||
rotate_gizmo_instance[i] = VS::get_singleton()->instance_create();
|
||||
VS::get_singleton()->instance_set_base(rotate_gizmo_instance[i], spatial_editor->get_rotate_gizmo(i)->get_rid());
|
||||
|
|
@ -3033,6 +3035,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
|
|||
VS::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], false);
|
||||
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
|
||||
VS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[i], layer);
|
||||
VS::get_singleton()->instance_set_portal_mode(rotate_gizmo_instance[i], VisualServer::INSTANCE_PORTAL_MODE_GLOBAL);
|
||||
|
||||
scale_gizmo_instance[i] = VS::get_singleton()->instance_create();
|
||||
VS::get_singleton()->instance_set_base(scale_gizmo_instance[i], spatial_editor->get_scale_gizmo(i)->get_rid());
|
||||
|
|
@ -3040,6 +3043,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
|
|||
VS::get_singleton()->instance_set_visible(scale_gizmo_instance[i], false);
|
||||
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
|
||||
VS::get_singleton()->instance_set_layer_mask(scale_gizmo_instance[i], layer);
|
||||
VS::get_singleton()->instance_set_portal_mode(scale_gizmo_instance[i], VisualServer::INSTANCE_PORTAL_MODE_GLOBAL);
|
||||
|
||||
scale_plane_gizmo_instance[i] = VS::get_singleton()->instance_create();
|
||||
VS::get_singleton()->instance_set_base(scale_plane_gizmo_instance[i], spatial_editor->get_scale_plane_gizmo(i)->get_rid());
|
||||
|
|
@ -3047,6 +3051,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
|
|||
VS::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], false);
|
||||
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_plane_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
|
||||
VS::get_singleton()->instance_set_layer_mask(scale_plane_gizmo_instance[i], layer);
|
||||
VS::get_singleton()->instance_set_portal_mode(scale_plane_gizmo_instance[i], VisualServer::INSTANCE_PORTAL_MODE_GLOBAL);
|
||||
}
|
||||
|
||||
// Rotation white outline
|
||||
|
|
@ -6001,6 +6006,15 @@ void SpatialEditor::set_can_preview(Camera *p_preview) {
|
|||
}
|
||||
}
|
||||
|
||||
void SpatialEditor::set_message(String p_message, float p_time) {
|
||||
for (uint32_t i = 0; i < VIEWPORTS_COUNT; i++) {
|
||||
SpatialEditorViewport *viewport = get_editor_viewport(i);
|
||||
if (viewport->is_visible()) {
|
||||
viewport->set_message(p_message, p_time);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VSplitContainer *SpatialEditor::get_shader_split() {
|
||||
return shader_split;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue