mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +00:00
refactor: consolidate duplicate ShadowParamsUBO structure definition
Move ShadowParamsUBO from 5 separate shadow rendering functions (2 in m2_renderer, 1 in terrain_renderer, 1 in wmo_renderer) into shared vk_frame_data.hpp header. Eliminates 5 identical local struct definitions and improves consistency across all shadow pass implementations. Structure layout matches shader std140 uniform buffer requirements.
This commit is contained in:
parent
b3d8651db9
commit
b5a2175269
4 changed files with 10 additions and 37 deletions
|
|
@ -31,5 +31,15 @@ struct ShadowPush {
|
||||||
glm::mat4 model;
|
glm::mat4 model;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Uniform buffer for shadow rendering parameters (matches shader std140 layout)
|
||||||
|
struct ShadowParamsUBO {
|
||||||
|
int32_t useBones;
|
||||||
|
int32_t useTexture;
|
||||||
|
int32_t alphaTest;
|
||||||
|
int32_t foliageSway;
|
||||||
|
float windTime;
|
||||||
|
float foliageMotionDamp;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace rendering
|
} // namespace rendering
|
||||||
} // namespace wowee
|
} // namespace wowee
|
||||||
|
|
|
||||||
|
|
@ -2865,16 +2865,6 @@ bool M2Renderer::initializeShadow(VkRenderPass shadowRenderPass) {
|
||||||
if (!vkCtx_ || shadowRenderPass == VK_NULL_HANDLE) return false;
|
if (!vkCtx_ || shadowRenderPass == VK_NULL_HANDLE) return false;
|
||||||
VkDevice device = vkCtx_->getDevice();
|
VkDevice device = vkCtx_->getDevice();
|
||||||
|
|
||||||
// ShadowParams UBO: useBones, useTexture, alphaTest, foliageSway, windTime, foliageMotionDamp
|
|
||||||
struct ShadowParamsUBO {
|
|
||||||
int32_t useBones = 0;
|
|
||||||
int32_t useTexture = 0;
|
|
||||||
int32_t alphaTest = 0;
|
|
||||||
int32_t foliageSway = 0;
|
|
||||||
float windTime = 0.0f;
|
|
||||||
float foliageMotionDamp = 1.0f;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Create ShadowParams UBO
|
// Create ShadowParams UBO
|
||||||
VkBufferCreateInfo bufCI{};
|
VkBufferCreateInfo bufCI{};
|
||||||
bufCI.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
|
bufCI.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
|
||||||
|
|
@ -3052,14 +3042,6 @@ void M2Renderer::renderShadow(VkCommandBuffer cmd, const glm::mat4& lightSpaceMa
|
||||||
if (!shadowPipeline_ || !shadowParamsSet_) return;
|
if (!shadowPipeline_ || !shadowParamsSet_) return;
|
||||||
if (instances.empty() || models.empty()) return;
|
if (instances.empty() || models.empty()) return;
|
||||||
|
|
||||||
struct ShadowParamsUBO {
|
|
||||||
int32_t useBones = 0;
|
|
||||||
int32_t useTexture = 0;
|
|
||||||
int32_t alphaTest = 0;
|
|
||||||
int32_t foliageSway = 0;
|
|
||||||
float windTime = 0.0f;
|
|
||||||
float foliageMotionDamp = 1.0f;
|
|
||||||
};
|
|
||||||
const float shadowRadiusSq = shadowRadius * shadowRadius;
|
const float shadowRadiusSq = shadowRadius * shadowRadius;
|
||||||
|
|
||||||
// Reset per-frame texture descriptor pool for foliage alpha-test sets
|
// Reset per-frame texture descriptor pool for foliage alpha-test sets
|
||||||
|
|
|
||||||
|
|
@ -788,15 +788,6 @@ bool TerrainRenderer::initializeShadow(VkRenderPass shadowRenderPass) {
|
||||||
VmaAllocator allocator = vkCtx->getAllocator();
|
VmaAllocator allocator = vkCtx->getAllocator();
|
||||||
|
|
||||||
// ShadowParams UBO — terrain uses no bones, no texture, no alpha test
|
// ShadowParams UBO — terrain uses no bones, no texture, no alpha test
|
||||||
struct ShadowParamsUBO {
|
|
||||||
int32_t useBones = 0;
|
|
||||||
int32_t useTexture = 0;
|
|
||||||
int32_t alphaTest = 0;
|
|
||||||
int32_t foliageSway = 0;
|
|
||||||
float windTime = 0.0f;
|
|
||||||
float foliageMotionDamp = 1.0f;
|
|
||||||
};
|
|
||||||
|
|
||||||
VkBufferCreateInfo bufCI{};
|
VkBufferCreateInfo bufCI{};
|
||||||
bufCI.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
|
bufCI.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
|
||||||
bufCI.size = sizeof(ShadowParamsUBO);
|
bufCI.size = sizeof(ShadowParamsUBO);
|
||||||
|
|
|
||||||
|
|
@ -1528,16 +1528,6 @@ bool WMORenderer::initializeShadow(VkRenderPass shadowRenderPass) {
|
||||||
if (!vkCtx_ || shadowRenderPass == VK_NULL_HANDLE) return false;
|
if (!vkCtx_ || shadowRenderPass == VK_NULL_HANDLE) return false;
|
||||||
VkDevice device = vkCtx_->getDevice();
|
VkDevice device = vkCtx_->getDevice();
|
||||||
|
|
||||||
// ShadowParams UBO: useBones, useTexture, alphaTest, foliageSway, windTime, foliageMotionDamp
|
|
||||||
struct ShadowParamsUBO {
|
|
||||||
int32_t useBones = 0;
|
|
||||||
int32_t useTexture = 0;
|
|
||||||
int32_t alphaTest = 0;
|
|
||||||
int32_t foliageSway = 0;
|
|
||||||
float windTime = 0.0f;
|
|
||||||
float foliageMotionDamp = 1.0f;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Create ShadowParams UBO
|
// Create ShadowParams UBO
|
||||||
VkBufferCreateInfo bufCI{};
|
VkBufferCreateInfo bufCI{};
|
||||||
bufCI.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
|
bufCI.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue