From 4676653c8423eb3da37cd5916f3e901fca226e66 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Mon, 2 Jun 2025 21:48:48 -0400 Subject: [PATCH] Add g_PbrParameterCommon buffer to the Dawntrail renderer --- renderer/include/gamerenderer.h | 1 + renderer/include/shaderstructs.h | 5 +++++ renderer/src/gamerenderer.cpp | 13 +++++++++++++ 3 files changed, 19 insertions(+) diff --git a/renderer/include/gamerenderer.h b/renderer/include/gamerenderer.h index f916b52..f0e7cc2 100644 --- a/renderer/include/gamerenderer.h +++ b/renderer/include/gamerenderer.h @@ -102,6 +102,7 @@ private: Buffer g_DecalColor; Buffer g_AmbientParam; Buffer g_ShaderTypeParameter; + Buffer g_PbrParameterCommon; Buffer m_planeVertexBuffer; diff --git a/renderer/include/shaderstructs.h b/renderer/include/shaderstructs.h index a2b7127..055f48b 100644 --- a/renderer/include/shaderstructs.h +++ b/renderer/include/shaderstructs.h @@ -109,3 +109,8 @@ struct AmbientParameters { struct ShaderTypeParameter { glm::vec4 m[2044]; }; + +// Dawntrail +struct PbrParameterCommon { + glm::vec4 unk; +}; diff --git a/renderer/src/gamerenderer.cpp b/renderer/src/gamerenderer.cpp index 505757b..370ddd9 100644 --- a/renderer/src/gamerenderer.cpp +++ b/renderer/src/gamerenderer.cpp @@ -231,6 +231,17 @@ GameRenderer::GameRenderer(Device &device, GameData *data) m_device.copyToBuffer(g_ShaderTypeParameter, &shaderTypeParameter, sizeof(ShaderTypeParameter)); } + // pbr common parameter + if (m_dawntrailMode) { + g_PbrParameterCommon = m_device.createBuffer(sizeof(PbrParameterCommon), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT); + m_device.nameBuffer(g_PbrParameterCommon, "g_PbrParameterCommon"); + + PbrParameterCommon pbrParameterCommon{}; + pbrParameterCommon.unk = {31.01465, 30.99805, 1.00, 0.00}; + + m_device.copyToBuffer(g_PbrParameterCommon, &pbrParameterCommon, sizeof(PbrParameterCommon)); + } + VkSamplerCreateInfo samplerInfo = {}; samplerInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; samplerInfo.magFilter = VK_FILTER_NEAREST; @@ -1399,6 +1410,8 @@ GameRenderer::createDescriptorFor(const DrawObject *object, const CachedPipeline useUniformBuffer(g_AmbientParam); } else if (strcmp(name, "g_ShaderTypeParameter") == 0) { useUniformBuffer(g_ShaderTypeParameter); + } else if (strcmp(name, "g_PbrParameterCommon") == 0) { + useUniformBuffer(g_PbrParameterCommon); } else { qInfo() << "Unknown resource:" << name; info->buffer = m_dummyBuffer.buffer;