vkmEngine 1.0.0
A C++ game engine · vkmengine.com
Loading...
Searching...
No Matches
render_objects.h
1#pragma once
2
3#include <cstdint>
4#include <vector>
5
6#include <glm/glm.hpp>
7
8#include "core/math/bounds.h"
9#include "resource/asset/material_asset.h"
10#include "resource/asset/mesh_asset.h"
11
12namespace Vkm::Engine {
13
19struct ObjectDraw {
23 MeshHandle mesh;
24 MaterialHandle material;
25
31 uint32_t skinCount = 0;
32};
33
42 std::vector<glm::mat4> models;
43 std::vector<Math::AABB> bounds;
44 std::vector<ObjectDraw> draws;
45
51 std::vector<uint32_t> skinFirst;
52
56 std::vector<uint32_t> visible;
57
63 std::vector<uint32_t> scene;
64
68 uint32_t casterCount = 0;
69};
70
71} // namespace Vkm::Engine
What one object is drawn with: its geometry, its material and its pose.
Definition render_objects.h:19
uint32_t skinCount
Bones in this object's slice of RenderView::skinMatrices.
Definition render_objects.h:31
MeshHandle mesh
The Mesh component's handle, or the level an LOD component selected.
Definition render_objects.h:23
Every object the frame can draw, written once by the cull, and the lists of what each reader draws.
Definition render_objects.h:41
std::vector< uint32_t > scene
Every drawn object, camera or not, shadow casters first.
Definition render_objects.h:63
std::vector< glm::mat4 > models
World matrices.
Definition render_objects.h:42
std::vector< uint32_t > visible
The objects the camera sees, in object order, unsorted.
Definition render_objects.h:56
uint32_t casterCount
How many of scene cast shadows, which are its prefix.
Definition render_objects.h:68
std::vector< uint32_t > skinFirst
Per object: where its bones start in RenderView::skinMatrices.
Definition render_objects.h:51
std::vector< Math::AABB > bounds
World boxes, posed for a posed mesh.
Definition render_objects.h:43