2020-05-18 01:24:59 +00:00
|
|
|
# renderer-tutorial
|
2020-05-17 04:48:24 +00:00
|
|
|
|
|
|
|
This softwre aims to be an OpenGL renderer written in Haskell following the
|
|
|
|
OpenGL tutorial by The Cherno
|
|
|
|
(<https://www.youtube.com/playlist?list=PLlrATfBNZ98foTJPJ_Ev03o2oq3-GGOS2>).
|
|
|
|
|
2020-05-17 19:27:35 +00:00
|
|
|
## Important notes
|
|
|
|
|
2020-05-17 04:48:24 +00:00
|
|
|
There are some major deviations from the tutorial setup here as follows:
|
|
|
|
|
|
|
|
* Code base is entirely written in Haskell, not C++
|
2020-05-17 08:59:15 +00:00
|
|
|
* Instead of GLFW with GLEW I use SDL2 out of familiarity
|
2020-05-18 01:24:59 +00:00
|
|
|
* Shaders are actually split into files per type, since I'mn ot willing to
|
2020-08-09 19:43:04 +00:00
|
|
|
unleash Haskell list magic
|
2020-05-17 19:27:35 +00:00
|
|
|
* Since I am using the OpenGL core profile from the start there is also a
|
2020-08-09 19:43:04 +00:00
|
|
|
vertex array creation call present from the start.
|
|
|
|
* I don't have not found a suitable GUI library, so all things interactive are
|
|
|
|
done through input events.
|
2020-05-17 04:48:24 +00:00
|
|
|
|
|
|
|
I leave as many helpful comments as possible throughout the code, so feel free
|
|
|
|
to peruse it.
|
2020-08-11 02:12:30 +00:00
|
|
|
|
|
|
|
## Mapped input events
|
|
|
|
|
|
|
|
### Keyboard
|
|
|
|
|
2020-08-29 05:19:34 +00:00
|
|
|
To switch to a scene, press one of the buttons below, To return to the Menu,
|
|
|
|
press `Escape`.
|
2020-08-29 02:41:23 +00:00
|
|
|
|
|
|
|
## `F1` - Colour changer
|
|
|
|
|
|
|
|
Use the keys `1` through `4` to increase the values of R, G, B or A of the
|
|
|
|
background colour. Press `Left Shift` and the number key to decrease it.
|
2020-08-29 05:18:14 +00:00
|
|
|
|
|
|
|
## `F2` - Textured quads
|
|
|
|
|
|
|
|
Use keys `1` and `2` to switch between the textured quads, move them forward on
|
|
|
|
the x and y axis by pressing `X` and `Y` respectively or backward using
|
|
|
|
`Left Shift` and the appropriate key.
|
2020-08-29 20:13:25 +00:00
|
|
|
|
|
|
|
## `F3` - Textured quads batched statically
|
|
|
|
|
|
|
|
Move the quads forward on
|
|
|
|
the x and y axis by pressing `X` and `Y` respectively or backward using
|
|
|
|
`Left Shift` and the appropriate key.
|
|
|
|
|
|
|
|
## `F4` - Textured quads batched dynamically
|
|
|
|
|
|
|
|
No interaction.
|