Archive for the ‘Rendering’ Category

CUDA Real-Time Ray Tracer

Sunday, January 3rd, 2010

During the christmas holidays i rewrote my ray tracer for the NVIDIA CUDA architecture. CUDA is extremely powerful: with an NVIDA 285 i achieved more than 250 FPS for 640×480 pixels, 57 FPS for 1080×1030.

Compare this with a similiar ray tracer running on an Intel Core i7 920.

Real-Time RayTracer running on Intel Core i7

Thursday, June 4th, 2009

Ray tracer running on an Intel Core i7 920 @2.67 MHz with Windows Vista Ultimate 64. The ray tracer uses the pthreads library for parallelization. The peak performance of 22 frames per second (FPS) is achieved with 60 threads.

See my homepage for further details.

See for the video.

Real-Time RayTracer running on Core 2 Duo

Sunday, May 24th, 2009

The peak performance is achieved with 7 threads. Programmed in C++ using the pthreads library. The background is programmed with a spheric environment map.

Machine: Macbook Pro – Intel Core Duo 2.2 Ghz, 2 GB main memory, NVIDIA 8600 GT M graphics card with 128 MB memory, MacOS X 10.5.7

See my homepage for further details.

See for the video.

An excercise in parallelization with the Cell Broadband Engine

Tuesday, May 19th, 2009

The cell broadband engine is a multi-core processor. One of the cores, the so called PPE, is a general processor that can handle I/O, memory, etc. There are 6 so called SPEs that are spezialized to number crunching. All the cores are 128-bit SIMD .

So basically there are two ways to parallelize here.

  1. Run the ray tracer on the six SPEs and merge the results.
  2. Rewrite the ray tracer to process 4 rays simultaneously using the SIMD vectors.

At the point of writing i only implemented the first point. See my homepage for details. The following film shows the ray tracer in action. The ray tracer simply splits the screen into n parts and uses an SPE for each part.

Copyright © 2007-2016 Jörn Dinkla. All rights reserved.