diff options
Diffstat (limited to 'servers/visual/visual_server_scene.cpp')
| -rw-r--r-- | servers/visual/visual_server_scene.cpp | 51 | 
1 files changed, 23 insertions, 28 deletions
diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp index e791f7b443..48ce9e7288 100644 --- a/servers/visual/visual_server_scene.cpp +++ b/servers/visual/visual_server_scene.cpp @@ -101,7 +101,7 @@ void *VisualServerScene::_instance_pair(void *p_self, OctreeElementID, Instance  		SWAP(A, B); //lesser always first  	} -	if (B->base_type == VS::INSTANCE_LIGHT && (1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK) { +	if (B->base_type == VS::INSTANCE_LIGHT && ((1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK)) {  		InstanceLightData *light = static_cast<InstanceLightData *>(B->base_data);  		InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(A->base_data); @@ -119,7 +119,7 @@ void *VisualServerScene::_instance_pair(void *p_self, OctreeElementID, Instance  		geom->lighting_dirty = true;  		return E; //this element should make freeing faster -	} else if (B->base_type == VS::INSTANCE_REFLECTION_PROBE && (1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK) { +	} else if (B->base_type == VS::INSTANCE_REFLECTION_PROBE && ((1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK)) {  		InstanceReflectionProbeData *reflection_probe = static_cast<InstanceReflectionProbeData *>(B->base_data);  		InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(A->base_data); @@ -133,7 +133,7 @@ void *VisualServerScene::_instance_pair(void *p_self, OctreeElementID, Instance  		geom->reflection_dirty = true;  		return E; //this element should make freeing faster -	} else if (B->base_type == VS::INSTANCE_GI_PROBE && (1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK) { +	} else if (B->base_type == VS::INSTANCE_GI_PROBE && ((1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK)) {  		InstanceGIProbeData *gi_probe = static_cast<InstanceGIProbeData *>(B->base_data);  		InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(A->base_data); @@ -169,7 +169,7 @@ void VisualServerScene::_instance_unpair(void *p_self, OctreeElementID, Instance  		SWAP(A, B); //lesser always first  	} -	if (B->base_type == VS::INSTANCE_LIGHT && (1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK) { +	if (B->base_type == VS::INSTANCE_LIGHT && ((1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK)) {  		InstanceLightData *light = static_cast<InstanceLightData *>(B->base_data);  		InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(A->base_data); @@ -184,7 +184,7 @@ void VisualServerScene::_instance_unpair(void *p_self, OctreeElementID, Instance  		}  		geom->lighting_dirty = true; -	} else if (B->base_type == VS::INSTANCE_REFLECTION_PROBE && (1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK) { +	} else if (B->base_type == VS::INSTANCE_REFLECTION_PROBE && ((1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK)) {  		InstanceReflectionProbeData *reflection_probe = static_cast<InstanceReflectionProbeData *>(B->base_data);  		InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(A->base_data); @@ -196,7 +196,7 @@ void VisualServerScene::_instance_unpair(void *p_self, OctreeElementID, Instance  		geom->reflection_dirty = true; -	} else if (B->base_type == VS::INSTANCE_GI_PROBE && (1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK) { +	} else if (B->base_type == VS::INSTANCE_GI_PROBE && ((1 << A->base_type) & VS::INSTANCE_GEOMETRY_MASK)) {  		InstanceGIProbeData *gi_probe = static_cast<InstanceGIProbeData *>(B->base_data);  		InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(A->base_data); @@ -890,50 +890,48 @@ void VisualServerScene::_light_instance_update_shadow(Instance *p_instance, cons  				max_distance = MIN(shadow_max, max_distance);  			}  			max_distance = MAX(max_distance, p_cam_projection.get_z_near() + 0.001); -			float min_distance = MIN(p_cam_projection.get_z_near(),max_distance); +			float min_distance = MIN(p_cam_projection.get_z_near(), max_distance);  			VS::LightDirectionalShadowDepthRangeMode depth_range_mode = VSG::storage->light_directional_get_shadow_depth_range_mode(p_instance->base); -				if (depth_range_mode==VS::LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED) { +			if (depth_range_mode == VS::LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_OPTIMIZED) {  				//optimize min/max  				Vector<Plane> planes = p_cam_projection.get_projection_planes(p_cam_transform);  				int cull_count = p_scenario->octree.cull_convex(planes, instance_shadow_cull_result, MAX_INSTANCE_CULL, VS::INSTANCE_GEOMETRY_MASK); -				Plane base(p_cam_transform.origin,-p_cam_transform.basis.get_axis(2)); +				Plane base(p_cam_transform.origin, -p_cam_transform.basis.get_axis(2));  				//check distance max and min -				bool found_items=false; -				float z_max=-1e20; -				float z_min=1e20; +				bool found_items = false; +				float z_max = -1e20; +				float z_min = 1e20; -				for(int i=0;i<cull_count;i++) { +				for (int i = 0; i < cull_count; i++) {  					Instance *instance = instance_shadow_cull_result[i];  					if (!instance->visible || !((1 << instance->base_type) & VS::INSTANCE_GEOMETRY_MASK) || !static_cast<InstanceGeometryData *>(instance->base_data)->can_cast_shadows) {  						continue;  					} -					float max,min; +					float max, min;  					instance->transformed_aabb.project_range_in_plane(base, min, max); -					if (max>z_max) { -						z_max=max; +					if (max > z_max) { +						z_max = max;  					} -					if (min<z_min) { -						z_min=min; +					if (min < z_min) { +						z_min = min;  					} -					found_items=true; +					found_items = true;  				}  				if (found_items) { -					min_distance=MAX(min_distance,z_min); -					max_distance=MIN(max_distance,z_max); +					min_distance = MAX(min_distance, z_min); +					max_distance = MIN(max_distance, z_max);  				} -  			} -  			float range = max_distance - min_distance;  			int splits = 0; @@ -1062,7 +1060,7 @@ void VisualServerScene::_light_instance_update_shadow(Instance *p_instance, cons  					z_max_cam = z_vec.dot(center) + radius;  					z_min_cam = z_vec.dot(center) - radius; -					if (depth_range_mode==VS::LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE) { +					if (depth_range_mode == VS::LIGHT_DIRECTIONAL_SHADOW_DEPTH_RANGE_STABLE) {  						//this trick here is what stabilizes the shadow (make potential jaggies to not move)  						//at the cost of some wasted resolution. Still the quality increase is very well worth it @@ -1073,8 +1071,6 @@ void VisualServerScene::_light_instance_update_shadow(Instance *p_instance, cons  						y_max_cam = Math::stepify(y_max_cam, unit);  						y_min_cam = Math::stepify(y_min_cam, unit);  					} - -  				}  				//now that we now all ranges, we can proceed to make the light frustum planes, for culling octree @@ -1118,7 +1114,6 @@ void VisualServerScene::_light_instance_update_shadow(Instance *p_instance, cons  				{ -  					CameraMatrix ortho_camera;  					real_t half_x = (x_max_cam - x_min_cam) * 0.5;  					real_t half_y = (y_max_cam - y_min_cam) * 0.5; @@ -1425,7 +1420,7 @@ void VisualServerScene::_render_scene(const Transform p_cam_transform, const Cam  				gi_probe_update_list.add(&gi_probe->update_element);  			} -		} else if ((1 << ins->base_type) & VS::INSTANCE_GEOMETRY_MASK && ins->visible && ins->cast_shadows != VS::SHADOW_CASTING_SETTING_SHADOWS_ONLY) { +		} else if (((1 << ins->base_type) & VS::INSTANCE_GEOMETRY_MASK) && ins->visible && ins->cast_shadows != VS::SHADOW_CASTING_SETTING_SHADOWS_ONLY) {  			keep = true;  |