Converted rendering engine to reverse-z

This commit is contained in:
TriVoxel
2025-04-29 14:33:13 -06:00
parent 0cdb90bdb8
commit 5b5de92890
16 changed files with 151 additions and 124 deletions

View File

@ -234,7 +234,7 @@ class Inc {
var shadowmap = getShadowMapAtlas(atlas, false);
path.setTargetStream(shadowmap);
path.clearTarget(null, 1.0);
path.clearTarget(null, 0.0);
for (tile in atlas.activeTiles) {
if (tile.light == null || !tile.light.visible || tile.light.culledLight
@ -490,7 +490,7 @@ class Inc {
for (i in 0...faces) {
if (faces > 1) path.currentFace = i;
path.setTarget(shadowmap);
path.clearTarget(null, 1.0);
path.clearTarget(null, 0.0);
if (l.data.raw.cast_shadow) {
path.drawMeshes("shadowmap");
}
@ -1091,8 +1091,8 @@ class Inc {
var near = camera.data.raw.near_plane;
var far = camera.data.raw.far_plane;
var v = new iron.math.Vec2();
v.x = far / (far - near);
v.y = (-far * near) / (far - near);
v.x = 0.0;
v.y = near;
kha.compute.Compute.setFloat2(voxel_cc3, v.x, v.y);
@ -1166,9 +1166,8 @@ class Inc {
var near = camera.data.raw.near_plane;
var far = camera.data.raw.far_plane;
var v = new iron.math.Vec2();
v.x = far / (far - near);
v.y = (-far * near) / (far - near);
v.x = 0.0;
v.y = near;
kha.compute.Compute.setFloat2(voxel_cc3, v.x, v.y);
@ -1244,8 +1243,8 @@ class Inc {
var near = camera.data.raw.near_plane;
var far = camera.data.raw.far_plane;
var v = new iron.math.Vec2();
v.x = far / (far - near);
v.y = (-far * near) / (far - near);
v.x = 0.0;
v.y = near;
kha.compute.Compute.setFloat2(voxel_cc4, v.x, v.y);

View File

@ -159,7 +159,7 @@ class RenderPathDeferred {
#if rp_depth_texture
{
var t = new RenderTargetRaw();
t.name = "depthtex";
t.name = "gbufferD";
t.width = 0;
t.height = 0;
t.displayp = Inc.getDisplayp();
@ -451,11 +451,11 @@ class RenderPathDeferred {
path.setTarget("gbuffer0"); // Only clear gbuffer0
#if (rp_background == "Clear")
{
path.clearTarget(-1, 1.0);
path.clearTarget(null, 0.0);
}
#else
{
path.clearTarget(null, 1.0);
path.clearTarget(null, 0.0);
}
#end
@ -1017,7 +1017,7 @@ class RenderPathDeferred {
#if rp_overlays
{
path.setTarget(target);
path.clearTarget(null, 1.0);
path.clearTarget(null, 0.0);
path.drawMeshes("overlay");
}
#end
@ -1086,6 +1086,8 @@ class RenderPathDeferred {
path.setTarget("depthtex");
path.bindTarget("_main", "tex");
path.drawShader("shader_datas/copy_pass/copy_pass");
path.drawShader("shader_datas/deferred_light/deferred_light.frag.glsl");
path.drawShader("shader_datas/ssr_pass/ssr_pass.frag.glsl");
#if (!kha_opengl)
path.setDepthFrom("gbuffer0", "tex"); // Re-bind depth

View File

@ -428,11 +428,11 @@ class RenderPathForward {
#if (rp_background == "Clear")
{
path.clearTarget(-1, 1.0);
path.clearTarget(null, 0.0);
}
#else
{
path.clearTarget(null, 1.0);
path.clearTarget(null, 0.0);
}
#end
@ -703,7 +703,7 @@ class RenderPathForward {
#if rp_overlays
{
path.clearTarget(null, 1.0);
path.clearTarget(null, 0.0);
path.drawMeshes("overlay");
}
#end