Преглед изворни кода

Remove culling distance in renderer, there are lods with culling distance now.

clementlandrin пре 3 месеци
родитељ
комит
29fb219e43
1 измењених фајлова са 2 додато и 32 уклоњено
  1. 2 32
      h3d/scene/pbr/Renderer.hx

+ 2 - 32
h3d/scene/pbr/Renderer.hx

@@ -93,7 +93,6 @@ class Renderer extends h3d.scene.Renderer {
 		velocity : (null:h3d.mat.Texture),
 	};
 
-	public var cullingDistanceFactor : Float = 0.0;
 	public var skyMode : SkyMode = Hide;
 	public var toneMode : TonemapMap = Reinhard;
 	public var displayMode : DisplayMode = Pbr;
@@ -157,9 +156,6 @@ class Renderer extends h3d.scene.Renderer {
 		allPasses.push(colorDepthVelocityOutput);
 		allPasses.push(new h3d.pass.Shadows(null));
 		refreshProps();
-		#if editor
-		cullingDistanceFactor = hide.Ide.inst.ideConfig.cullingDistanceFactor;
-		#end
 	}
 
 	override function addShader(s:hxsl.Shader) {
@@ -219,41 +215,15 @@ class Renderer extends h3d.scene.Renderer {
 		});
 	}
 
-	inline function cullPassesWithDistance( passes : h3d.pass.PassList, f : h3d.col.Collider -> Bool ) {
-		var prevCollider = null;
-		var prevResult = true;
-		passes.filter(function(p) {
-			var col = p.obj.cullingCollider;
-			if( col == null )
-				return true;
-			if( col != prevCollider ) {
-				prevCollider = col;
-				prevResult = f(col);
-				if ( prevResult ) {
-					var dim = col.dimension() * cullingDistanceFactor;
-					dim = dim * dim;
-					prevResult = dim > ctx.camera.pos.distanceSq(p.obj.getAbsPos().getPosition());
-				}
-			}
-			return prevResult;
-		});
-	}
-
 	override function draw( name : String ) {
 		var passes = get(name);
-		if ( cullingDistanceFactor > 0.0 )
-			cullPassesWithDistance(passes, function(col) return col.inFrustum(ctx.camera.frustum));
-		else
-			cullPasses(passes, function(col) return col.inFrustum(ctx.camera.frustum));
+		cullPasses(passes, function(col) return col.inFrustum(ctx.camera.frustum));
 		defaultPass.draw(passes);
 		passes.reset();
 	}
 
 	function renderPass(p:h3d.pass.Output, passes, ?sort) {
-		if ( cullingDistanceFactor > 0.0 )
-			cullPassesWithDistance(passes, function(col) return col.inFrustum(ctx.camera.frustum));
-		else
-			cullPasses(passes, function(col) return col.inFrustum(ctx.camera.frustum));
+		cullPasses(passes, function(col) return col.inFrustum(ctx.camera.frustum));
 		p.draw(passes, sort);
 		passes.reset();
 	}