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

Adding functions for Renderer override.

clementlandrin 2 лет назад
Родитель
Сommit
d2febd2ea3
1 измененных файлов с 8 добавлено и 2 удалено
  1. 8 2
      h3d/scene/pbr/Renderer.hx

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

@@ -74,6 +74,7 @@ class Renderer extends h3d.scene.Renderer {
 	var enableFXAA = true;
 	var currentStep : h3d.impl.RendererFX.Step;
 	var performance = new h3d.pass.ScreenFx(new h3d.shader.pbr.PerformanceViewer());
+	var indirectEnv = true;
 
 	var textures = {
 		albedo : (null:h3d.mat.Texture),
@@ -275,11 +276,13 @@ class Renderer extends h3d.scene.Renderer {
 		mark("DirectLighting");
 		// Direct Lighting - FullScreen
 		pbrProps.isScreen = true;
+		beforeFullScreenLights();
 		if( ls != null ) {
 			var count = ctx.engine.drawCalls;
 			ls.drawScreenLights(this, lpass, shadows);
 			ctx.lightSystem.drawPasses += ctx.engine.drawCalls - count;
 		}
+		afterFullScreenLights();
 		// Direct Lighting - With Primitive
 		pbrProps.isScreen = false;
 		draw(pbrLightPass.name);
@@ -291,7 +294,7 @@ class Renderer extends h3d.scene.Renderer {
 		}
 
 		mark("Indirect Lighting");
-		if( !renderLightProbes() && env != null && env.power > 0.0 ) {
+		if( !renderLightProbes() && indirectEnv  && env != null && env.power > 0.0 ) {
 			pbrProps.isScreen = true;
 			pbrIndirect.drawIndirectDiffuse = true;
 			pbrIndirect.drawIndirectSpecular = true;
@@ -301,6 +304,9 @@ class Renderer extends h3d.scene.Renderer {
 		end();
 	}
 
+	function beforeFullScreenLights() {}
+	function afterFullScreenLights() {}
+
 	function renderLightProbes() {
 		var probePass = get("lightProbe");
 		if( probePass.isEmpty() )
@@ -316,7 +322,7 @@ class Renderer extends h3d.scene.Renderer {
 		clear(0);
 
 		// Default Env & SkyBox
-		if( env != null && env.power > 0.0  ) {
+		if( indirectEnv && env != null && env.power > 0.0 ) {
 			pbrProps.isScreen = true;
 			pbrIndirect.drawIndirectDiffuse = true;
 			pbrIndirect.drawIndirectSpecular = true;