Xlux icon indicating copy to clipboard operation
Xlux copied to clipboard

A Multi Threaded Software Renderer

Lines of code Maintenance Support me on Patreon

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

Textues source

Textures

Transforms source

Transforms

Going 3D source

Going 3D

Model Loading source

Model Loading

PBR source

PBR

More comming soon...