Added shadow maps

This commit is contained in:
Vladislav Khorev committed 2026-04-15 19:54:21 +03:00
1 parent a47306533e
commit d8795ec076
15 files changed
+880 -6

No files matched your search

+8
View File
@@ -34,6 +34,8 @@ public:
void setTarget(const Eigen::Vector3f& target,
std::function<void()> onArrived = nullptr);
void draw(Renderer& renderer);
void drawShadowDepth(Renderer& renderer);
void drawWithShadow(Renderer& renderer, const Eigen::Matrix4f& lightFromCamera, GLuint shadowMapTex, const Eigen::Vector3f& lightDirCamera);
// Public: read by Game for camera tracking and ray-cast origin
Eigen::Vector3f position = Eigen::Vector3f(0.f, 0.f, 0.f);
@@ -97,6 +99,12 @@ private:
void prepareGpuSkinningVBOs(AnimationData& anim);
// GPU skinning: draw using shader-based skinning
void drawGpuSkinning(Renderer& renderer);
// Shadow: draw into depth map (no texture, no projection push)
void drawShadowDepthGpuSkinning(Renderer& renderer);
void drawShadowDepthCpu(Renderer& renderer);
// Shadow: draw with shadow-aware shaders
void drawGpuSkinningWithShadow(Renderer& renderer, const Eigen::Matrix4f& lightFromCamera, GLuint shadowMapTex, const Eigen::Vector3f& lightDirCamera);
void drawCpuWithShadow(Renderer& renderer, const Eigen::Matrix4f& lightFromCamera, GLuint shadowMapTex, const Eigen::Vector3f& lightDirCamera);
};
} // namespace ZL