Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
ShaderTransforms.cs
浏览该文件的文档.
1
namespace
Engine.Graphics
{
2
public
class
ShaderTransforms
{
3
public
Matrix
[]
m_world
;
4
5
public
Matrix
m_view
=
Matrix
.
Identity
;
6
7
public
Matrix
m_projection
=
Matrix
.
Identity
;
8
9
public
Matrix
[]
m_worldView
;
10
11
public
Matrix
m_viewProjection
=
Matrix
.
Identity
;
12
13
public
Matrix
[]
m_worldViewProjection
;
14
15
public
int
MaxWorldMatrices
=>
m_world
.Length;
16
17
public
Matrix
[]
World
=>
m_world
;
18
19
public
Matrix
View
{
20
get
=>
m_view
;
21
set
=>
m_view
= value;
22
}
23
24
public
Matrix
Projection
{
25
get
=>
m_projection
;
26
set
=>
m_projection
= value;
27
}
28
29
public
Matrix
ViewProjection
=>
m_viewProjection
;
30
31
public
Matrix
[]
WorldView
=>
m_worldView
;
32
33
public
Matrix
[]
WorldViewProjection
=>
m_worldViewProjection
;
34
35
public
ShaderTransforms
(
int
maxWorldMatrices) {
36
m_world
=
new
Matrix
[maxWorldMatrices];
37
m_worldView
=
new
Matrix
[maxWorldMatrices];
38
m_worldViewProjection
=
new
Matrix
[maxWorldMatrices];
39
for
(
int
i = 0; i < maxWorldMatrices; i++) {
40
m_world
[i] =
Matrix
.
Identity
;
41
m_worldView
[i] =
Matrix
.
Identity
;
42
m_worldViewProjection
[i] =
Matrix
.
Identity
;
43
}
44
}
45
46
public
virtual
void
UpdateMatrices
(
int
count,
bool
worldView,
bool
viewProjection,
bool
worldViewProjection) {
47
if
(count < 1
48
|| count >
MaxWorldMatrices
) {
49
throw
new
ArgumentOutOfRangeException(nameof(count));
50
}
51
if
(worldView) {
52
for
(
int
i = 0; i < count; i++) {
53
Matrix
.
MultiplyRestricted
(ref
m_world
[i], ref
m_view
, out
m_worldView
[i]);
54
}
55
}
56
if
(viewProjection) {
57
Matrix
.
MultiplyRestricted
(ref
m_view
, ref
m_projection
, out
m_viewProjection
);
58
}
59
if
(!worldViewProjection) {
60
return
;
61
}
62
if
(worldView) {
63
for
(
int
j = 0; j < count; j++) {
64
Matrix
.
MultiplyRestricted
(ref
m_worldView
[j], ref
m_projection
, out
m_worldViewProjection
[j]);
65
}
66
return
;
67
}
68
if
(!viewProjection) {
69
Matrix
.
MultiplyRestricted
(ref
m_view
, ref
m_projection
, out
m_viewProjection
);
70
}
71
for
(
int
k = 0; k < count; k++) {
72
Matrix
.
MultiplyRestricted
(ref
m_world
[k], ref
m_viewProjection
, out
m_worldViewProjection
[k]);
73
}
74
}
75
}
76
}
Engine.Graphics.ShaderTransforms.m_view
Matrix m_view
定义
ShaderTransforms.cs:5
Engine.Graphics.ShaderTransforms.m_projection
Matrix m_projection
定义
ShaderTransforms.cs:7
Engine.Graphics.ShaderTransforms.World
Matrix[] World
定义
ShaderTransforms.cs:17
Engine.Graphics.ShaderTransforms.UpdateMatrices
virtual void UpdateMatrices(int count, bool worldView, bool viewProjection, bool worldViewProjection)
定义
ShaderTransforms.cs:46
Engine.Graphics.ShaderTransforms.WorldViewProjection
Matrix[] WorldViewProjection
定义
ShaderTransforms.cs:33
Engine.Graphics.ShaderTransforms.View
Matrix View
定义
ShaderTransforms.cs:19
Engine.Graphics.ShaderTransforms.m_world
Matrix[] m_world
定义
ShaderTransforms.cs:3
Engine.Graphics.ShaderTransforms.m_worldViewProjection
Matrix[] m_worldViewProjection
定义
ShaderTransforms.cs:13
Engine.Graphics.ShaderTransforms.MaxWorldMatrices
int MaxWorldMatrices
定义
ShaderTransforms.cs:15
Engine.Graphics.ShaderTransforms.WorldView
Matrix[] WorldView
定义
ShaderTransforms.cs:31
Engine.Graphics.ShaderTransforms.m_worldView
Matrix[] m_worldView
定义
ShaderTransforms.cs:9
Engine.Graphics.ShaderTransforms.ViewProjection
Matrix ViewProjection
定义
ShaderTransforms.cs:29
Engine.Graphics.ShaderTransforms.m_viewProjection
Matrix m_viewProjection
定义
ShaderTransforms.cs:11
Engine.Graphics.ShaderTransforms.ShaderTransforms
ShaderTransforms(int maxWorldMatrices)
定义
ShaderTransforms.cs:35
Engine.Graphics.ShaderTransforms.Projection
Matrix Projection
定义
ShaderTransforms.cs:24
Engine.Graphics
定义
BaseBatch.cs:1
Engine.Matrix
定义
Matrix.cs:17
Engine.Matrix.MultiplyRestricted
static void MultiplyRestricted(ref Matrix m1, ref Matrix m2, out Matrix result)
定义
Matrix.cs:756
Engine.Matrix.Identity
static readonly Matrix Identity
定义
Matrix.cs:37
SurvivalcraftApi 1.8.2.3
Engine
Engine.Graphics
ShaderTransforms.cs
制作者
1.16.1