A heightmap terrain and procedurally positioned terrain features
Summary:
All classes will be Doxygen style commented, I avoid doing that now, because many things I did need refactoring, I don't want to document all of my mistakes :')
- Object3D: Every object in a scene (including a scene) inherits from Object3D
│
├── RenderObject3D: Rendered by Renderer3D
│ │
│ ├── MeshInstance (see: Mesh)
│ │ │
│ │ ├── Sky: A skybox cube with distance fog feature.
│ │ │
│ │ └── TerrainInstance
│ │
│ └── MultiMeshInstance (see: MultiMesh) Any loaded model's instance is a MultiMeshInstance.
│
├── PhysicsObject3D: Limited to have one child that being a RenderObject3D. Passed
│ to the PhysicsEngine. Its child is rendered by Renderer3D.
│
├── Scene: Entry point of an Object3D tree. It has a default Sky, Light and a Camera.
│
├── Light: Directional light with ambient, diffuse and specular.
│
└── Camera: Camera implementation with free roam option.
- Renderer3D: Renders a (3D) Scene.
- PhysicsEngine: Processes registered PhysicsObject3Ds. It's so simple, not done yet.
- Shader: Shader implementation. Can be loaded from memory or file.
- Texture: Not very detailed (but working) texture implementation. Can be loaded from memory or file.
- InputHandler: Input handler class that emits signals on mouse and keyboard events. Needs improvement.
- Window: Window class implemented upon GLFW.
- Nle: Main class that initializes and destroys window, renderer, physics engine and defaults. It's essentially our main application.
- Hadoken
- editor (code needs a mass refactor and cleanup)
- gltf & glb loading
scene saving and loading- point light
mouse ray for 3d interaction- default shaders need tidying up
- Shoryuken
- instanced drawing (that works with physics engine)
- point light (and multiple lights)
- shadows
materials need more than specular
- Tatsumaki Senpukyaku
- collision system that does not suck
- skeletal animation system
- a game made with nice little engine that works
hasan karaman - https://hasankaraman.dev - 2023