diff options
author | quou <quou@disroot.org> | 2024-12-29 14:49:07 +1100 |
---|---|---|
committer | quou <quou@disroot.org> | 2024-12-29 14:49:07 +1100 |
commit | 96c459ca2f52cf2c5bec269d0f30e01d21bc916b (patch) | |
tree | 7e98cb0b36f77eabb55b1b96f66225eb13ca351d /model.cpp | |
parent | 09d6ea353e1ed9502967c1406061613272eafb63 (diff) |
add depth prepass
Diffstat (limited to 'model.cpp')
-rw-r--r-- | model.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -165,6 +165,7 @@ void Model::render( cbuffers[i].view_projection = view_projection; cbuffers[i].model = transform * meshes[i].world; } + bool depth_only = !pass.colour_count; dev->unmap_buffer(mvp); for (i = 0; i < c; i++) { Mesh& mesh = meshes[i]; @@ -187,7 +188,10 @@ void Model::render( draw.first_vertex = mesh.offset; draw.vertex_offset = mesh.vbo_offset; pb.begin(); - pb.depth(true, true, Depth_Mode::less); + if (depth_only) + pb.depth(true, true, Depth_Mode::less); + else + pb.depth(true, false, Depth_Mode::equal); pb.shader(mesh.shader); pb.cbuffer( mesh.mvp_binding, |