All Projects → NullSense → Tracey

NullSense / Tracey

Licence: GPL-3.0 license
A 3d ray tracer in C++ (High School Project)

Programming Languages

C++
36643 projects - #6 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to Tracey

ArtOfIllusion
Art of Illusion modeling and rendering suite - core application and tools
Stars: ✭ 58 (+141.67%)
Mutual labels:  raytracer, raytracing
Tinykaboom
A brief computer graphics / rendering course
Stars: ✭ 2,077 (+8554.17%)
Mutual labels:  raytracer, raytracing
GPU-Pathtracer
GPU Raytracer from scratch in C++/CUDA
Stars: ✭ 326 (+1258.33%)
Mutual labels:  raytracer, raytracing
LumillyRender
Monte Carlo path tracing implementation on Rust
Stars: ✭ 36 (+50%)
Mutual labels:  ray-tracer, raytracing
rust-tracer
Simple Ray tracer written in Rust
Stars: ✭ 14 (-41.67%)
Mutual labels:  raytracer, raytracing
ctrt
Compile-Time Ray Tracer in Rust ported from C++
Stars: ✭ 82 (+241.67%)
Mutual labels:  raytracer, raytracing
Tinyraytracer
A brief computer graphics / rendering course
Stars: ✭ 3,971 (+16445.83%)
Mutual labels:  raytracer, raytracing
Photon-v2
A program that takes photographs of a virtual world.
Stars: ✭ 75 (+212.5%)
Mutual labels:  raytracer, raytracing
monte-carlo-ray-tracer
Physically based renderer with Path Tracing and Photon Mapping.
Stars: ✭ 246 (+925%)
Mutual labels:  raytracer, raytracing
C-Raytracer
A CPU raytracer from scratch in C
Stars: ✭ 49 (+104.17%)
Mutual labels:  raytracer, raytracing
mcrt
Monte Carlo Raytracer from Scratch in C++11/14
Stars: ✭ 22 (-8.33%)
Mutual labels:  ray-tracer, raytracer
nerv pathtracer
a pathtracer with physically based rendering in mind
Stars: ✭ 27 (+12.5%)
Mutual labels:  raytracing
ProtoTracer
3D rendering and animation engine for multifaceted displays on microcontrollers
Stars: ✭ 80 (+233.33%)
Mutual labels:  raytracing
gpu-pathtracer
physically based path tracer on gpu
Stars: ✭ 44 (+83.33%)
Mutual labels:  raytracing
dxr-path-tracing
A DXR path tracer with OptiX denoising. 5 months worth of research, trial & error as part of a project to learn and understand DirectX Raytracing & raytracing concepts.
Stars: ✭ 92 (+283.33%)
Mutual labels:  raytracing
droplet-render
Volumetric cloud modeling and rendering for Blender.
Stars: ✭ 29 (+20.83%)
Mutual labels:  raytracing
zig-gamedev
Building game development ecosystem for @ziglang!
Stars: ✭ 1,059 (+4312.5%)
Mutual labels:  raytracing
manta-ray
An open source physically based renderer.
Stars: ✭ 604 (+2416.67%)
Mutual labels:  ray-tracer
DuEngine
An efficient interactive C++ renderer for ShaderToy-alike demos with 2D/3D/CubeMap/Video/Camera/LightField/Volume textures. (Partially used in my I3D 2018 papers)
Stars: ✭ 62 (+158.33%)
Mutual labels:  raytracing
Monte-Carlo-Path-Tracer
A realistic Monte Carlo Path Tracer project for CS230 (Virtual Reality and Interactive 3D Graphics Display), ACM Class, SJTU
Stars: ✭ 19 (-20.83%)
Mutual labels:  raytracer

Tracey

3d Ray Tracer written in C++ (multithreaded)

Final images

5.8 min, 1080p, glass smoothed bunny

.obj file model rendering

Smoothed stanford bunny (4968 triangles) Not smoothed stanford bunny (4968 triangles)
4.4 min, 1080p, 1x SS 4.4 min, 4k, 1x SS
Smoothed elephant (1143 triangles) Not smoothed elephant (1143 triangles)
1min, 1080p, 1x SS 1min, 1080p, 1x SS

Features:

  • Multithreading
  • Triangle meshes (.obj)
  • Vertex normal interpolation (meshes)
  • Supersampling anti-aliasing
  • Blinn-Phong shading (ambient, diffuse and specular terms)
  • Hard shadows
  • Point lights
  • Depth checking
  • Reflections
  • Refractions

TODO

  • Multithread in chunks
  • Bezier curves
  • Soft shadows
  • Area Lights
  • Glossy reflections
  • Beer's law
  • Texture mapping
  • Png output (png++)
  • Transparent shadows
  • Motion blur
  • Depth of field
  • Speedup structures (kd-trees, etc.)

Geometric primitives:

  • Planes
  • Spheres
  • Triangles
  • Disks (WIP)
  • Boxes (WIP)

Ray tracing introduction (with screenshots)

Ray tracing is a 3d rendering technique that attemps to generate photorealistic images by tracing rays that are shot from every pixel of the image and applying mathematical and physical concepts to accomplish techniques described below.

Ambient Light

The light that gets scattered all around the scene, takes object ambient reflection parameter into consideration.

Diffuse lighting

Diffuse shading applies a shadow on an object by getting the cosine angle of the closest object's normal and light direction, giving the object a matte effect. The lower the angle of the light direction to the object's normal, the brighter that point of the object.

Shadows

To check if a particular point of the image is a part of a shadow, a ray is traced from an intersection point to the light source. If the intersection point to light position ray hits some object along the way, the intersection point is a shadow.

Specular lighting / Blinn-Phong illumination

Specular reflection can be observed when a light is being shone on an object with shinyness value. The result of that is a specular highlight on the surface of the object. The light source's position and the viewing angle contributes to the specular highlight's position. The light source's intensity and color define it's size and color

Reflections

Reflections are implemented by casting rays from the light source to an object and then by casting a reflection ray from intersection point of the object, directed along the reflection vector. This method is used recursively to add realism by allowing for multiple reflections in the scene.

Refractions (glass bunny)

5

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].