basic 3D zombie model
This commit is contained in:
@@ -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());
|
||||
});
|
||||
|
||||
19
include/td/render/loader/FbxLoader.h
Normal file
19
include/td/render/loader/FbxLoader.h
Normal 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);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user