1#ifndef _DEFERRED_RENDERER_COMMON_HPP
2#define _DEFERRED_RENDERER_COMMON_HPP
4#include <Common/HashedString.hpp>
5#include <Common/Graphics/Formats.hpp>
6#include <Grindstone.Renderer.Deferred/include/Passes/GbufferPass.hpp>
24static const Grindstone::GraphicsAPI::Format depthFormat = Grindstone::GraphicsAPI::Format::D32_SFLOAT;
25static const Grindstone::GraphicsAPI::Format litHdrFormat = Grindstone::GraphicsAPI::Format::R16G16B16A16_SFLOAT;
26static const Grindstone::GraphicsAPI::Format ambientOcclusionFormat = Grindstone::GraphicsAPI::Format::R8_UNORM;
36static Grindstone::Renderer::ImageDescription attachmentAlbedo{ .name =
"Gbuffer Albedo", .format = Grindstone::GraphicsAPI::Format::R8G8B8A8_UNORM, .imageUsage = Grindstone::GraphicsAPI::ImageUsageFlags::RenderTarget | Grindstone::GraphicsAPI::ImageUsageFlags::Sampled};
37static Grindstone::Renderer::ImageDescription attachmentNormal{ .name =
"Gbuffer Normal", .format = Grindstone::GraphicsAPI::Format::R16G16B16A16_SNORM, .imageUsage = Grindstone::GraphicsAPI::ImageUsageFlags::RenderTarget | Grindstone::GraphicsAPI::ImageUsageFlags::Sampled };
38static Grindstone::Renderer::ImageDescription attachmentSpecularRoughness{ .name =
"Gbuffer Specular / Roughness", .format = Grindstone::GraphicsAPI::Format::R8G8B8A8_UNORM, .imageUsage = Grindstone::GraphicsAPI::ImageUsageFlags::RenderTarget | Grindstone::GraphicsAPI::ImageUsageFlags::Sampled };
39static Grindstone::Renderer::ImageDescription attachmentDepthStencil{ .name =
"Gbuffer Depth Stencil", .format = depthFormat, .imageUsage = Grindstone::GraphicsAPI::ImageUsageFlags::DepthStencil | Grindstone::GraphicsAPI::ImageUsageFlags::Sampled };
40static Grindstone::Renderer::ImageDescription attachmentlighting{ .name =
"Lighting Buffer", .format = litHdrFormat, .imageUsage = Grindstone::GraphicsAPI::ImageUsageFlags::RenderTarget | Grindstone::GraphicsAPI::ImageUsageFlags::Sampled };
41static Grindstone::Renderer::ImageDescription attachmentOutput{ .name =
"Output Attachment", .format = Grindstone::GraphicsAPI::Format::R8G8B8A8_UNORM, .imageUsage = Grindstone::GraphicsAPI::ImageUsageFlags::TransferSrc | Grindstone::GraphicsAPI::ImageUsageFlags::RenderTarget | Grindstone::GraphicsAPI::ImageUsageFlags::Sampled };
43static const uint32_t shadowAtlasResolution = 4096u;
45 .name =
"Shadow Depth Stencil",
47 .format = depthFormat,
48 .imageUsage = Grindstone::GraphicsAPI::ImageUsageFlags::DepthStencil | Grindstone::GraphicsAPI::ImageUsageFlags::Sampled
52 { 0, 2 *
sizeof(float), Grindstone::GraphicsAPI::VertexInputRate::Vertex },
57 Grindstone::GraphicsAPI::Format::R32G32_SFLOAT,
59 Grindstone::GraphicsAPI::AttributeUsage::Position
Definition HashedString.hpp:54
Definition AttachmentInfo.hpp:226