Durant ma 1ère année de Master 3D&JV à l'ESGI, j'ai réalisé un moteur de rendu de raytracing en C++ from scratch. Ce moteur est paramétrable, permet de charger différentes scènes, de rendre différentes primitives tel qu'un cube, une sphère, un cylindre, un plan et un cone, et est partiellement optimisé avec l'implémentation d'instructions SIMD (SSE1).
Ce moteur de rendu, a été réalisé entièrement sans librairie mathématiques. De la profondeur de champ au lancé de rayon en passant par l'anti aliasing, tout a été réalisé à la main. Seul la création du fichier png final a été réalisée à l'aide d'OpenCV (pour la structure) et stb-image (pour l'export). Le moteur est entièrement paramétrable et peut charger une scène 3D sous la forme d'un fichier json.
Sans ombres
Avec ombres
Sans profondeur de champ
Avec profondeur de champ à 1.8
Sans anti-aliasing SSAA
Avec anti-aliasing SSAA