mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
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.
35 lines
1 KiB
C++
35 lines
1 KiB
C++
#pragma once
|
|
|
|
#include <vulkan/vulkan.h>
|
|
#include <glm/glm.hpp>
|
|
|
|
namespace wowee {
|
|
namespace rendering {
|
|
|
|
// Must match the PerFrame UBO layout in all shaders (std140 alignment)
|
|
struct GPUPerFrameData {
|
|
glm::mat4 view;
|
|
glm::mat4 projection;
|
|
glm::mat4 lightSpaceMatrix;
|
|
glm::vec4 lightDir; // xyz = direction, w = unused
|
|
glm::vec4 lightColor; // xyz = color, w = unused
|
|
glm::vec4 ambientColor; // xyz = color, w = unused
|
|
glm::vec4 viewPos; // xyz = camera pos, w = unused
|
|
glm::vec4 fogColor; // xyz = color, w = unused
|
|
glm::vec4 fogParams; // x = fogStart, y = fogEnd, z = time, w = unused
|
|
glm::vec4 shadowParams; // x = enabled(0/1), y = strength, z = unused, w = unused
|
|
};
|
|
|
|
// Push constants for the model matrix (most common case)
|
|
struct GPUPushConstants {
|
|
glm::mat4 model;
|
|
};
|
|
|
|
// Push constants for shadow rendering passes
|
|
struct ShadowPush {
|
|
glm::mat4 lightSpaceMatrix;
|
|
glm::mat4 model;
|
|
};
|
|
|
|
} // namespace rendering
|
|
} // namespace wowee
|