Xlux
Xlux copied to clipboard
A Multi Threaded Software Renderer
Xlux
Xlux Engine is powerful multi-threaded Software Renderer with zero dependencies. It can run on any platform with C++20 available.
Xlux can ideally be used as a library and extended to whatever usage desited with a very flexible API. The forntend of the API is mostly inspited by vulkan.hpp
but its way simpler compared to the actual vulkan API.
Features Implemented:
- Cross Platform
- ThreadPool
- Linear Algrebra (Normal)
- Vector (N dimensional)
- Matrices (M x N) (and specialized 4x4 for Graphics)
- SSE/AVX versions of Vector & Matrix (TODO)
- Custom Linear Allocator (for better performance)
- Parallel Shaders API
- Vertex Stage
- Fragment Stage
- Klux Device (resource manager)
- Buffers & Device Memory
- Textures Support
- Texture 2D
- Cubemap (TODO)
- Framebuffers
- Depth Supported
- Upto 4 (can be expanded) color channels
- extendable
- Triangle Clipping (Screen Space)
- Rastarizer
- Barycentric Interpolator
- Depth & Alpha Blending
Examples
The examples for this has been made similar to https://learnopengl.com/
Hello Triangle source
![Hello Triangle](https://github.com/Jaysmito101/Xlux/raw/main/Images/01_hellotriangle.png)
Textues source
![Textures](https://github.com/Jaysmito101/Xlux/raw/main/Images/02_textures.png)
Transforms source
![Transforms](https://github.com/Jaysmito101/Xlux/raw/main/Images/03_transforms.png)
Going 3D source
![Going 3D](https://github.com/Jaysmito101/Xlux/raw/main/Images/04_going3d.png)
Model Loading source
![Model Loading](https://github.com/Jaysmito101/Xlux/raw/main/Images/05_modelloading.png)
PBR source
![PBR](https://github.com/Jaysmito101/Xlux/raw/main/Images/06_pbr.png)
More comming soon...