basic 3D zombie model

This commit is contained in:
2026-01-03 23:33:26 +01:00
parent 19ebe7b64f
commit 45c9e5180f
9 changed files with 1887 additions and 8 deletions

View File

@@ -1,10 +1,11 @@
#pragma once
#include <memory>
#include <td/misc/SlotGuard.h>
#include <td/render/Camera.h>
#include <td/render/loader/FbxLoader.h>
#include <td/render/loader/GLLoader.h>
#include <td/render/shader/CameraShaderProgram.h>
#include <td/misc/SlotGuard.h>
namespace td {
namespace render {
@@ -15,6 +16,7 @@ class BasicRenderer {
virtual ~BasicRenderer() {}
void Render(const GL::VertexArray& a_Vao);
void Render(const Model& a_Model);
};
template <typename TShader>
@@ -66,7 +68,7 @@ class RenderPipeline {
template <typename TShader>
Renderer<TShader>::Renderer(Camera& a_Camera) : m_Shader(std::make_unique<TShader>()), m_Camera(a_Camera) {
Connect(a_Camera.OnPerspectiveChange, [this](){
Connect(a_Camera.OnPerspectiveChange, [this]() {
m_Shader->Start();
m_Shader->SetProjectionMatrix(m_Camera.GetProjectionMatrix());
});

View File

@@ -0,0 +1,19 @@
#pragma once
#include <td/render/loader/GLLoader.h>
#include <memory>
#include <string>
#include <vector>
namespace td {
struct Model {
std::vector<std::unique_ptr<GL::VertexArray>> m_Vaos;
};
namespace ModelLoader {
Model LoadModel(const std::string& fileName);
}
}

View File

@@ -1,5 +1,6 @@
#pragma once
#include <td/render/loader/FbxLoader.h>
#include <td/render/Renderer.h>
#include <td/render/shader/EntityShader.h>
#include <td/game/World.h>
@@ -10,7 +11,7 @@ namespace render {
class EntityRenderer : public Renderer<shader::EntityShader> {
private:
game::WorldPtr m_World;
std::unique_ptr<GL::VertexArray> m_EntityVao;
Model m_EntityModel;
public:
EntityRenderer(Camera& a_Camera, const game::WorldPtr& a_World);