Parallel Functional Programming Project: Parallel Ray Tracer
Parallel Functional Programming Project: Parallel Ray Tracer
Garrison Grogan, UNI gg2652
December 17 2019
1 Introduction
I chose to write a very simple parallel ray tracer in Haskell. A ray tracer is a computer graphics program which, given a description of a scene, produces a photo realistic image through a ray tracing algorithm. The ray tracing algorithm in short shoots many rays from light sources in the scene, and calculates intersections between those rays and objects in the scene. Depending on the light source types implemented and material types implemented, this can produce a wide range of effects like reflections, refractions, global illumination, diffuse shading, etc.
I started with a reference description of a non paralleled ray tracer. I updated the code to follow more modern Haskell conventions, compile without warning on new versions of GHC, and made some changes changes to the parser, as well as the way rays were calculated. The full code can be found in the code listing section. It was compiled and tested using GHC 8.6.5. See the README in the included source code for full instructions on compiling and running the program. Use the included example scenes to see how to make new scene files.
The original code for calculating the rays was:
{- r e t u r n s a c o l o r a r r a y r e p r e s e n t i n g t h e image -} getImage : : Int -> R e s o l u t i o n -> Scene -> [ C o l o r ] getImage d r@ ( rx , ry ) s = [ image ( fromIntegral x , fromIntegral (-y ) ) | y Scene -> [ C o l o r ] getImage d r@ ( rx , ry ) s = concat $ w i t h S t r a t e g y ( p a r B u f f e r n r d e e p s e q )
(map imagec $ chunks [ ( fromIntegral x , fromIntegral (-y ) ) | y ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- writing network drivers in haskell
- funkcioná lis prográmozá s aszódi józs
- stephen a edwards
- parallel functional programming project parallel ray tracer
- the magic of haskell
- isa formal spec technical group update risc v
- uh faculty
- game programming in haskell leanpub
- a tour of the haskell prelude
- functional reactive programming for real time and cyber
Related searches
- functional and non functional requirements
- john hopkins free tracer course
- cdc covid tracer jobs
- functional organizational structure project management
- joint commission tracer portal
- joint commission tracer observation form
- computer programming project ideas
- advanced programming project ideas
- functional matrix project management
- physiologic tracer activity in kidneys
- physiologic tracer activity meaning
- physiologic tracer activity