浏览代码

fixed terrain decals rendering writing on depth

Nicolas Cannasse 5 年之前
父节点
当前提交
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);