From 53c9b6c17b4c22e56cd919f728d5ea44cf4e3c21 Mon Sep 17 00:00:00 2001 From: Lubos Lenco Date: Tue, 26 May 2020 19:23:44 +0200 Subject: [PATCH] Set depth attachment --- Assets/common/shader_datas.arm | Bin 12886 -> 13220 bytes Assets/creator/Scene.arm | Bin 133120 -> 133218 bytes Assets/creator/world_pass.arm | Bin 1510 -> 1544 bytes Assets/painter/Scene.arm | Bin 133210 -> 133310 bytes Assets/painter/metal/clear_pass.arm | Bin 3874 -> 4072 bytes Assets/painter/world_pass.arm | Bin 714 -> 748 bytes .../Sources/arm/node/MaterialShader.hx | 3 ++- Sources/arm/render/RenderPathDeferred.hx | 13 ++++++----- Sources/arm/render/RenderPathPreview.hx | 21 +++++++++--------- 9 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Assets/common/shader_datas.arm b/Assets/common/shader_datas.arm index 8c2f40eb6e7e1220097f4ffa0f0a41c910615731..aa9849260fc6d788936a90732b8c0de44b74e96b 100644 GIT binary patch delta 73 zcmcbXvLt;07bEj#My?vB$?t^txOo^D7?Se~DqW0?HcN8}Gb-K|0E(of7L;VfCzg~X aCTHZP=9S!L2MW5l284J3mDTXvQUw4R{>!2}VUT)-Q>nNxH+NFos`22{w$ YG}&Dy7$~O8)citj`wKb7s+Wum0103jasU7T diff --git a/Assets/creator/world_pass.arm b/Assets/creator/world_pass.arm index 3e08b8c43cc907590d69380222e0f03b65a2106a..8d36ff6cda1cbcd73dc913c573d26b1bad244fe0 100644 GIT binary patch delta 52 zcmaFH-N7@#n~{5>tjxxY8djCt0t^fcDX9e|8S#lFC5g!yxv6<2x7mS$F0KI~9>zvM F767+U4>tz!P?8a!SW=RhoROQFS8|&jDCpuE z5aMBMw7Fi~hG{dOPzDnt_vD9?g_~c9OlKlWTOv>g(4unURO>P|x5{mAm1Dg6l92%b Dw4pZ+ delta 79 zcmdltk>l0`jt!B#j9ilwxWzUX@Fp>BJ}7R(v{_#$g9#!yxqvr%GpFcukVGO>45*Ng XX|lUaFi=dFsriN6_7`%DS6>1E=M5SI diff --git a/Assets/painter/metal/clear_pass.arm b/Assets/painter/metal/clear_pass.arm index 766d95f6f1a9fe2f861a0b655f99b778796ea95d..c85dfaab2686cdfbbd365949efef1fe376eadc40 100644 GIT binary patch delta 297 zcmZ1^_d zV%C{_f?IHM0_*L`35@lV>zKKS(YLvac_E`BK?^o(v+iSIUM7wcwjuBpU0 Xi+}PSHi(A9+;d6O(9BDW1_lNI!^K`; delta 95 zcmaDMzesL^HzU_ZpP7u4W!d>B-(;4b?875C`7Ouo$qLM!O!v7qpJ86exVevY9}6Sj lOV diff --git a/Assets/painter/world_pass.arm b/Assets/painter/world_pass.arm index 724e0712aab7a6a0ceee932f01ea8e91a1d90b64..70d45fd3f54846a88de476791d8c2e26b5b3d8cf 100644 GIT binary patch delta 52 zcmX@b`i6CaHzW5%S(%L)2}~-t1sE6@Qc?>_GU5|UN)nSZa#Qn4ZnFagU0ee~JdBNi FEC9Xf4^;pF delta 18 ZcmaFEdWv;|HzU_XS(%L)2~1233;;UU1nvL; diff --git a/Libraries/shaderlib/Sources/arm/node/MaterialShader.hx b/Libraries/shaderlib/Sources/arm/node/MaterialShader.hx index 8e536f65..04308162 100644 --- a/Libraries/shaderlib/Sources/arm/node/MaterialShader.hx +++ b/Libraries/shaderlib/Sources/arm/node/MaterialShader.hx @@ -43,7 +43,8 @@ class MaterialShaderContext { fragment_shader: '', vertex_shader: '', vertex_elements: Reflect.hasField(props, 'vertex_elements') ? props.vertex_elements : [ {name: "pos", data: 'short4norm'}, {name: "nor", data: 'short2norm'}], - color_attachments: props.color_attachments + color_attachments: props.color_attachments, + depth_attachment: props.depth_attachment }; if (props.color_writes_red != null) diff --git a/Sources/arm/render/RenderPathDeferred.hx b/Sources/arm/render/RenderPathDeferred.hx index d408928c..e5a26ec5 100644 --- a/Sources/arm/render/RenderPathDeferred.hx +++ b/Sources/arm/render/RenderPathDeferred.hx @@ -75,7 +75,6 @@ class RenderPathDeferred { t.height = 0; t.format = "RGBA64"; t.scale = Inc.getSuperSampling(); - t.depth_buffer = "main"; path.createRenderTarget(t); } { @@ -151,6 +150,7 @@ class RenderPathDeferred { path.loadShader("shader_datas/compositor_pass/compositor_pass"); path.loadShader("shader_datas/copy_pass/copy_pass"); path.loadShader("shader_datas/copy_pass/copyR8_pass"); + //path.loadShader("shader_datas/copy_pass/copyD32_pass"); path.loadShader("shader_datas/smaa_edge_detect/smaa_edge_detect"); path.loadShader("shader_datas/smaa_blend_weight/smaa_blend_weight"); path.loadShader("shader_datas/smaa_neighborhood_blend/smaa_neighborhood_blend"); @@ -333,9 +333,6 @@ class RenderPathDeferred { // --- // Deferred light // --- - #if (!kha_opengl) - path.setDepthFrom("tex", "gbuffer1"); // Unbind depth so we can read it - #end path.setTarget("tex"); path.bindTarget("_main", "gbufferD"); path.bindTarget("gbuffer0", "gbuffer0"); @@ -386,12 +383,16 @@ class RenderPathDeferred { #end #if (!kha_opengl) - path.setDepthFrom("tex", "gbuffer0"); // Re-bind depth + path.setDepthFrom("tex", "gbuffer0"); // Bind depth for world pass #end - path.setTarget("tex"); // Re-binds depth + path.setTarget("tex"); path.drawSkydome("world_pass/world_pass/world_pass"); + #if (!kha_opengl) + path.setDepthFrom("tex", "gbuffer1"); // Unbind depth + #end + if (Config.raw.rp_bloom != false) { if (path.renderTargets.get("bloomtex") == null) { diff --git a/Sources/arm/render/RenderPathPreview.hx b/Sources/arm/render/RenderPathPreview.hx index 777329c5..44ede059 100644 --- a/Sources/arm/render/RenderPathPreview.hx +++ b/Sources/arm/render/RenderPathPreview.hx @@ -39,7 +39,6 @@ class RenderPathPreview { t.height = RenderUtil.matPreviewSize; t.format = "RGBA64"; t.scale = Inc.getSuperSampling(); - t.depth_buffer = "mmain"; path.createRenderTarget(t); } @@ -100,9 +99,6 @@ class RenderPathPreview { // --- // Deferred light // --- - #if (!kha_opengl && !kha_direct3d12) - path.setDepthFrom("mtex", "mgbuffer1"); // Unbind depth so we can read it - #end path.setTarget("mtex"); path.bindTarget("_mmain", "gbufferD"); path.bindTarget("mgbuffer0", "gbuffer0"); @@ -113,7 +109,7 @@ class RenderPathPreview { path.drawShader("deferred_light/deferred_light/deferred_light"); #if (!kha_opengl && !kha_direct3d12) - path.setDepthFrom("mtex", "mgbuffer0"); // Re-bind depth + path.setDepthFrom("mtex", "mgbuffer0"); // Bind depth for world pass #end path.setTarget("mtex"); // Re-binds depth @@ -121,6 +117,10 @@ class RenderPathPreview { path.drawSkydome("world_pass/world_pass/world_pass"); #end + #if (!kha_opengl && !kha_direct3d12) + path.setDepthFrom("mtex", "mgbuffer1"); // Unbind depth + #end + var framebuffer = "texpreview"; var selectedMat = UIHeader.inst.worktab.position == SpaceRender ? Context.materialScene : Context.material; RenderPath.active.renderTargets.get("texpreview").image = selectedMat.image; @@ -152,9 +152,6 @@ class RenderPathPreview { // --- // Deferred light // --- - #if (!kha_opengl && !kha_direct3d12) - path.setDepthFrom("tex", "gbuffer1"); // Unbind depth so we can read it - #end path.setTarget("tex"); path.bindTarget("_main", "gbufferD"); path.bindTarget("gbuffer0", "gbuffer0"); @@ -165,12 +162,16 @@ class RenderPathPreview { path.drawShader("deferred_light/deferred_light/deferred_light"); #if (!kha_opengl && !kha_direct3d12) - path.setDepthFrom("tex", "gbuffer0"); // Re-bind depth + path.setDepthFrom("tex", "gbuffer0"); // Bind depth for world pass #end - path.setTarget("tex"); // Re-binds depth + path.setTarget("tex"); path.drawSkydome("world_pass/world_pass/world_pass"); + #if (!kha_opengl && !kha_direct3d12) + path.setDepthFrom("tex", "gbuffer1"); // Unbind depth + #end + var framebuffer = "texpreview"; RenderPath.active.renderTargets.get("texpreview").image = Context.decalImage;