-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathTODO
More file actions
222 lines (170 loc) · 5.48 KB
/
TODO
File metadata and controls
222 lines (170 loc) · 5.48 KB
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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
NOW:
- Read mtl files
- Render from the camera (using mtl)
BUGS:
- cursor moves when clicking outside of the view area
- cursor setting doesn't work properly in ortho projection
NICE TO HAVE:
- Animation of camera when moving to predefined points
BACKLOG:
- avoid normalising vectors so often
- try intrinsic for sqrt
- avoid random heap allocations everywhere
- put things we're not going to free in the permanent memory
- thread-safe performance counters
- properly outline triangles
- use 2 light sources (maybe even point ones)
- drawing a silhouette of the selected model
- drag models without manipulator
- add the model move manipulator
- move models along the axis using the manipulator
- don't expect obj files to include normals
- clipping
- scene graph - research
- scene graph - implementation
- be able to read scene info
- [linux] fix window performance problems for opengl
- procedural surface generation
- metaballs
- eulerian grid fluid
- [linux] window resize
- don't redraw areas unless something is happening
- fix visible back faces on the cube
- scale and rotate manipulators
- shortcut numpad keys to change orientation
- a panel with buttons to add primitives
- use quaternions for model orientation
- save scenes (and models)
- align buffer width to 4 pixels and use aligned writes
- Warp cursor pointer when rotating
- Fix the blue axis in the corner (they should use their own z-buffer)
- Allocate max size and no more glitches on resize please
- Logging
- don't transform the same vertex several times
- auto code reloading on recompile
idea: try to look at the objects in clip space from different angles
==============================================================================
DONE:
[10/03/2017]
- Markers for raytrace
- Basic line clipping (with bugs)
[05/02/2017]
- Move models without manipulator
- try to update before drawing to remove the lag between different areas
[01/02/2017]
- get rid of fans (maybe temporarily)
- aabb check on model select
[30/01/2017]
- raytrace texture mapping
[29/01/2017]
- nice icons for splitting
[28/01/2017]
- basic chalky raytrace render
- don't copy raytrace views on split
- [linux] raytrace work queue
[27/01/2017]
- [linux] create threads
[26/01/2017]
- check for intersection with aabb first
[25/01/2017]
- [windows] basic thread work queue
[24/01/2017]
- create worker threads
[23/01/2017]
- basic ray tracer (again)
- draw ray trace result into a backbuffer
[22/01/2017]
- tidy up rendering code
- fix problems with positioning
- load a reasonably big obj file
[21/01/2017]
- clip text against area bounds
- align text right
- load more than one model from obj file
- display the name of the selected model
- take quads into account when calculating AABB
- don't calculate AABB every frame - only when something changes, e.g. direction
- change the view hotkeys to properly work when pivot is not 0,0,0
- draw quads
- don't expect obj files to always have texture indices
[20/01/2017]
- shortcuts for positioning and projection
- display projection type in the status string
- draw text on editor type selectors
- actually drawing nice pre-rendered cheap strings
[19/01/2017]
- draw nicer and more expensive strings
[18/01/2017]
- z-buffer for new rasterizer
- Count cycles per pixel
[17/01/2017]
- Normalised barycentric coordinates
- Proper masking for the float rasterizer
[16/01/2017]
- testing another rasterizer that uses floats
- completely wrap the simd code to not be confused by the direct use of intrinsics
[12/01/2017 - 15/01/2017]
- experimented with simd
[11/01/2017]
- fixed the subpixel precision in rasterizer
[10/01/2017]
- display min and max for performance counters
- recalculate min and max fps once per several frames
- fix the fonts on windows
[09/01/2017]
- [wip] new rasterizer
[08/01/2017]
- if hit count > 1, accumulate ticks
- draw everything from bottom left
[07/01/2017]
- try not to overallocate pixel buffers (maybe even use only one and avoid copying?)
- basic frustum culling using AABB
- display performance counters
[06/01/2017]
- display fps on linux
- baseline and kerning for strings
- basic alpha blending for fonts
[05/01/2017]
- render a string onto the screen
- displayed a letter on the screen
[04/01/2017]
- debug draw AABBs
[03/01/2017]
- calculating AABBs
- fixed memory leaks
- [linux] capitalize all ASCII symbols from keypresses
[02/01/2017]
- maybe don't add special meaning to keys at the platform layer?
- [linux] try to find a working solution with vsync and glx
- selecting models with mouse click
- insert a cube in the cursor position on button press
- single compilation unit
- debug rays through pixels (set camera to 0 first)
[01/01/2017]
- add cursor
- don't allocate z-buffer each frame
- vary pivot moving speed depending on the distance
- fix stretchy buffer for c++
- custom orientation for models
[31/12/2016]
- each model has its own position/scale
- [fixed] model disappears when changing direction
- more than one model in the scene
- fix the axis icon
- fix the y axis tilting left and right when rotating (annoying!)
[30/12/2016]
- fix the disappearing face at some angles
- move camera base point with shift
- vertical rotation of camera
- use gouraud shading on models (or phong-)
- backface culling for viewing direction (not light)
[29/12/2016]
- fixed a nasty rounding error
- fix occasional gaps between triangles
- fix the shitty drawing of the cube (z-buffer)
- add minimum luminance != 0
- fix ortho projection too
- lerp as a function
- make the grid use z buffer
[28/12/2016]
- fix triangle drawing