-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTO-DO.txt
107 lines (91 loc) · 3.55 KB
/
TO-DO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
DOING:
+ Members should be m_...
+ Finish input for ImGUI
+ Recompile shaders, allow change debug flag
TO-DO:
+ Guizmo for rotate translate and scale
+ GPU selection
+ Texture with SRGB
+ Command line parser and getter
+ Make all components take parent in constructor... uhmmm
+ Proper asset import: model class, model factory
+ Tiled rendering, in prep for clustered rendering.
+ Model Component to another file.
+ Heap descriptor flush, make just one device call (CPU perf)
+ Unify nulls views compute!
+ Implement system to check if Null views are required (https://docs.microsoft.com/en-us/windows/win32/direct3d12/hardware-support)
+ Clear render targets, should check that the resources are in write state
+ Maybe have a Metadata system from CB and SB (annoying to set all the properties when binding >_>)
+ Timing events (for pix)
+ Auto magic PSO without setting render target and depth formats..
+ Make constant buffer binding more clever, as in, if we don´t change a slot ,do not trash it...
+ Check proper resizing..
+ Replace rand with something better (spherical distribution)
+ Combine dx12 texture creation code
+ Static shape builder class (screen quad, screen triangle, cubes spheres etc etc)
+ Implement gradient noise
+ Precompile shaders offline
+ Add curl noise
+ Begin end compute pipeline?
+ Profiler
+ Clustered renderer.
DONE:
+ Console to display logs
+ IBL
+ Make pools for every type of resource
+ Probe
+ PBR rendering, start with the bases for a PBR model
+ Better way to recompile shaders
+ File mount system
+ Common toolbar
+ Delta time in seconds
+ Test physix stuff...
+ Physicsx linking and stuff
+ Remove optimize offs.
+ ECS ! !
++ Rename camera -> camera component (the files)
++ Cleanup old "components"
++ Figure out where to place world aabb
++ Light code
++ Culling code
+ Better build system for assimp and directx tex
+ Integrate bullet
+ Checking for descriptor re-use!
+ Batch barriers
+ Create light actor
+ Structured buffers
+ Constant buffer in one file (as in dont have the declaration in cpp and hlsl) use some #define trickery to do it. (check render doc hlsl_cbuffers.h)
+ Frustum culling
+ Debug camera that we can eject
+ Draw debug meshes
+ Start making components (nah, I will have a base Actor, and inherit from item, keeping it simple)
+ Unify mesh transform (inv view proj)
+ Unify shaders.
+ Scene graph system
+ Proper logging system. Would be nice to have a macro.
+ Add worley noise
+ Clouds to compute shader
+ Entry point system
+ App Base system
BRAINSTORM:
To render something, you have
+ Source mesh (.fbx, .obj, procedural, binary). This is just a set of vertex data!
+ Material, a shader, this material will reference some textures.
+ Transformation, where should we render, scale, rotation!
A model can have many meshes!
Cube vtx buffer:
VertexCube arr[36] =
{
-1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,-1.0f, 1.0f, // Front
-1.0f, 1.0f, 1.0f, 1.0f,-1.0f, 1.0f, -1.0f,-1.0f, 1.0f,
-1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, // Top
-1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f,
-1.0f,-1.0f, 1.0f, 1.0f,-1.0f,1.0f, -1.0f,-1.0f,-1.0f, // Bot
1.0f, -1.0f, 1.0f, 1.0f,-1.0f,-1.0f, -1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f, -1.0f, 1.0f,-1.0f, -1.0f,-1.0f,-1.0f, // Back
1.0f, 1.0f,-1.0f, -1.0f,-1.0f, -1.0f, 1.0f,-1.0f,-1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f,-1.0f, 1.0f,-1.0f,-1.0f, // Right
1.0f, 1.0f, 1.0f, 1.0f,-1.0f,-1.0f, 1.0f,-1.0f, 1.0f,
-1.0f, 1.0f,-1.0f, -1.0f, 1.0f,1.0f, -1.0f,-1.0f,1.0f, // Left
-1.0f, 1.0f,-1.0f, -1.0f,-1.0f,1.0f, -1.0f,-1.0f,-1.0f
};