Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
RenderTypes.h
Ir a la documentación de este archivo.
1
6
#pragma once
7
#include "
Prerequisites.h
"
8
9
class
Mesh
;
10
class
MaterialInstance
;
11
12
enum class
13
MaterialDomain
{
14
Opaque
= 0,
15
Masked
,
16
Transparent
17
};
18
19
enum class
20
BlendMode
{
21
Opaque
= 0,
22
Alpha
,
23
Additive
,
24
PremultipliedAlpha
25
};
26
27
enum class
28
RenderPassType
{
29
Shadow
= 0,
30
Opaque
,
31
Skybox
,
32
Transparent
,
33
Editor
34
};
35
36
enum class
37
LightType
{
38
Directional
= 0,
39
Point
,
40
Spot
41
};
42
43
struct
44
LightData
{
45
LightType
type =
LightType::Directional
;
46
EU::Vector3
color =
EU::Vector3
(1.0f, 1.0f, 1.0f);
47
float
intensity = 1.0f;
48
49
EU::Vector3
direction =
EU::Vector3
(0.0f, -1.0f, 0.0f);
50
float
range = 0.0f;
51
52
EU::Vector3
position =
EU::Vector3
(0.0f, 0.0f, 0.0f);
53
float
spotAngle = 0.0f;
54
};
55
56
struct
57
MaterialParams
{
58
XMFLOAT4 baseColor = XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f);
59
float
metallic = 1.0f;
60
float
roughness = 1.0f;
61
float
ao = 1.0f;
62
float
normalScale = 1.0f;
63
float
emissiveStrength = 1.0f;
64
float
alphaCutoff = 0.5f;
65
};
66
67
struct
68
CBPerFrame
{
69
XMFLOAT4X4 View{};
70
XMFLOAT4X4 Projection{};
71
XMFLOAT4X4 LightViewProjection{};
72
EU::Vector3
CameraPos{};
73
float
pad0 = 0.0f;
74
EU::Vector3
LightDir =
EU::Vector3
(0.0f, -1.0f, 0.0f);
75
float
pad1 = 0.0f;
76
EU::Vector3
LightColor =
EU::Vector3
(1.0f, 1.0f, 1.0f);
77
float
pad2 = 0.0f;
78
};
79
80
struct
81
CBPerObject
{
82
XMFLOAT4X4 World{};
83
};
84
85
struct
86
CBPerMaterial
{
87
XMFLOAT4 BaseColor = XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f);
88
float
Metallic = 1.0f;
89
float
Roughness = 1.0f;
90
float
AO = 1.0f;
91
float
NormalScale = 1.0f;
92
float
EmissiveStrength = 1.0f;
93
float
AlphaCutoff = 0.0f;
94
float
pad0 = 0.0f;
95
float
pad1 = 0.0f;
96
float
pad2 = 0.0f;
97
float
pad3 = 0.0f;
98
float
pad4 = 0.0f;
99
float
pad5 = 0.0f;
100
};
101
102
struct
103
RenderObject
{
104
Mesh
* mesh =
nullptr
;
105
MaterialInstance
* materialInstance =
nullptr
;
106
std::vector<MaterialInstance*>
materialInstances
;
107
XMMATRIX world = XMMatrixIdentity();
108
bool
castShadow =
true
;
109
bool
transparent =
false
;
110
float
distanceToCamera = 0.0f;
111
};
112
113
Prerequisites.h
Declara la API de Prerequisites dentro del subsistema Core.
BlendMode
BlendMode
Definition
RenderTypes.h:20
BlendMode::Additive
@ Additive
BlendMode::Alpha
@ Alpha
BlendMode::PremultipliedAlpha
@ PremultipliedAlpha
RenderPassType
RenderPassType
Definition
RenderTypes.h:28
RenderPassType::Editor
@ Editor
RenderPassType::Shadow
@ Shadow
RenderPassType::Skybox
@ Skybox
MaterialDomain
MaterialDomain
Definition
RenderTypes.h:13
MaterialDomain::Transparent
@ Transparent
MaterialDomain::Masked
@ Masked
MaterialDomain::Opaque
@ Opaque
LightType
LightType
Definition
RenderTypes.h:37
LightType::Point
@ Point
LightType::Spot
@ Spot
LightType::Directional
@ Directional
EU::Vector3
A 3D vector class.
Definition
Vector3.h:45
MaterialInstance
Agrupa un material base con sus texturas y parametros concretos.
Definition
MaterialInstance.h:22
Mesh
Agrupa una coleccion de submallas listas para ser renderizadas.
Definition
Mesh.h:28
CBPerFrame
Definition
RenderTypes.h:68
CBPerMaterial
Definition
RenderTypes.h:86
CBPerObject
Definition
RenderTypes.h:81
LightData
Definition
RenderTypes.h:44
MaterialParams
Definition
RenderTypes.h:57
RenderObject
Definition
RenderTypes.h:103
RenderObject::materialInstances
std::vector< MaterialInstance * > materialInstances
Definition
RenderTypes.h:106
include
Rendering
RenderTypes.h
Generado por
1.9.8