5#include "Transform.hpp"
6#include "ComponentWithOwner.hpp"
7#include "PostProcess.hpp"
49 case Mode::Perspective:
50 return matrix4(RMath::perspectiveProjection(deg_to_rad(FOV), (
float)width / height, nearClip, farClip));
52 case Mode::Orthographic:
53 return matrix4(RMath::orthoProjection(0.0f,
static_cast<float>(width),
static_cast<float>(height),0.0f,nearClip,farClip));
66 return glm::inverse(GetOwner().GetTransform().GetWorldMatrix());
90 inline std::pair<vector3,vector3> ScreenPointToRay(
vector2 point, uint32_t width, uint32_t height)
const {
92 point.y = height - point.y;
99 vector4 destClipSpace{ point,1,1 };
100 vector4 originClipSpaceWS = invViewProjection * originClipSpace;
101 vector4 destClipSpaceWS = invViewProjection * destClipSpace;
102 vector3 originClipSpaceWS3 =
vector3(originClipSpaceWS) / originClipSpaceWS.w;
103 vector3 destClipSpaceWS3 =
vector3(destClipSpaceWS) / destClipSpaceWS.w;
105 return { originClipSpaceWS3,
glm::normalize(destClipSpaceWS3 - originClipSpaceWS3) };
113 renderlayer_t renderLayers = ALL_LAYERS;
115 ViewportOverride viewportOverride;
117 Ref<RenderTexture> target;
119 PostProcessEffectStack postProcessingEffects;
121 Ref<TonemapPassInstance> tonemap;
122 IndirectLightingSettings indirectLightingSettings;
126 Mode projection = Mode::Perspective;
Definition ComponentWithOwner.hpp:17
Definition CameraComponent.hpp:14
vector3 ScreenPointToWorldPoint(const vector3 &point, uint32_t width, uint32_t height) const
Definition CameraComponent.hpp:74
constexpr bool IsActive() const
Definition CameraComponent.hpp:35
matrix4 GenerateViewMatrix() const
Definition CameraComponent.hpp:64
vector3 NormalizedScreenPointToWorldPoint(const vector3 &point, uint32_t width, uint32_t height) const
Definition CameraComponent.hpp:86
constexpr void SetActive(bool newState)
Definition CameraComponent.hpp:28
constexpr matrix4 GenerateProjectionMatrix(uint32_t width, uint32_t height) const
Definition CameraComponent.hpp:47
Definition ComponentWithOwner.hpp:6
Definition RenderEngine.hpp:64
Definition concurrentqueue.h:747
GLM_FUNC_QUALIFIER vec< L, T, Q > normalize(vec< L, T, Q > const &x)
Definition func_geometric.inl:190
GLM_FUNC_QUALIFIER mat< C, R, T, Q > inverse(mat< C, R, T, Q > const &m)
Definition func_matrix.inl:388
GLM_FUNC_DECL vec< 3, T, Q > unProject(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Definition matrix_projection.inl:79
Definition Animation.hpp:6
Definition qualifier.hpp:36
Definition qualifier.hpp:35