belkarto / Ray_Tracer

This project is about building a RayTracer from scratch.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ray_Tracer GitHub stars

GitHub code size in bytes Code language count GitHub top language GitHub last commit GitHub last commit

github-header-image

Description ✨🌐

This Ray Tracer is a project exploring the world of ray tracing, a rendering technique that simulates the path of light to create realistic images. It uses a combination of algorithms and mathematics to accurately model the behavior of light as it interacts with various objects in a scene🎨🌟.

Nvidia Raytracing explination πŸ”— πŸ–₯️

Features ✨

Rendering Capabilities:

  • 🌐 Spheres: Render realistic spheres with smooth shading.
  • 🏞️ Planes ️: Create flat surfaces with precise reflections.
  • πŸŒ€ Cylinders: Generate cylinders with optional gradient effects for visual appeal.
  • πŸ”Ί Triangles: Implement efficient triangle rendering for diverse shapes.

Enhanced Visual Effects:

  • 🌈 Gradient Shading on Spheres and Cylinders: Add depth and realism to your scenes with gradual color variations.
  • 🏁 Checkboard Patterns on Planes: Showcase the power of ray tracing by creating checkerboard patterns on planar surfaces.

Screenshots πŸ“Έ

miniRt Mini_rt scene Mini_rt scene

Setup πŸ› οΈ

Installation πŸ’»

Dependencies needed πŸ“¦

Installing these dependencies on Ubuntu can be done as follows:

sudo apt-get install xorg libxext-dev zlib1g-dev libbsd-dev

Usage πŸš€

Run the following to make the project

make mlx && make

After making the project you can then run the program as follow

./miniRT scenes/<name of scene>

Project layout πŸ“

β”œβ”€ Makefile    			
β”œβ”€ includes/
β”œβ”€ libs/
β”œβ”€ scenes/      	
β”œβ”€ srcs/
β”‚  β”œβ”€ parsing/
β”‚  β”œβ”€ randring/
|  β”œβ”€ utils/
└─ LICESNE

Resources πŸ“š

πŸ”— Raytracing in weekend series

πŸ”— Scratchpixel

πŸ”— Object equations

πŸ”— Fundamentals of Ray Tracing

πŸ”— Texture && mapping

License πŸ“ƒ

This project is licensed under the MIT License - see the LICENSE file for details.

About

This project is about building a RayTracer from scratch.

License:MIT License


Languages

Language:C 79.2%Language:Objective-C 9.9%Language:Roff 7.2%Language:Makefile 2.9%Language:Shell 0.6%Language:Perl 0.2%