Selaa lähdekoodia

Support GLTF2 alpha scissors.

K. S. Ernest (iFire) Lee 5 vuotta sitten
vanhempi
commit
f028b8b0e4
1 muutettua tiedostoa jossa 8 lisäystä ja 1 poistoa
  1. 8 1
      editor/import/editor_scene_importer_gltf.cpp

+ 8 - 1
editor/import/editor_scene_importer_gltf.cpp

@@ -1479,9 +1479,16 @@ Error EditorSceneImporterGLTF::_parse_materials(GLTFState &state) {
 
 		if (d.has("alphaMode")) {
 			const String &am = d["alphaMode"];
-			if (am != "OPAQUE") {
+			if (am == "BLEND") {
 				material->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, true);
 				material->set_depth_draw_mode(SpatialMaterial::DEPTH_DRAW_ALPHA_OPAQUE_PREPASS);
+			} else if (am == "MASK") {
+				material->set_flag(SpatialMaterial::FLAG_USE_ALPHA_SCISSOR, true);
+				if (d.has("alphaCutoff")) {
+					material->set_alpha_scissor_threshold(d["alphaCutoff"]);
+				} else {
+					material->set_alpha_scissor_threshold(0.5f);
+				}
 			}
 		}