Skip to content

Firemanarg/minirt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

miniRT

miniRT Logo miniRT Title
MiniRT is a graphic project from 42School curriculum.
It consists in an implementation of a basic render engine
using the raytracing technique.

Table of Contents

About the Project

Introduction

This project is a straightforward implementation of ray tracing, as part of the 42School projects. It is capable of rendering a scene specified by a file containing 3D objects and more.
Ray tracing is a technique used to generate realistic images by simulating lights and shadows. It involves projecting rays from the camera to each screen pixel, then detecting collisions to calculate the color of that pixel.


Ray Tracing basics

To render images, the program requires a scene file containing all the objects in a scene. The program reads and parses the file into abstract data structures. It then iterates through each pixel, projecting a ray (with the camera as the origin of the ray) and calculates the pixel's color by checking if it is influenced by light. After calculating the colors of all pixels, the image is generated. This process may take longer when there are numerous objects in the scene.

Supported Objects

  • Camera: Definitions of the view for the render;
  • Ambient Light: Basic light to define the darkest level of shadows;
  • Light: Point light in 3d space;
  • Sphere: 3d sphere in 3d space;
  • Cylinder: 3d cylinder in 3d space;
  • Plane: Infinite plane in 3d space, rendered by both sides (top and bottom);
  • Cone (bonus only): 3d cone in 3d space.

Preview

Getting Started

Prerequisites

Installation

Usage

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published