Просмотр исходного кода

USDComposer: Added primvars:displayOpacity support.

Mr.doob 1 месяц назад
Родитель
Сommit
27f2f4eb5f
1 измененных файлов с 29 добавлено и 0 удалено
  1. 29 0
      examples/jsm/loaders/usd/USDComposer.js

+ 29 - 0
examples/jsm/loaders/usd/USDComposer.js

@@ -856,6 +856,35 @@ class USDComposer {
 
 		}
 
+		// Apply displayOpacity for transparency
+		const displayOpacity = attrs[ 'primvars:displayOpacity' ];
+		if ( displayOpacity && displayOpacity.length >= 1 ) {
+
+			const opacity = displayOpacity[ 0 ];
+
+			const applyDisplayOpacity = ( mat ) => {
+
+				if ( opacity < 1 ) {
+
+					mat.opacity = opacity;
+					mat.transparent = true;
+
+				}
+
+			};
+
+			if ( Array.isArray( material ) ) {
+
+				material.forEach( applyDisplayOpacity );
+
+			} else {
+
+				applyDisplayOpacity( material );
+
+			}
+
+		}
+
 		let mesh;
 
 		if ( hasSkinning ) {

粤ICP备19079148号