update readme

This commit is contained in:
2026-04-10 02:20:26 -05:00
parent db38e00b8d
commit 6158789fe3

View File

@@ -1,4 +1,46 @@
## ouros # ouros
# initial commit Ouros is a rudimentary 3D rendering application built with C++ utilizing the Vulkan API for blazing fast rasterization and shading. This is mainly for tinkering around, so don't expect the most performant and clean code. I will be using the amazing Sascha Willems's https://howtovulkan.com/ guide as a platform.
## Some design philosphies:
- Cross platform (Windown & Linux, Debian in my case)
- Minimal external libraries. Some libraries are unavoidable, especially for a project with a large scope. Libraries for window creation, matrix math, and device interfacing are inevitable, but dependency complexity is usually a problem.
- Compartmentalization: units should be separated a part from each other as mushc as possible to reduce codebase complexity. eg, the renderer should be completely separate from a keyboard interface.
- Performance tracking: since Vulkan is absurdly configurable, different options need to be able to be profiled to determine the best option
- Configurability: being able to change things without a rebuild is in general good practice. I like yaml
- Fun: if its a pain to maintain then you're doing it wrong
- shmunguss
## Roadmap
Below is some steps to organize development plan and future goals, mostly following Sascha's guide.
- [ ] Repo setup
- [ ] Hello world application
- [ ] Window creation (glfw or sdl)
- [ ] Vulkan installation
- [ ] Hello Vulkan: instance creation
- [ ] Device/GPU Setup
- [ ] Graphic pipeline -> swapchain
- [ ] Shaders
- [ ] Hello triangle
- [ ] 3D
- [ ] Texture loader
- [ ] Model Loader
- [ ] Mouse/Keyboard inputs
Below is beyond Sascha's guide, but available elsewhere on his github. These are more long term ideas.
- [ ] Lighting
- [ ] Shadows (via Shadow Mapping)
- [ ] Compute Shading
- [ ] Raytracing
- [ ] Graphical User Interfacing
- [ ] Post-Processing Effects
- [ ] Procedural Generation
- [ ] Particles
## Build instructions
TODO: git clone, build/install libraries script, cmake commands, etc.
TODO: identify dependencies and how to install them (vulkan libraries, sdl, glm, etc.)
## Additional Resources
- https://howtovulkan.com/
- Will add more as I use them