Raffaello / threedangles

3D triangles software rendering engine from scratch
MIT License
0 stars 0 forks source link
3d-graphics cpp17 graphics

# threedangles

Three-D-angles is a 3D triangles engine built from scratch.

This is a for fun, educational project.

It will feature the following algorithms (foundations):

Something to leave for the future due to time....

Curves & Surfaces:

Furthermore:


The implementation will be based on :

Compiling

Use CMake and eventually vcpkg for package management.

Note on the implementation

SDL2-Image

Used to load images for textures.

Windows

SIMD

Using MMX/SSE/AVX for float 32 bit and Vec4 / Mat4 operations (vectorization) and rasterization.

CUDA

This might require to redo all the engine into cudaEngine:

note

It might just be pointless doing a "software 3D rendering Engine using GPGPU", apart some fun on it, but at that point would be better doing properly with Vulkan/DirectX/OpenGL.

I am not sure if i will do it right now or in the future, as after I wrote the algorithms, using CUDA won't change too much, especially with the usage of the thrust library.

C/C++ compiler optimization

Note on compilers

Compilers are capable of using SIMD / Vectorization from default C/C++ code.

Credits

The project has been inspired by a OLC's video serie (OneLoneCoder):

Papers, documentations and specs (available also in the /doc folder):