-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProjectHistory
301 lines (293 loc) · 12 KB
/
ProjectHistory
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
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
Project Start - 28/04/2018
28/05/2018
* Added Perspective projection
29/05/2018
* Added BackfaceCulling
* Added drawing order of components
* Added Orthographic projection
09/06/2018
* Added Blender Mesh importing
* Added BackfaceCulling with sholeance algorithm (tried to implement zBuffer without success)
* Added multiple Cameras Rendering
* Added FileIO class (possibility to read and write files)
* Performance improvements
* Changed Position, Rotation and Scale classes to Vector3 class
* Added Vector2 class (for 2D graphics)
* Added Transform class (for translating, rotating objects)
* Added GameManager class (updates the engine)
13/06/2018
* Added material color importing
* Changed update method of GameManager from thread to swing timers
* Fixed awt drawing flickering bug by changing to swing timers
16/06/2018
* Added shading
* Optimized ram usage
23/06/2018
* Changed SceneRenderer to draw on BufferedImage of camera instead of making a polygon buffer
* Optimized ram usage
* Changed camera from swing JPanel to awt Canvas (performance improved)
* Changed sceneFrame from swing JFrame to awt Frame (performance improved)
* Optimized mesh Exporter/Importer
* Changed KeyInputManager to work "Stand alone" instead of needing a JComponent to work
04/07/2018
* Changed Camera ScreenBuffer from Image to BufferedImage
* Added zBuffering!
* Changed from Vector3 class to int[][] for performance reasons
* Changed awt Graphics drawing on Camera to own drawing on BufferedImage
* Optimized sholeance algorithm
* Corrected negative Cosinus bug of Calc
05/07/2018
* Added SOM_Importer (removed test importing method form Mesh class itself)
* Added color baking for shading (stoped generating new colors for each polygon)
* Added ImportExeption (for case of polygons with more than 3 vertexes)
07/07/2018
* Changed from Polygon class to int[][]
* Optimized ram usage a lot
* Fixed awt Canvas flickering bug by drawing to BufferStrategy.getDrawGraphics instead of calling repaint
* Added Vector class that makes basic vector operations (addition, multiplication...)
14/07/2018
* Added Animation importing/exporting
* Added SceneAnimator class (animates the Scene)
* Added animations!!!
03/08/2018
* Fixed bug of bone position not changing vertex position
* Fixed triangle filling bug
* Added auto triangulation when exporting from Blender
* Added sample animation/bone creation when object has no animation/bone
17/08/2018
* Changed triangle filling algorithm! (10x performance)
* Created utils package
* Moved Calc class to MathUtils
* Moved Vector class to VectorUtils
* Moved GraphicsCalc class to VectorMathUtils
* Created ColorUtils class for handling the int rgba color of awt
* Created Material class
* Fixed some small bugs
22/08/2018
* Added affine texture mapping!!!
* Writing pixel of Camera to DataBuffer instead of BufferdImage.setPixel (big performance improvement)
23/08/2018
* Fixed perspective projection bug!!!
* Fixed camera transformation bug
* Removed transformBuffer from SceneObject
* Fixed view frustum culling bug
v0.1 - 24/08/2018
* Renamed VectorUtils to Vector3Util class
* Renamed VectorMathUtils to Vector3MathUtils class
25/08/2018
* Created VertexUtils class
* Created UVUtils class
* Changed vertex from int[] to long packed like rbg int value in java awt
* Changed uv from int[] to int packed like rbg int value in java awt
* Changed everything needed to work with the new vertex and uv
26/08/2018
* Added texture to the Material class
* Changed Image class pixel storage from BufferedImage to int[]
* Added default texture adding to SOMImporter
* Fixed affine texture mapping uv position swapping bug
* Changed affine texture mapper to work only with integers!
* Fixed some affine texture mapping bugs
* Moved zBuffer from Camera to SceneRenderer
* Changed Image class name to Texture
* Fixed affine texture mapping texture deformation bug!!
27/08/2018
* Optimized zbuffer
* Added affine texture mapper texture to uv size interpolation
* Fixed zbuffer bug
28/08/2018
* Renamed UVUtils to Vector2Utils
* Added MouseInputManager class (handles mouse events)
* Added MouseListener interface (sends mouse events)
* Added MouseEvent class (contains event data)
* Optimized KeyInputManager
01/09/2018
* Added JunitTests and commented MathUtils class
* Added JunitTests and commented VertexUtils class
* Added JunitTests and commented Vector3Utils class
* Added JunitTests and commented Vector3MathUtils class
* Added JunitTests and commented Vector2Utils class
* Renamed Vector3MathUtils to VectorMathUtils because it handles 3d and 2d vectors
* Changed Camera 2d vectors from int[] to int of Vector2Utils
02/09/2018
* Fixed sine, cosine precision bug of MathUtils class
* Added surface subdivision to blender som exporter to fix affine texture mapping displacement (like ps1 did :D)
* Improved MathUtils sine, cosine, tangent performance
* Improved affine texture mapper performance (added bitshift to uv interpolation)
03/09/2018
* Added comments to the Animation class
* Added comments to the Mesh class
* Added comments to the Light class
* Added comments to the Scene class
* Added comments to the Camera class
* Added comments to the Texture class
* Added comments to the Material class
* Added comments to the Transform class
* Added comments to the SceneFrame class
* Added comments to the SceneObject class
* Added comments to the SceneAnimator class
* Added comments to the SceneRenderer class
* Added comments to the CameraEvent class
* Renamed EventDispatcher of graphics event package to GraphicsEventDispatcher
* Added comments to the CameraListener interface
* Added comments to the GraphicsEventDispatcher class
* Added comments to the EventDispatcher class
* Added comments to the UpdateListener interface
* Added comments to the UpdateEvent class
* Changed GameManager update from swing Timers to Threads
* Changed KeyInputManager thread synchronizing from semaphores to synchronized list
04/09/2018
* Changed SceneRenderer to work with 2 threads, 1 for transformations, and other for drawing (needs to be refactored, its a mess now)
* Added SceneRasterizer class
* Changed graphics update type of UpdateEvent to render and rasterize update type
* Changed graphicsUpdate thread of GameManager to renderUpdate and rasterizeUpdate
* Now the SceneRenderer does the transformations and the SceneRasterizer draws the Scene
* Performance improved with this new graphics pipeline!!!
* Updated SceneRenderer comments and added comments to the SceneRasterizer class
05/09/2018
* Added PixelShader class! (is called to shade when a pixel in the Camera is set)
* Added Shader class! (is called to shade the vertexes and polygons by the SceneRenderer)
08/09/2018
* Updated some comments
* Added RenderUtils class (provides methods needed at the rendering process)
10/09/2018
* Deleted SceneRasterizer class
* Removed multithreaded rendering pipeline to fix multiple camera rendering bug
* Fixed some bugs
11/09/2018
* Added Profiler class!! (shows informations about what the engine is currently doing)
17/09/2018
* Added benchmarks and optimized some things
19/09/2018
* Changed vertexes from long to int[] (performance reasons)
* Changed vectors from long to int[] (performance reasons)
* Changed everything to work with int[] again
* Renamed VectorMathUtils class to Vector3MathUtils because with int[] (to handle only 3D vectors/int arrays with length >= 3)
* Added Vector2MathUtils class (to handle only 2D vectors/int arrays with length >= 2)
* Added VectorUtils class (provides methods for swapping vectors and so on)
* Removed Vector2Utils class
* Removed Vector3Utils class
22/09/2018
* Fixed flickering bug (changed from Canvas to JPanel)
* Performance improvement
* Improved Profiler (showing pressed key and mouse clicks now)
* Fixed some bugs
26/09/2018
* Added flat shading!!
* Fixed some bugs
27/09/2018
* Fixed projection bug
27/09/2018
* Fixed some bugs
* Added new methods to VectorUtils and MathUtils
02/10/2018
* Added lerp method to the ColorUtils
* Optimized random algorithm and added ranged random method to MathUtils
* Optimized and improved the default Shader
* Fixed some bugs
02/10/2018
* Added gouraud shading to the affine texture mapping algorithm in RenderUtils
03/10/2018
* Added vertex normal exporting/importing
* Fixed growing ram usage bug (it was the foreach light loop in the Shader class, wtf ???,
it fixed when i changed to for loop, now changed all foreach to for loops)
07/10/2018
* Fixed depth buffer bug!!! (added per pixel depth value interpolation)
* Added Vertex class
* Added Face class
* Changed things to work with Face and Vertex class
* Added per pixel depth value interpolation to the affine texture mapper
13/10/2018
* Improved performance of Face drawing algorithms
* Fixed bugs and improved performace in ColorUtils class
* Fixed bugs
* Improved performance
22/10/2018
* Added some default models to the resources folder
* Fixed some bugs
* Improved precision of som exporter/importer
24/10/2018
* Renamed SceneFrame to SceneWindow
* Moved JPanel from each Camera to 1 JPanel in the SceneWindow (less ram usage, fixed flickering bug when more than 1 Camera is active)
* Moved projection type, rendering type... from camera to shader class in form of constants
v0.2 - 27/10/2018
* Fixed some bugs
30/10/2018
* Fixed multiple cameras overlapping bug
* Changed enum from Light to int (Use constats in Shader class for light types)
* Moved zBuffer from SceneRenderer to SceneWindow
* Moved all value objects from graphics to the jpge package
* Deleted PixelShader class and moved shadePixel method to Shader
* Added physics package
* Renamed SceneRenderer to Renderer
* Renamed SceneAnimator to Animator
* Created .dto (DataTransferObject) package
* Moved Scene from SceneWindow to GameManager that sends current scene in the UpdateEvent
* Refactored GameManager
* Added PhysicsAnimator class
31/10/2018
* Renamed GameManager to Engine
* Added EngineSettings class
* Moved Scene from SceneWindow to Engine
* Moved Renderer from SceneWindow to Engine
* Moved Animator from SceneWindow to Engine
* Moved SceneWindow back to src/main/java (moved to src/test/java accidently in last commit)
05/11/2018
* Added RenderBuffer class
* Removed viewBuffer from the Camera class drawing directly to RenderBuffer now
* Added PhysicsSettings class (contains physics settings of scenes)
* Added object fall physics
* Deleted ProfilerData class (Profiler gets data from engine)
06/11/2018
* Fixed Key and MouseInputManager key getting bugs
* Removed the JPGEKey Listener/Event
* Removed the JPGEMouse Listener/Event
* Added JPGE interface (Called by the engine, has as a default update method)
13/11/2018
* Renamed DisplayBuffer to RenderBuffer
* Added sphere collision detection!!!
* Added Plane mesh to the resources folder
* Refactored and fixed bugs
16/11/2018
* Added kinematic option to Rigidbody (no physical forces affects the object)
21/11/2018
* Refactored SOM file
* Changed Shader to UnifiedShaderModel
* Fixed som exporter bug
* Fixed som files from resources folder
* Added new som file to resources
* Added path to models in resources as constants to Mesh class
* Added SphereToMesh collision detection
* Added MeshToMesh collision detection
* fixed bugs
22/11/2018
* Optimized MathUtils sin/cos funtion (10% performance improvement)
* Optimized MathUtils sqrt function (big performance improvement)
24/11/2018
* Fixed Profiler bug with older JDKs
* Fixed SOMImporter materials importing bug
29/11/2018
* Implemented Serializable in all classes inside dto package
* Fixed bugs
05/12/2018
* Changed from Serializable to Externalizable (faster)
* Moved PhysicsSettings to dto package
* Added JUnit test for dto package serialization
06/12/2018
* Fixed bug in MathUtils
11/12/2018
* Changed Key and MouseInputManager to InputManager
* InputManager works with events, added JPGE Key and Mouse Listener
* Removed ImportExeption
* Removed Profiler singleton
* Updated License
* Refactored
13/12/2018
* Added startLocation to Vertex (using location in rendering instead of vertexBuffer in Mesh)
* Fixed mouseDown event bug
* Fixed bug in RenderUtils
16/12/2018
* Added clamp method to Vector2 and Vector3MathUtils
18/12/2018
* updated pom.xml
21/12/2018
* Optimized line drawing algorithm