Skip to content
This repository was archived by the owner on Sep 14, 2021. It is now read-only.

bshanae/RT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RT (Ray Tracer)

This ray tracer is the final project of the graphic branch at School 21 (Ecole 42).

Introduction

Ray tracing - is a way to create (render) 3D pictures with realistic lights and shadows. Ray tracing technique used in computer games, cartoons, graphic editors and etc.

Algorithm description
About ray tracing on wiki

Features

Renderer

  • Path tracing + area light
  • Ray marching
  • Interpolated background
  • Illumination
  • Reflection
  • Transparency
  • Texture on basic objects
  • Disruptions: perlin noise, sinewave and checkerboard texture

Objects

  • Basic objects: sphere, plane, cylinder, cone
  • Box
  • Limited objects: half-sphere, half-box and etc.
  • Negative objects (CSG)
  • Torus
  • Paraboloid
  • Moebius ribbon
  • Explosion
  • 3D fractals: mandelbulb, julia, perforated cube

Camera

  • Filters: cartoon effect, sepia
  • Stereoscopy
  • Motion blur
  • Focus (depth of field)

Interface

  • Scenes handle in JSON
  • It's possible to make screenshots
  • Camera management
  • Editing, creating and deleting objects
  • Renderer management: tracing type, lightning mod and etc.

Our own algorithms:

Technical environment

  • Parallel computing on GPU (OpenCl)
  • The interface is written using GTK

Compilation

$> make
$>./RT

Make sure that you have gtk+3, pkg-config and glade. If not use homebrew for installation:

$> brew install gtk+3
$> brew install pkg-config
$> brew install glade

Resourses

  • Physically Based Rendering - describes both the mathematical theory behind a modern photorealistic rendering system as well as its practical implementation
  • Scratchapixel - amazing tutorials (from basic lightning to Monte Carlo Methods)
  • Inigo Quilez - articles, tutorials, code, and presentations related to maths, fractals, demoscene and computer graphics
  • Shadertoy - is a cross-browser online community and tool for creating and sharing shaders through WebGL
  • Fractal forums - crazy place, where magic and fractals lives

More images

Hypercomplex fractal - is a three-dimensional fractal.

Path tracing - improved ray tracing algorithm. The basic idea is to simulate the path of a ray of light. As a result, objects cast not only shadow, but also color. Example: on a white wall, we will see a little bit of red if a red object is standing nearby.

Raymarching is a technique a bit like traditional raytracing where the surface function is not easy to solve (or impossible without numeric iterative methods). In raytracing you just look up the ray intersection, whereas in ray marching you march forward (or back and forth) until you find the intersection, have enough samples or whatever it is your trying to solve.

Authors

Vladimir Belchenko
Elena Orlova
Alexey Prigorovsky

About

A powerful path tracer made on fucking C

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •