Skip to content

Jaysmito101/Xlux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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...

About

A Multi Threaded Software Renderer

Resources

License

Stars

Watchers

Forks

Releases

No releases published