Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
skinned_mesh.h
1#ifndef OE_RENDER_NODE_SKINNED_MESH_H
2#define OE_RENDER_NODE_SKINNED_MESH_H
3
4#include "mesh.h"
5
6namespace oe::scene
7{
8 class SkinnedMeshNode;
9}
10
11namespace oe::render
12{
13 class Texture;
14
16 {
17 constexpr static uint32_t bones_matrices_texture_layer = 16;
18
19 public:
25
26 virtual void render() override;
27
28 //static std::string getVertexShader(); -> Maybe only code, or a Shader instance with only vertex part ?
29
33 virtual void fillShader(ShaderBase& shader) override;
34
36 private:
37 std::shared_ptr<oe::render::Texture> _blendshape_atlas;
38
39 uint32_t _bones_count = 0;
40
41 uint32_t _tbo_bones = 0;
42 uint32_t _bones_texture = 0;
43
44 std::vector<uint32_t> _sub_meshes_count;
45
46 std::vector<std::unique_ptr<render::Mesh>> _render_meshes;
47
48 scene::SkinnedMeshNode& _skinned_node;
49 };
50}
51
52#endif
Definition node.h:13
Shader class.
Definition shader_base.h:33
Definition skinned_mesh.h:16
virtual void fillShader(ShaderBase &shader) override
SkinnedMeshNode(scene::SkinnedMeshNode &node)
Skinned mesh node.
Definition skinned_mesh.h:26
Render related abstractions (Shader, Framebuffer, Cubemaps, Textures)
Definition opengl.h:10
Scene related management (Render-agnostic Geometry, Manger, etc...)
Definition debug.h:19