Quellcode durchsuchen

lookup materials in through references, and on any object

Nicolas Cannasse vor 4 Jahren
Ursprung
Commit
69ec7da6ad
1 geänderte Dateien mit 7 neuen und 1 gelöschten Zeilen
  1. 7 1
      hrt/prefab/Shader.hx

+ 7 - 1
hrt/prefab/Shader.hx

@@ -83,12 +83,18 @@ class Shader extends Prefab {
 			}
 		}
 		if(ctx.local3d != null) {
+			var parent = parent;
+			var shared = ctx.shared;
+			while( parent != null && parent.parent == null && shared.parent != null ) {
+				parent = shared.parent.prefab.parent; // reference parent
+				shared = shared.parent.shared;
+			}
 			if( Std.is(parent, Material) ) {
 				var material : Material = cast parent;
 				for( m in material.getMaterials(ctx) )
 					m.mainPass.addShader(shader);
 			} else {
-				for( obj in  ctx.shared.getObjects(parent, h3d.scene.Mesh) )
+				for( obj in shared.getObjects(parent, h3d.scene.Object) )
 					for( m in obj.getMaterials(false) )
 						m.mainPass.addShader(shader);
 			}