mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-02 15:53:51 +00:00
refactor: consolidate duplicate ShadowPush structure definition
Move ShadowPush from 4 separate rendering modules (character_renderer, m2_renderer, terrain_renderer, wmo_renderer) into shared vk_frame_data.hpp header. This eliminates 4 identical local struct definitions and ensures consistency across all shadow rendering passes. Add vk_frame_data.hpp include to character_renderer.cpp.
This commit is contained in:
parent
3202c1392d
commit
cda703b0f4
5 changed files with 7 additions and 6 deletions
|
|
@ -25,5 +25,11 @@ struct GPUPushConstants {
|
||||||
glm::mat4 model;
|
glm::mat4 model;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Push constants for shadow rendering passes
|
||||||
|
struct ShadowPush {
|
||||||
|
glm::mat4 lightSpaceMatrix;
|
||||||
|
glm::mat4 model;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace rendering
|
} // namespace rendering
|
||||||
} // namespace wowee
|
} // namespace wowee
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@
|
||||||
#include "rendering/vk_shader.hpp"
|
#include "rendering/vk_shader.hpp"
|
||||||
#include "rendering/vk_buffer.hpp"
|
#include "rendering/vk_buffer.hpp"
|
||||||
#include "rendering/vk_utils.hpp"
|
#include "rendering/vk_utils.hpp"
|
||||||
|
#include "rendering/vk_frame_data.hpp"
|
||||||
#include "rendering/camera.hpp"
|
#include "rendering/camera.hpp"
|
||||||
#include "pipeline/asset_manager.hpp"
|
#include "pipeline/asset_manager.hpp"
|
||||||
#include "pipeline/blp_loader.hpp"
|
#include "pipeline/blp_loader.hpp"
|
||||||
|
|
@ -2678,8 +2679,6 @@ void CharacterRenderer::renderShadow(VkCommandBuffer cmd, const glm::mat4& light
|
||||||
vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, shadowPipelineLayout_,
|
vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, shadowPipelineLayout_,
|
||||||
1, 1, &shadowParamsSet_, 0, nullptr);
|
1, 1, &shadowParamsSet_, 0, nullptr);
|
||||||
|
|
||||||
struct ShadowPush { glm::mat4 lightSpaceMatrix; glm::mat4 model; };
|
|
||||||
|
|
||||||
const float shadowRadiusSq = shadowRadius * shadowRadius;
|
const float shadowRadiusSq = shadowRadius * shadowRadius;
|
||||||
for (auto& pair : instances) {
|
for (auto& pair : instances) {
|
||||||
auto& inst = pair.second;
|
auto& inst = pair.second;
|
||||||
|
|
|
||||||
|
|
@ -3070,7 +3070,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 ShadowPush { glm::mat4 lightSpaceMatrix; glm::mat4 model; };
|
|
||||||
struct ShadowParamsUBO {
|
struct ShadowParamsUBO {
|
||||||
int32_t useBones = 0;
|
int32_t useBones = 0;
|
||||||
int32_t useTexture = 0;
|
int32_t useTexture = 0;
|
||||||
|
|
|
||||||
|
|
@ -965,7 +965,6 @@ void TerrainRenderer::renderShadow(VkCommandBuffer cmd, const glm::mat4& lightSp
|
||||||
|
|
||||||
// Identity model matrix — terrain vertices are already in world space
|
// Identity model matrix — terrain vertices are already in world space
|
||||||
static const glm::mat4 identity(1.0f);
|
static const glm::mat4 identity(1.0f);
|
||||||
struct ShadowPush { glm::mat4 lightSpaceMatrix; glm::mat4 model; };
|
|
||||||
ShadowPush push{ lightSpaceMatrix, identity };
|
ShadowPush push{ lightSpaceMatrix, identity };
|
||||||
vkCmdPushConstants(cmd, shadowPipelineLayout_, VK_SHADER_STAGE_VERTEX_BIT,
|
vkCmdPushConstants(cmd, shadowPipelineLayout_, VK_SHADER_STAGE_VERTEX_BIT,
|
||||||
0, 128, &push);
|
0, 128, &push);
|
||||||
|
|
|
||||||
|
|
@ -1715,8 +1715,6 @@ void WMORenderer::renderShadow(VkCommandBuffer cmd, const glm::mat4& lightSpaceM
|
||||||
vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, shadowPipelineLayout_,
|
vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, shadowPipelineLayout_,
|
||||||
0, 1, &shadowParamsSet_, 0, nullptr);
|
0, 1, &shadowParamsSet_, 0, nullptr);
|
||||||
|
|
||||||
struct ShadowPush { glm::mat4 lightSpaceMatrix; glm::mat4 model; };
|
|
||||||
|
|
||||||
// WMO shadow cull uses the ortho half-extent (shadow map coverage) rather than
|
// WMO shadow cull uses the ortho half-extent (shadow map coverage) rather than
|
||||||
// the proximity radius so that distant buildings whose shadows reach the player
|
// the proximity radius so that distant buildings whose shadows reach the player
|
||||||
// are still rendered into the shadow map.
|
// are still rendered into the shadow map.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue