Browse Source

Merge pull request #22461 from dlasalle/#10480

Hide shading options in SpatialMaterial when 'FLAG_UNSHADED' is set.
Rémi Verschelde 6 years ago
parent
commit
573956915e
1 changed files with 43 additions and 1 deletions
  1. 43 1
      scene/resources/material.cpp

+ 43 - 1
scene/resources/material.cpp

@@ -1315,7 +1315,7 @@ void SpatialMaterial::set_flag(Flags p_flag, bool p_enabled) {
 		return;
 
 	flags[p_flag] = p_enabled;
-	if (p_flag == FLAG_USE_ALPHA_SCISSOR) {
+	if (p_flag == FLAG_USE_ALPHA_SCISSOR || p_flag == FLAG_UNSHADED) {
 		_change_notify();
 	}
 	_queue_shader_change();
@@ -1421,6 +1421,48 @@ void SpatialMaterial::_validate_property(PropertyInfo &property) const {
 	if ((property.name == "depth_min_layers" || property.name == "depth_max_layers") && !deep_parallax) {
 		property.usage = 0;
 	}
+
+	if (flags[FLAG_UNSHADED]) {
+		if (property.name.begins_with("anisotropy")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("ao")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("clearcoat")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("emission")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("metallic")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("normal")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("rim")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("roughness")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("subsurf_scatter")) {
+			property.usage = 0;
+		}
+
+		if (property.name.begins_with("transmission")) {
+			property.usage = 0;
+		}
+	}
 }
 
 void SpatialMaterial::set_line_width(float p_line_width) {