OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
staticmesh.h
Go to the documentation of this file.
1#pragma once
2
3#include <Tempest/VertexBuffer>
4#include <Tempest/IndexBuffer>
5#include <Tempest/Device>
6
7#include "graphics/material.h"
8#include "graphics/bounds.h"
9
10#include "resources.h"
11
12class PackedMesh;
13
15 public:
17
18 StaticMesh(const PackedMesh& data);
19 StaticMesh(const Material& mat, std::vector<Resources::Vertex> vbo, std::vector<uint32_t> ibo);
22
23 struct SubMesh {
25 size_t iboOffset = 0;
26 size_t iboLength = 0;
27 std::string texName;
28 Tempest::AccelerationStructure blas;
29 };
30
31 struct Morph {
32 std::string name;
33 size_t numFrames = 0;
34 size_t samplesPerFrame = 0;
35 int32_t layer = 0;
36 uint64_t tickPerFrame = 50;
37 uint64_t duration = 0;
38
39 size_t index = 0;
40 };
41
42 struct MorphAnim {
43 const std::vector<Morph>* anim = nullptr;
44 const Tempest::StorageBuffer* index = nullptr;
45 const Tempest::StorageBuffer* samples = nullptr;
46 };
47
48 const Tempest::AccelerationStructure* blas(size_t iboOffset, size_t iboLen) const;
49
50 Tempest::VertexBuffer<Vertex> vbo;
51 Tempest::IndexBuffer<uint32_t> ibo;
52 Tempest::StorageBuffer ibo8;
54
55 std::vector<SubMesh> sub;
57 };
Bounds bbox
Definition staticmesh.h:56
Tempest::VertexBuffer< Vertex > vbo
Definition staticmesh.h:50
StaticMesh(StaticMesh &&)=default
StaticMesh & operator=(StaticMesh &&)=default
MorphAnim morph
Definition staticmesh.h:53
const Tempest::AccelerationStructure * blas(size_t iboOffset, size_t iboLen) const
Tempest::IndexBuffer< uint32_t > ibo
Definition staticmesh.h:51
Tempest::StorageBuffer ibo8
Definition staticmesh.h:52
std::vector< SubMesh > sub
Definition staticmesh.h:55
const std::vector< Morph > * anim
Definition staticmesh.h:43
const Tempest::StorageBuffer * samples
Definition staticmesh.h:45
const Tempest::StorageBuffer * index
Definition staticmesh.h:44
uint64_t duration
Definition staticmesh.h:37
std::string name
Definition staticmesh.h:32
uint64_t tickPerFrame
Definition staticmesh.h:36
size_t samplesPerFrame
Definition staticmesh.h:34
Tempest::AccelerationStructure blas
Definition staticmesh.h:28
std::string texName
Definition staticmesh.h:27