This is a small rendering engine which i've decided to build out of pure curiosity. This is part of a process which I hope will lead to me learning to create a game engine from scratch.
The project is following the great OpenGL tutorial by Joey DeVries (https://learnopengl.com/Introduction), and attempts to follow his tutorials (add extend them) to best suit a game engine. This is largely experimental, and is a rugh interpretation of how I would think rendering would be tied into an engine.
So far, the engine is comprised of a number of basic scripts and classes. These are broken down as follows:
-
SDL2_rust: I use SDL2 to handle input and manage windows.
-
gl_rs: A wrapper which allows the OpenGL API to be accessed through rust code.
So far, the engine is incredibly rough. Its most significant classes are listed as follows:
-
application: handles the main event loop and calls the renderer's main functions.
-
render_application: handles basic GPU indexing, buffering and vertex array management.
-
renderer_tests: contains methods for rendering certain objects and shapes. These shapes
-
shader_program: combines multiple shaders into a single object which can be used to determine how an object is rendered.
-
shader: takes in a vertex or fragment shader and creates a new shader object containing that shader.
[src]
|-main.rs
|-application.rs
|
|-[Render]
| |-render_application.rs
| |-render_tests.rs
| |-triangle.vert
| |-triangle.frag
| |
| |-[shader]
| | |-shader.rs
| | |-shader_program.rs
| | |-shader_utilities.rs
| |-[practice]
| | |-square.rs
| | |-square_render.rs
| | |-two_triangles_2.rs
| | |-two_triangles_single_vertex.rs
Test Update