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

fixed terrain decals rendering writing on depth

Nicolas Cannasse 5 лет назад
Родитель
Сommit
5a091e25c5
1 измененных файлов с 10 добавлено и 3 удалено
  1. 10 3
      h3d/scene/pbr/Renderer.hx

+ 10 - 3
h3d/scene/pbr/Renderer.hx

@@ -405,6 +405,14 @@ class Renderer extends h3d.scene.Renderer {
 		tonemap.shader.hdrTexture = textures.hdr;
 	}
 
+	function drawPbrDecals( passName : String ) {
+		var passes = get(passName);
+		if( passes.isEmpty() ) return;
+		ctx.engine.pushTargets([textures.albedo,textures.normal,textures.pbr]);
+		renderPass(decalsOutput, passes);
+		ctx.engine.popTarget();
+	}
+
 	override function render() {
 		beginPbr();
 
@@ -414,14 +422,13 @@ class Renderer extends h3d.scene.Renderer {
 		begin(MainDraw);
 		renderPass(output, get("default"), frontToBack);
 		renderPass(output, get("terrain"));
-		renderPass(output, get("terrainDecal"));
+		drawPbrDecals("terrainDecal");
 		renderPass(output, get("alpha"), backToFront);
 		renderPass(output, get("additive"));
 		end();
 
-		setTargets([textures.albedo,textures.normal,textures.pbr]);
 		begin(Decals);
-		renderPass(decalsOutput, get("decal"));
+		drawPbrDecals("decal");
 		end();
 
 		setTarget(textures.hdr);