2
0
Эх сурвалжийг харах

h3d.mat.Pass can be culled

clementlandrin 2 жил өмнө
parent
commit
0be273c580

+ 2 - 1
h3d/mat/Pass.hx

@@ -18,6 +18,7 @@ class Pass {
 	var selfShadersCache : hxsl.ShaderList;
 	var selfShadersCache : hxsl.ShaderList;
 	var shaders : hxsl.ShaderList;
 	var shaders : hxsl.ShaderList;
 	var nextPass : Pass;
 	var nextPass : Pass;
+	var culled : Bool = false;
 
 
 	@:bits(flags) public var enableLights : Bool;
 	@:bits(flags) public var enableLights : Bool;
 	/**
 	/**
@@ -312,7 +313,7 @@ class Pass {
 		selfShadersCache = shaders;
 		selfShadersCache = shaders;
 		if ( prev != null )
 		if ( prev != null )
 			prev.next = selfShadersCache;
 			prev.next = selfShadersCache;
-		else 
+		else
 			selfShaders = shaders;
 			selfShaders = shaders;
 		return selfShaders;
 		return selfShaders;
 	}
 	}

+ 2 - 1
h3d/scene/RenderContext.hx

@@ -45,7 +45,8 @@ class RenderContext extends h3d.impl.RenderContext {
 	public inline function emit( mat : h3d.mat.Material, obj, index = 0 ) {
 	public inline function emit( mat : h3d.mat.Material, obj, index = 0 ) {
 		var p = mat.mainPass;
 		var p = mat.mainPass;
 		while( p != null ) {
 		while( p != null ) {
-			emitPass(p, obj).index = index;
+			if ( !p.culled )
+				emitPass(p, obj).index = index;
 			p = p.nextPass;
 			p = p.nextPass;
 		}
 		}
 	}
 	}