Commit Graph

16 Commits

Author SHA1 Message Date
Elipzer
cc9db05987 Added Baseline for LitShadowedScene 2018-09-18 16:55:32 -04:00
elipzer
ae7fcc9011 Starting Textured Scene
Want to use seperate textures and samplers for the scene to allow
for more modularization. Currently have created a texture class
and started creating a scene class.
2018-09-15 17:40:49 -04:00
elipzer
af20d28442 Added Ambient Lighting for LitScene 2018-09-14 18:09:43 -04:00
elipzer
d63f341d89 More builtin abstraction
Got the builtin basicscene to render. For some reason, it seems
like the model matrices are not working correctly. The two shapes
that are supposed to be rendering on screen are not moving around
as they should be.
2018-09-13 19:21:34 -04:00
elipzer
a933c19fa9 Got the scene to render.
Need to re-make the builtin version. The problem, again, was caused
by vtables. Need to find a way to make interfaces without virtual
methods to remove the need for vtables. Found a good stackoverflow
article on this.

https://stackoverflow.com/questions/44317289/c-interface-without-virtual-functions

The Positioned, Normaled, Textured, etc. Interfaces should be
re-made using this format.
2018-09-13 13:35:30 -04:00
elipzer
991b52b233 Almost Finished Builtin
Builtin general structure created. Added a builtin::BasicScene
class for quick general testing of the engine on different systems.
The builtin::BasicScene class greatly reduces the amount of code
needed to be handled by the developer by offering a pre-made way
to handle it. It even includes pre-made shaders!
2018-09-13 00:51:47 -04:00
elipzer
77e8b0de5e Added Namespace: charcoal 2018-09-12 17:03:46 -04:00
Elipzer
3205680062 Fixed Camera
Also added a required prerender function to scene and application.
This function is intended to be used as a way to prepare the scene
to be rendered in its current state. For that reason, the delta
time and the current clock tick are not passed to it.
2018-09-12 11:22:56 -04:00
Elipzer
90bac19849 3D Cube
Finally got a 3D cube to be rendered. While doing it, fixed a
bug in MeshFactory that caused it to allocate the incorrect amount
of memory for each mesh.
2018-09-11 16:49:34 -04:00
elipzer
6164aa82b2 Cleaned up File Names 2018-09-11 01:18:17 -04:00
elipzer
1d19d370cb Removed vtable from Poseable
This removes the offset created by the vtable (8 bytes). This
means that pure Poseables are now tightly ;3 packed.
2018-09-10 21:21:19 -04:00
elipzer
75357b330c Added Dependency: GLM
Now using GLM instead of the custom math libraries.
Sadly, this did not 100% fix the problem at hand but it does give
some closure that the math is not the problem.

Also it will be nice to have a general math library to not have to
deal with creating every math function every time.
2018-09-09 21:20:56 -04:00
elipzer
5a10a883fb Camera Class
Currently implemented a 2D camera class that creates an
orthographic projection matrix.

TODO is implementing a 3D camera class and test program.
2018-09-08 00:06:10 -04:00
elipzer
a8c4b05d2f It Works! A triangle renders on the screen.
This commit gets creates the ObjectOriented scene and gets it
working.

The current test program swaps a triangle from small to large with
the 1 and 2 keys on the keyboard. (1 for small and 2 for large).

The small triangle is rendered by the simple scene and the large
one is rendered by the object oriented one.
2018-09-05 19:10:38 -04:00
elipzer
40617c8953 More preparation for the legendary triangle. Currently working on Batch.h
to specify the batch pipeline specified at StackOverflow
See https://stackoverflow.com/questions/8923174/opengl-vao-best-practices#8923298
2018-09-05 11:47:09 -04:00
elipzer
27fb4cf7ea Initial Commit 2018-09-04 15:25:54 -04:00