Toast Engine
Toggle main menu visibility
Loading...
Searching...
No Matches
depth_convention.hpp
Go to the documentation of this file.
1
4
5
#pragma once
6
7
#include <glm/ext/matrix_clip_space.hpp>
8
#include <glm/glm.hpp>
9
#include <vulkan/vulkan.hpp>
10
11
namespace
renderer::depth {
12
14
inline
constexpr
bool
k_reversed_z
=
true
;
15
16
inline
constexpr
float
k_near =
k_reversed_z
? 1.0f : 0.0f;
17
inline
constexpr
float
k_far =
k_reversed_z
? 0.0f : 1.0f;
18
19
inline
constexpr
float
k_clear = k_far;
20
21
inline
constexpr
vk::CompareOp k_closer =
k_reversed_z
? vk::CompareOp::eGreater : vk::CompareOp::eLess;
23
inline
constexpr
vk::CompareOp
k_closer_or_equal
=
k_reversed_z
? vk::CompareOp::eGreaterOrEqual : vk::CompareOp::eLessOrEqual;
24
26
[[nodiscard]]
27
inline
auto
perspective
(
float
fovy,
float
aspect,
float
near_plane,
float
far_plane) -> glm::mat4 {
28
// Swapping the planes maps near to 1 and far to 0
29
return
k_reversed_z
? glm::perspectiveRH_ZO(fovy, aspect, far_plane, near_plane)
30
: glm::perspectiveRH_ZO(fovy, aspect, near_plane, far_plane);
31
}
32
33
}
renderer::depth::k_closer_or_equal
constexpr vk::CompareOp k_closer_or_equal
Drawing over a depth prepass and far plane draws such as the skybox.
Definition
depth_convention.hpp:23
renderer::depth::perspective
auto perspective(float fovy, float aspect, float near_plane, float far_plane) -> glm::mat4
Callers still apply their own Y flip.
Definition
depth_convention.hpp:27
renderer::depth::k_reversed_z
constexpr bool k_reversed_z
Near 1 far 0 for even float precision over distance.
Definition
depth_convention.hpp:14
engine
src
toast
renderer
depth_convention.hpp
Generated by
1.17.0