Andrew D. Berkebile

ruralrompSoftware and s/w Development

Dec 2, 2013 (3 years and 9 months ago)

98 views

Andy Berkebile

2225 Murray Hill Rd

Cleveland, OH 44106


Kimberly Miller

Department of English, CWRU

Guilford House

11112 Bellflower Road

Cleveland, Ohio 44106


April 4th, 2012


Dear Prof. Miller:


The following letter pertains to the submission of my proje
ct proposal entitled, “A Proposed
System Configuration for the Implementation of Real
-
Time Ray Tracing: An algorithmic
and architectural approach to ray tracing.”

This proposal corresponds to the Unit 2
assignment due on Friday 13, 2012.

It serves to see
k funding and University support for an
individual exploratory project to look into the feasibility of real
-
time ray tracing.


The writing is intended for computer science staff at Case Western and those involved
EECS research such as Prof. Marc Buchner an
d Prof. Murat Cavusoglu.

This audience will
already be acclimated with the concept of ray tracing, a computationally heavy computer
graphics operation that accurately portrays the reflection and refraction of light, color,
shadows, etc.

In my proposal, I

layout my plan to draft a computer architecture to handle
the large computational load as well as

present

the best algorithmic adaptations to achieve
fast (and potentially real
-
time) results
. In addition, I explain the importance of
reducing the
render t
ime of ray tracing as a persuasive approach to increasing the likelihood of the
acceptance of my proposal.

I would like to thank Prof. Cavusoglu, my EECS 366 Computer Graphics professor. He
introduced me to graphical concepts, and gave me an appreciation
for the complexity and
necessity for ray tracing. I would also like to thank Prof. Buchner, my potential graduate
advisor and instructor in EECS 290 Introduction to Computer Game Design for influence he
has had on my ability to implement virtual worlds.
Finally, I would like to thank you, Prof.
Miller, for assisting me in the writing process of this proposal.

Sincerely,


Andrew D. Berkebile

Andrew D. Berkebile

April, 2012

Ray Tracing Project Proposal

Berkebile
2



A Proposed System Configuration

for the Implementation of Real
-
Time Ray Tracing:


An algorith
mic and architectural approach to ray tracing



Andrew Berkebile

Case Western Reserve University EECS





Abstract

Due to the lack of widely accepted real
-
time ray tracing implementation, this project
proposal focuses on the development of an all encompass
ing approach to real
-
time ray
tracing. This proposes a 15 week examination of algorithms and hardware configurations.
The project will encompass the implementation of algorithms to
produce a recommendation
on the best performance of a ray tracer. Little

hardware implementation will be done as it is
possible to explore the use of networked processors and GPU processing, but due to an
overall lack of resources most hardware exploration will be theoretical. This proposal
consists mainly of a literature rev
iew on the concept of real
-
time ray tracing and a research
plan for the approach taken in this project. It lays out a time table for which work will be
accomplished. This proposal seeks minimal funding to cover the tuition and living costs of
the student

conducting the research. Overall this will prove beneficial to the university and
EECS department as it will expand upon the feasibility of real
-
time ray tracing in order to
generate virtual interactive worlds with a degree of realism that has yet to be
seen.
April, 2012

Ray Tracing Project Proposal

Berkebile
3

Table of Contents


1

Introduction and Description

4

1.1

Highlighted Importance

4

2

Literature Review

5

2.1

Definition

5

2.2

Importance of Ray Tracing and Real
-
Time Performance

5

2.3

Algorithmic Possibilities

6

2.4

Hardware and Architecture

6

2.5

Conc
lusion

7

3

Research Plan

7

3.1

Graphical Implementation

7

3.2

Algorithmic Exploration

7

3.3

Hardware Exploration

9

3.4

Timeline

10

3.5

Advisor Expectations

11

3.6

Qualifications

11

3.7

Budget

12

4

References

13
April, 2012

Ray Tracing Project Proposal

Berkebile
4

1

Introduction and Description



This propos
al focuses on an exploratory look into the potential hardware and
algorithmic requirements to drastically reducing the render time of a ray traced image.

Ray
tracing is a computationally intensive operation that lacks a widely accepted, feasible
hardware
and algorithm configuration to complete the task in real
-
time.

Ray tracing is the
concept in computer graphics that accurately portrays the reflection and deflection of light
and color by recursively relaying the illuminative properties of neighboring obje
cts
according to the reflection and deflection of figurative “rays”, which are 3D vectors
originating from each pixel of the image.


This is very significant because this realistic portrayal of illumination can not be
achieved easily in real
-
time, so grap
hics in virtual simulations can’t be generated with these
realistic properties.

This research will examine the requirements of real
-
time ray tracing and
will generate a plan for production of a feasible real
-
time ray tracing.

This will encompass a
theore
tical approach in hardware configuration due to the limitations of producing required
hardware and a more tangible approach to implementing possible algorithms.

This proposal
lays out a plan of work with objectives and deadlines, portrays the qualificatio
ns of the
researcher, and indicates the anticipated budget of
such a project.


1.1

Highlighted Importance


The importance of this project can most
aptly be described through the drastic difference
ray tracing has on these two separate images. The
top imag
e is a basic rasterized image with a basic
illuminate model that produces primitive behavior
of light. The bottom image is a ray traced image
that has a much higher degree of realism with
reflections and more accurate portrayal of light
April, 2012

Ray Tracing Project Proposal

Berkebile
5

and shadows. Refl
ections on these objects can be achieved through various methods such as
environment mapping, but that is simply simulating or basically “faking” reflection and can
not be applied to animated interactive scenes. They also can not easily produce effects li
ke
the light glare on the tea cup due to the spoon. That is generated by the accurate calculations
of vectors originating from the viewport (frame of the users screen).


In many ways, this still image does not do my proposal justice as render time is not

always a factor in still images. This proposed project focuses on real
-
time applications that
deal with animation and interactive behavior where render time is crucial.


2

Literature Review

2.1

Definition:


In computer graphics, ray tracing is a techniqu
e that allows for the tracking of the
behavior of light in various illumination models, reflections, refractions, and shadows. It
produces highly photo
-
realistic images but comes at a high cost, computationally speaking,
due to the extreme number of colli
sion detections and vector calculations [1][2].

2.2

Importance of Ray Tracing and Real
-
Time Performance:


This technique allows for extensive realism as it accurately portrays the behavior of
light and reflection, but this practice generally speaking take
s a very long time to render and
compute. The incredible portrayal of accurate reflections in the Pixar’s movie “Cars”
demonstrated the necessity for ray tracing as it ushered in a new standard for animated
pictures, but each frame could take up to 15 hou
rs to render without algorithmic
optimization which then may only lead to a render time of 106 minutes [1]. My proposal is
a theoretical attempt to find a combination of efficient algorithms along with a high powered
hardware architecture to render such i
mages in real
-
time. This could take society one step
closer to generating the realism in the latest Pixar movies in real
-
time animations in video
games and virtual simulations.


April, 2012

Ray Tracing Project Proposal

Berkebile
6

2.3

Algorithmic Possibilities:


There is a lot of published literature in opt
imizing ray tracing algorithmically. Many
of these publications use techniques such as caching to quickly store and load data to reuse
calculations so as to reduce the number of normal vectors, collisions, and reflective angles
[2][3][4][5]. This is grea
t from an algorithmic standpoint because the data you need at a
particular instance is readily available in hand, but that weighs greatly on hardware
requirements. Many publications on efficient ray tracing algorithms utilize parallel
processing, some of
which uses Single Instruction, Multiple Data (SIMD) instructions
[1][3]. Other publications use well known computer science algorithms like the Monte
Carlo method that uses randomness in ray tracing calculations to increase the speed of the
program though

it sacrifices a small degree of accuracy [6]. Some algorithms group rays
together so as to reduce the number of rays actually sent into a scene in a method called
coherent ray tracing [7]. There are many more manipulations you can make to traversal
func
tions [2], bounding boxes of objects [3], and other components of the ray tracing
algorithms; but, it is now time to sort through these manipulations and determine which ones
will yield the best result with the shortest render time.

2.4

Hardware and Archit
ecture:


Ray tracing is an instance where we are largely limited to the hardware and
computing power at our disposal. It is a matter of scalability and performance of massive
amounts of data in a single application or generation of an image. There are se
veral major
methods of dealing with such massive burden on a processor. One is to implement a
networked processing architecture where multiple computers are separately working to
compute the same set of rays [8]. The second method I have come across is t
he most
common, and that is the utilization of the graphics processing unit (GPU), which is much
more powerful than the central processing unit (CPU), the main processor for every day
computing [2][4][7]. The most exciting hardware solution to the ray
-
tra
cing dilemma is the
rather well known publication of a programmable Ray Processing Unit out of Saarland
University [9]. This would be a separate processor in a personal computer of even future
generation video game console that has the sole purpose of cal
culating the path of rays.
April, 2012

Ray Tracing Project Proposal

Berkebile
7

Like algorithmic improvements, there is a wide possibility of hardware solutions that are
plausible in the application of real
-
time ray tracing.

2.5

Conclusion:


Ray tracing can revolutionize realistic real
-
time graphics. I am
passionate about this
topic as a computer science major who is looking into a master’s degree in Computer
Science while specializing in virtual simulation in 2D virtual worlds. This proposal would
suggest a semester length project that would evaluate the
effectiveness of ray tracing
methods studied abroad while compiling my hypothesized implementation for the best real
-
time ray tracing performance. Realism in video game and more importantly virtual
simulation can open possibilities for a vast number of ap
plications to serve the common
good.


3

Research Plan


3.1

Graphical Implementation


The project will be executed using C++ and the OpenGL graphics library to generate
the virtual 3D objects and scenes that will be implemented. When necessary I will use the
O
penGL Shader Language (GLSL) to offload

calculations to the GPU and to portray various
effects desired in the scene.


3.2

Algorithmic Exploration


I will spend a several week period implementing ray tracing algorithms on the
Virtual Worlds Lab’s high performin
g Alienware gaming computers as a solid benchmark to
measure the efficiency of these algorithms with relation to time and space. The algorithms
will consist

of

many combinations of caching techniques, sampling techniques, grouping
techniques, bounding tec
hniques, and altered instruction uses.

Caching refers to the storing of calculated vectors. If a vector
or other figure
is
calculated at one point it is saved and stored via an index (reference pointing to this data in
April, 2012

Ray Tracing Project Proposal

Berkebile
8

memory)
for later use so a new cal
culation is not necessary. The payoff is quicker
calculation of data, but an increased need of memory not to mention the potential time
increase of accessing that memory or even swapping operations required by the operating
system to access the data if st
ored in secondary storage (though such increases in time are
menial compared to calculating something that has already been calculated in the past, it is
still impacting the overall runtime).

Sampling techniques, such as the Monte Carlo approach, use rando
mness to estimate
the location of certain objects, intersections, and critical points without actually calculating
the exact information. This is a rough estimate of
color and lighting properties along with
reflections and deflections of rays. Such algor
ithms can increase the speed of the program
by reducing the number of calculations, but can also subtly compromise the accuracy of the
scene if overused.

Grouping techniques consist of clustering rays together. If multiple rays run parallel
or close to pa
rallel in a small area, they can theoretically be combined and return the same
information from the destination of that ray as it is assumed they have the same (or close
enough) destination. This decreases the number of rays being produced and will reduce

the
run
-
time but also will subtly lower the quality of the ray tracing.

Bounding refers to multiple things. Of those are bounding boxes, which are
areas
around objects that represent the edge of that object. This makes collision detection for the
rays s
impler as it is detecting collision with the geometrically simple bounding box and not
the pixel perfect, complex geometry of the object. This may make collision calculations
simpler but may produce questionable results. Bounding also can refer to limiti
ng the
number of times a ray can reflect and refract. Obviously the fewer number of times a ray
can reflect and refract affects the render time of the image, but also affects the quality.

The final variable in the algorithmic process would be an explorati
on in my use of
instructions. The use of certain methods and commands in the OpenGL library may take
longer execution time and may have quicker alternatives. There are multiple layers of
abstraction between the code that is written in C++ and the actual
machine language. I need
to find out what ways I can achieve the quickest and shortest collection of basic instructions
that the processor can execute.

April, 2012

Ray Tracing Project Proposal

Berkebile
9

This process will consist of trial and error implementation as these components are
mixed and matched.

By the end of the
algorithmic exploration

period

a winning
combination will be determined after weighing the payoffs of every algorithm with respects
to time and space, keeping in mind that real
-
time performance is the ultimate goal.


3.3

Hardware Exploration


Part of the hardware exploration is able to be implemented while a large portion of
this phase is theoretical. Thanks to the capabilities of the Virtual Worlds Lab that ability of
exploring networked processors is feasible. This is where computations c
an be offloaded to
other computers to do the work so multiple computers can work together to accomplish the
workload. This would help alleviate the overwhelming number of calculations that one
CPU would have trouble with, but it is not really practical fo
r a consumer or ever day user of
virtual reality to have multiple computers to accomplish realistic graphics.

With the quality graphics cards in the gaming computers at the Virtual Worlds Lab,
the exploration of offloading computations onto the GPU is easi
ly done. The GPU in a
computer is more powerful that it’s CPU, and exploiting the power and ability of the GPU
can prove to be the key to accomplishing real
-
time ray tracing.

If these tests and implementations don’t prove satisfactory, theoretical proposi
tions
will be made. The implementation of a separate Ray Processing Unit (RPU) is not possible
within the scope of this project as a whole fabrication of a new motherboard design would
be necessary. Also a PCI card with its own processor is not at the im
mediate disposal of the
university and would best be further researched before
pursued. The testing of the
algorithmic and hardware implementation previously mentioned will provide enough of a
measuring stick to make an educated recommendation of further
hardware exploration such
as an RPU or PCI processor.




April, 2012

Ray Tracing Project Proposal

Berkebile
10

3.4

Timeline


This will be performed over the course of one semester so this plan will allow for 15
weeks of development. Those weeks are laid out as follows:


WEEKS 1
-
2: Development of Testing Enviro
nment



Create several 3D environments to use for benchmark testing



Use basic and complex geometric objects with multiple textures and colors



Implement accurate illumination models



Enable camera interaction and animation



Make Frames per seconds and other be
nchmarks easily accessible

WEEKS
3
-
5: Implementation of Basic Algorithms



Implement basic ray tracer



Create
basic caching algorithm to store calculated values



Implement Monte Carlo
and sampling algorithms



Explore alternative instruction sets

WEEKS 6
-
8
:
Determine Best Algorithmic Configuration



Adjust algorithms as needed



Combine components of above algorithms to determine best performance



Propose best algorithm

WEEKS 9
-
11: Implementation of Hardware Configurations



Create functioning networked p
rocessors in Virtual Worlds Lab



Explore results of offloading computations to the GPU

WEEKS 12
-
13: Compare Results to Standards of Potential Setups

April, 2012

Ray Tracing Project Proposal

Berkebile
11



Determine potential of RPU and PCI Processor in relations to ray tracing



Compare benchmark results of i
mplemented hardware systems and algorithmic
demands



Theorize best hardware configuration

WEEKS 14
-
15: Compose Final Report and Recommendation



Compose formal report on proposed ray tracer



Present to professors in field of virtual simulation and compute
r graphics


3.5

Advisor Expectations


As advisors of such a project, it is asked of you to serve as a continual reference
to
applicable material. Code review of algorithmic implementation will be necessary. It is
important that programs are implemented prop
erly with good coding standards. Checking
such work is very important. Also access to the Virtual Worlds Lab is necessary for this
project, and help acquiring time in the facility is needed.

It is beneficial for the advising professors to partake in assi
sting this project due to
the affiliation and recognition that is received in a potential publication and importance
contribution to the greater knowledge of computer graphics.


3.6

Qualifications


The EECS department has done a great job preparing for such an
d endeavor. Classes
like Algorithm and Data Structures have prepared me to adequately measure the efficiency
of an algorithm. Computer Architecture has prepared me to measure the ability of
processing performance within a hardware setup. Computer Graphi
cs provided me with the
knowledge I needed to generate virtual scenes using OpenGL.

I have experience in software engineering with Westinghouse Electric Company
where I developed software
in C++ for a nuclear power plant in South Korea. It required
high c
oding standards and introduced me to development in a professional cohesive team.
April, 2012

Ray Tracing Project Proposal

Berkebile
12

Combined with my experience coding throughout my course load at Case, I have plenty of
coding experience.


3.7

Budget


Since this is an exploratory project, no funding is requi
red for additional equipment
or resources. The objectives of the project can be accomplished within the Virtual Worlds
Lab which is available free of charge. The only cost involved with the project is the cost
associated with my tuition and living arrang
ements for the duration of the semester. The
current listings for undergraduate tuition and living expense are $38,760 and $16,607
respectively for the entire year. Splitting that equally between two semesters would yield
$27,683 per semester for both tu
ition and living expense. I have been fortunate enough to
receive $21,000 per year

($10,500 per semester)

in scholarships
, so that would reduce the
cost of the semester to $17,183
. To receive that compensation over the course of the 15
week period would
ensure my ability to pursue this research endeavor here at Case Western
Reserve. The work of this project would be the property of the university and will serve the
purpose of the virtual worlds efforts across the EECS department.


April, 2012

Ray Tracing Project Proposal

Berkebile
13

4

References


[1]

P. Christe
nsen, J. Fong, D. Laur, "Ray Tracing for the Movie ‘Cars’,"
Pixar Animation
Studios
.

[2]

I. Wald, W. Mark, J. Gunther, "State of the Art in Ray Tracing Animated Scenes,"
Computer
Graphics Forum
, Vol. 28, no. 6, 1691

1722, September 2009.

[3]

H. Dammertz, J. Hanika
, A. Keller, "Shallow Bounding Volume Hierarchies for Fast SIMD
Ray Tracing of Incoherent Rays,"
Computer Graphics Forum
, Vol. 27, no. 4, 1225
-
1233, June
2008.

[4]

X. Yang, D. Xu, L. Zhao, "Incoherent Ray Tracing on GPU,"
Journal of Multimedia
, Vol. 5,
no. 3,
259
-
267, June 2010.

[5]

M. Hapala, J. Havran, 1st Initial. , "Review: Kd
-
tree Traversal Algorithms for Ray Tracing,"
Computer Graphics Forum
, Vol. 30, no. 1, 199

213, March 2011.

[6]

A. Kohei, "Monte Carlo Ray Tracing Simulation for Bi
-
Directional Reflectance Dist
ribution
Function and Grow Index of Tealeaves Estimations,"
International Journal of Research and
Reviews in Computer Science
, Vol. 2, no. 6, , December 2011.

[7]

K. Garanzha, C. Loop, 1st Initial. , "Fast Ray Sorting and Breadth
-
First Packet Traversal for
GPU

Ray Tracing,"

Computer Graphics Forum
, Vol. 29, no. 2, 289
-
298, May 2010.

[8]

J. Yang, S. Lee, C. Chen, "Ray tracing on a networked processor array,"
International
Journal of Electronics
, Vol. 97, no. 10, 1193

1205, October 2010.

[9]

S. Woop, J. Schmittler, P. S
lusallek, "RPU: A Programmable Ray Processing Unit for
Realtime Ray Tracing,"
ACM Transactions on Graphics
, Vol. 24, no. 3, 434
-
444, July 2010.