Personal tools
User menu

Ray-Tracing Application

Jump to: navigation, search

Ray tracing applications naturally consist of three logic parts. The first part of the application comprises the generation of the rays. The next part is the second and most computational intensive part of the application, the intersection of the rays with the scene, which is to be rendered. Lastly, the calculated values are aggregated and stored to an image file in the third part. We decided to use this partition for the process network specification, as it allows us to neatly separate the intersection part, which we are interested in parallelizing as it has the biggest contribution to the application's total execution time.

The resulting layout of the process network is illustrated below:

Raytracing.png

In the resulting implementation, the Generator process calculates all rays and sends them to the Intersect processes, which is where the actual path tracing takes place by calling the process's radiance method, which recursively calls itself until either no object was intersected or the maximum depth has been reached.

!!! Dieses Dokument stammt aus dem ETH Web-Archiv und wird nicht mehr gepflegt !!!
!!! This document is stored in the ETH Web archive and is no longer maintained !!!