-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO.txt
197 lines (150 loc) · 4.2 KB
/
TODO.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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
MILESTONES
===========
loader -----> mesh ----> allocator
creator --| |---> allocator
|---> allocator
1. RenderState
------------
RenderState fully functional with Renderbuffer, TransforFeedback and
BufferedTexture.
Debug output from RenderState to show its connections.
2. Primitive creation
------------------
Find a simple way to manage creation of Primitives, possibly including
centralization of all RenderState and resource creation.
Write creation code for
cube
sphere
axis
transform controller
3. Transform Controller
-----------------------
4. Demo: Shadows (PCSS/cascading?)
---------------------------------
5. Demo: Depth of field (framebuffer demo)
-----------------------------------------
6. Demo: Virtual Texturing
-------------------------
7. Mocap Loader/Animator
------------------------
8. Skeleton Loader/Animator
---------------------------
16/1
====
13-15/1
=======
RenderState transforFeedback system
RenderState OpenGL flags & vars system
Maya script for exporting .obj files for RT applications, splits vertices when
there are multiple uv coords or normals per vertex.
Created town_quads.obj and town_triangeles.obj with above exporter and QTOWN
DemoShadowMapping added, not finished
5/1
====
Moved utility functions for Mem and Gem to their respective global files rather
that forcing them into a wrapper class.
New classes: FramebufferState, fully integrated
RenderState framebufffer object system
renderState::setFramebuffer() etc
2-4/1
=====
Reworked RenderState class for full use of buffer objects
- A single RAM blob
- A single GPU blob (resident as a buffer)
- Multiple GPU bind points for the same buffer
a buffer bound to framebuffer + bound as texture in the next frame
- load/save File <---> RAM blob
- upload/download RAM blob <---> OpenGL managed blob
- pack/unpack OpenGL managed blob <---> texture/framebuffer
new classes: VertexState, ProgramState, UniformState, TextureState
new classes: Tracker (used for state tracking)
Syntax highlighting for shaders
31/12
=====
Passthrough shaders for normal mesh with position, normal, texcoord
30/12
=====
Set up git with correct .gitignore
Set up release environment
Directory structure that works with NSIGHT and deployment
Proj1
|---Bin
| |---Debug
| | |---Win32
| | |---Win64
| |---Release
| |---Win32
| |---Win64
|---Data
|---Include
|---Out
|---Shaders
|---Src
Proj2
.
.
SolutionMSVC2012
|---Proj1
|---Proj2
.
.
SolutionGCC
.
.
29/12
=====
Enable BMP R8 och RGB8 rendering
Enable PFM R32F and RGB32F rendering
Solve the mipmap + DXT mess (RenderState::declareTextureData() for solution)
Create GEM_THROW() macro to throw runtime_error and change all catch clauses
TextureLoader::createMipLevels()
renderState::undeclareDexture()
28/12
=====
renderState texture system
renderState::setTexture()
renderState::declareTextures()
remderState::bindTextures()
27/12
=====
class TextureLoader
TextureLoader::load()
TextureLoader::loadBMP()
TextureLoader::loadPFM()
TextureLoader::loadDXT1()
TextureLoader::create()
TextureLoader::save()
TextureLoader::saveBMP()
TextureLoader::savePFM()
26/12
======
renderstage::setUniform system
renderState::declareUniforms()
remderState::bindUniforms()
25/12
======
Allocator data progress system
1. writes sets isChanged flag, reads unsets flag
PRO: Very simple to use, just check isChanged() to know if data was updated
CON: ANY read will reset flag, so you might not get isChanged()==true where you
expect it.
2. same as 1 but let the application choose to reset the flag
PRO: Simple to use
CON: Only allows a single place for progress check.
3. keep track of writeCount counter, increase in all writes
PRO: The application can keep track of progress at any point in the code
CON: Harder to use, each application needs to save external counter to compare
against.
4. same as 3 but with reset functions
PRO: The application can keep track of progress at any point in the code
Simple to use, no external variables required.
CON: One place of reset means you can't have multiple points where you check
progress.
Implemented #4
22/12
======
meshloader::save
meshloader::reload
shaderloader::loader
GLOABL ERROR SYSTEM
bind vertex attributes (done generically, use layout specifier to access)