ArticlePDF Available

Rethinking graphics and gaming courses because of fast ray tracing


Abstract and Figures

Almost all current games are implemented using the graphics processing units (GPUs) found on almost every PC. These GPUs use the z-buffer algorithm to do visibility calculations. Ray tracing, an alternative to the z-buffer algorithm, delivers higher visual quality than the z-buffer algorithm but has historically been too slow for interactive use. However, ray tracing has benefitted from improvements in computer hardware, and many believe it will replace the z-buffer algorithm as the visibility engine in games. If that replacement happens, it will imply fundamental changes in both the API to and capabilities of 3D graphics engines. This paper discusses the implications for games and graphics oriented classes should this switch to ray tracing occur.
Content may be subject to copyright.
Rethinking Graphics and Gaming Courses Because of Fast Ray Tracing
Peter Shirley
U of Utah
Kelvin Sung
U of Wash., Bothell
Erik Brunvand
U of Utah
Alan Davis
U of Utah
Steven Parker
U of Utah
Solomon Boulos
U of Utah
Figure 1: Ray tracing can robustly and naturally support next generation visual effects not easily combined with GPU graphics including
depth-of-field, motion blur, glossy and specular reflection, soft shadows, and correct refraction. More details on the system that generated of
these images are available in Boulos et al. (2006).
Almost all current games are implemented using the graphics pro-
cessing units (GPUs) found on almost every PC. These GPUs use
the z-buffer algorithm to do visibility calculations. Ray tracing, an
alternative to the z-buffer algorithm, delivers higher visual quality
than the z-buffer algorithm but has historically been too slow for
interactive use. However, ray tracing has benefitted from improve-
ments in computer hardware, and many believe it will replace the
z-buffer algorithm as the visibility engine in games. If that replace-
ment happens, it will imply fundamental changes in both the API
to and capabilities of 3D graphics engines. This paper discusses the
implications for games and graphics oriented classes should this
switch to ray tracing occur.
1 Introduction
At present almost every personal computer has a dedicated proces-
sor that enables interactive 3D graphics. These graphics processing
units (GPUs) implement the z-buffer algorithm introduced in Cat-
mull’s landmark University of Utah dissertation [Catmull 1974].
These GPUs can interactively display several million triangles with
texture and lighting. The wide availability of GPUs has revolution-
ized how work is done in many disciplines, and has enabled the
hugely successful video game industry. While the hardware imple-
mentation of the z-buffer algorithm has allowed excellent interac-
tivity at a low cost, significant improvements in visual quality will
require Whitted’s ray tracing algorithm [Whitted 1980] or Cook’s
distribution ray tracing algorithm [Cook et al. 1984] which allow
many advanced visual effects (Figure 1). The ray tracing algorithm
is better suited to huge datasets than the z-buffer algorithm because
it creates an image in time sublinear in the number of objects while
the z-buffer is linear in the number of objects. It is ray tracing’s
larger time constant and lack of a commodity hardware implemen-
tation that makes the z-buffer a faster choice for data sets that are
not huge. Ray tracing is better suited for creating shadows, reflec-
tions, and refractions because it directly simulates the physics of
light. Ray tracing enables these forms of isolated visibility queries
that are problematic (or impossible) for the z-buffer algorithm. Ray
tracing also allows flexibility in the intersection computation for
the primitive objects that allows non-polygonal primitives such as
splines or curves to be represented directly. Unfortunately, comput-
ing these visual effects based on simulating light rays is computa-
tionally expensive, especially on a general purpose CPU. The ray
tracing algorithm currently requires tens to hundreds of CPUs to be
interactive at full-screen resolution.
Games have driven almost all desktop 3D graphics, and we believe
that trend will continue. Because ray tracing is well-suited to sup-
port a qunatum leap in the ability of games to support higher-order
surfaces, complex models, and high quality lighting, we believe
games willmigrate to using itonce raytracing is fast enough. In this
paper we argue that it is feasible to make ray tracing fast enough,
and that this implies that migration will take place. Because this
implies a basic change of algorithm, it will have major effects on
both future games and future graphics courses. The main purpose
of this paper is to examine what those effects might be.
2 Ray tracing versus rasterization
In this section we review the ray tracing and z-buffer algorithms,
the applications that use them. Current GPUs are based on the
z-buffer [Catmull 1974] which is a straightforward algorithm. In
hardware implementations it typically has two frame buffers for
color and one for z (depth) values. While computing one of the
color buffers (the “back” buffer), it displays the other (the “front”
buffer). When all of the colors are computed in the back buffer, the
two buffers are “swapped” (the front becomes the back and vice-
versa) and the new set of colors are displayed. The z-buffer is only
used while computing the new colors in the back buffer. Computing
the back buffer is a loop over all triangles:
initialize all pixel colors to background color
initialize all pixel z values to
for all N triangles do
for each pixel p that triangle might be seen through do
compute color c
and depth z
if z
< z
= c
= z
ray tracing
Figure 2: Top: the z-buffer algorithm projects a triangle toward the
nine pixel screen and writes all pixels with the distance to the eye
(the “z” value) and its color unless a smaller distance is already
written in the z-buffer. Bottom: the ray tracing algorithm sends a
3D half-line (a “ray”) into the set of objects and finds the closest
one. In this case the triangle T
is returned.
The if statement is how the hidden surface eliminationremains sim-
ple; overlapping polygons settle their order by means of storing the
closest depth value seen so far in the triangle loop. This algorithm’s
runtime is proportional to the number of triangles N. While the al-
gorithm can be made sub-linear through occlusion culling [Bittner
et al. 2004], randomized culling [Wand et al. 2001], and by level-
of-detail management [Luebke et al. 2002], these techniques add
complexity and data restrictions to the implementations.
The z-buffer algorithm has difficulty in three main areas: ren-
dering images with shadows and mirror-like reflections and re-
fractions, rendering images with extremely large data sets, and
rendering images with primitives that are not simple triangles.
The ray tracing algorithm loops over pixels rather than ob-
for all P pixels do
find the nearest object seen through that pixel
This loop “finds the nearest object” by doing a line query in 3D
(Figure 2). Some implementations do “double-buffering” like the
z-buffer above, but the algorithm above is inherently “frameless” in
that a pixel can be immediately updated when computed. Frameless
implementations have some advantages in responsiveness [Bishop
et al. 1994; Parker et al. 1999; Woolley et al. 2003], and are prob-
lematic for the z-buffer which does not know the color of any pixel
until the end of its main loop.
There are five key advantages of ray tracing:
1. for preprocessed models, ray tracing is sub-linear in N [Cleary
et al. 1983], so for some sufficiently large value of N it will
always be faster than a z-buffer which is linear in N;
2. ray tracing can process curved surfaces such as splines in their
native form [Martin et al. 2000];
3. ray tracing can naturally support volume data with partial
transparency [Upson and Keeler 1988];
4. because a raytracing program must perform a3D line query, it
matte plane
glass sphere
viewing ray
refracted ray
reflected ray
viewing ray
Figure 3: Ray tracing can easily generate shadow rays, reflected
rays, and refracted rays. These rays need not have a shared origin
so they are difficult to duplicate for a z-buffer algorithm.
Figure 4: In distribution ray tracing, multiple samples are taken per
pixel and these are used both for antialiasing and other effects such
as soft shadows as is shown here by sampling different points on an
area light source.
can reuse this linequery toeasily generateshadowsand reflec-
tions that also depend on a 3D line query (Figure 3) [Whitted
5. the ray tracing algorithm is highly parallel, and has been
demonstrated to have over 91% parallel efficiency on 512 pro-
cessors [Parker et al. 1999].
While the z-buffer can be made to do specular reflections and shad-
ows [Stamminger and Drettakis 2002; Wyman 2005], the underly-
ing techniques are neither general nor robust. However, the z-buffer
algorithm does currently have two important advantages over ray
tracing: although it is linear in N, it has a very low time constant so
it can render scenes with moderate N very quickly; it has a mass-
produced hardware implementation available that has lowered the
time constant even further. Because the N for real applications isin-
creasing exponentially for most applications, the time constant ad-
vantage is of decreasing importance. Further, the ubiquitous special
purpose hardware exaggerates the time constant difference between
ray tracing and the z-buffer approaches.
Ultimately, we expect distribution ray tracing (Figures 4 and 5) to
end up on the desktop because of its higher image quality. However,
because it requires tens of samples per pixel, it is intrinsically more
expensive than traditional Whitted-style ray tracing.
Simulation and games demand interactivity and currently use z-
buffer hardware almost exclusively. However, they spend a great
deal of effort and programmer time creating complicated “hacks”
to fake lighting effects and reduce N by model simplification and in
the end they have imagery of inferior quality to that generated by
ray tracing. Those industries would use ray tracing if it were fast
Figure 5: Left: ray tracing with shadows only with 1 sample per pixel. Middle: Whitted-style ray tracing with 1 sample per pixel. Right:
distribution ray tracing with 64 samples per pixel. We expect Whitted-style ray tracing to soon be on the desktop, and distribution ray tracing
to later follow.
3 Why we think ray tracing is coming
In this section we examine exactly what the gap is between current
ray tracing performance and that needed for games, and speculate
on how that gap will be closed.
Because the console market is so influential in the games market,
we assume a 1080p monitor (an HDTV screen with about two mil-
lion pixels) at 60Hz. Our own software implementation of Whitted
ray tracing runs at approximately 1 million pixels per second per
core on complex scenes (hundreds of thousands of primitives) on
a 2GHz Opteron 870. For distribution ray tracing with 64 samples
per pixel we are about 100 times slower than that. The slowdown
is more than a factor of 64 because in addition to using 64 times
as many samples, the spread of rays resulting from sampling ar-
eas such as lights decreases coherence and adds some per-sample
computation. So in software on one core with current CPU tech-
nology we are approximately a factor of 100 away from our 60Hz
2 million pixel goal, and for distribution ray tracing we are approx-
imately a factor of 10,000 away. So we believe we need improve-
ments of about 100 times over current one-core software systems
for ray tracing to be fluid for games, and a further factor of 100 for
distribution ray tracing to become fluid.
For adequate, as opposed to ideal, performance, we could also as-
sume 480p30 (300k pixels, 30Hz). Further, we could use 16 sam-
ples per pixel for distribution ray tracing. This puts us less a factor
of ten away for one core for Whitted-style ray tracing and less than
a factor of 200 for distribution ray tracing for one core. Given that
eight core CPUs are on the horizon, and dual CPU quad-core sys-
tems are available now, Whitted-style ray tracing in softwareshould
be fluid quite soon on the desktop with a 480p30 display.
Because clock speeds and process sizes are unlikely to shrink much
more [sia 2004], to gain a factor of 100 over current one core sys-
tems, a change of architecture is probably needed. Current GPUs
have impressive raw performance, but so far they have not been
shown to be efficient for ray tracing [Purcell et al. 2002]. More
promising are architectures such as Intel’s Tera-scale prototype
that use tens of simple cores with good floating point capabilities.
Such chips would surely be better suited to ray tracing than current
general-purpose CPUs, and would probably be sufficient for 1080p
Whitted-style ray tracing. For distribution ray tracing, a special
purpose ray tracing chip may be needed. A prototype ASIC design
indicates thatthis is probably a practical route even if improvements
in process are slow from now on [Woop et al. ].
In summary, Whitted-style ray tracing at 480p30 is already fluid
for complex models on 8 core systems. Improvements to hardware
should allow a gradual migration to 1080p60 and later distribution
ray tracer. Thebasic issuesfaced byusers andprogrammers willnot
be influenced much by thatmigration. Because of ray tracing’s high
visual quality, it should have a market, and games programmers will
need to understand ray tracing.
4 Impact on Computer Graphics Courses
Over the past two decades computer graphics courses [Cunning-
ham et al. 1988; Grissom et al. 1995; Hitchner et al. 1999; Angel
et al. 2006] exhibit a pattern of curriculum refinement driven by
the changes in graphics hardware. Although the foundations in the
field remain the same, the subset of these concepts covered and the
context for which these concepts are presented have evolved sig-
nificantly. For example, 20 years ago learning and practicing raster
line drawing algorithmswere relevant, while with currentGPUs itis
more important to understand and practice the mathematics behind
interactive camera control. If we are correct that ray tracing will re-
place z-buffer then computer graphics courses will once again need
to evolve.
Just as real time z-buffer hardware did not alter the core concepts in
computer graphics, we do not expect real time ray tracing hardware
to fundamentally impact the discipline. The topics covered in an in-
troductory course will continue to be foundational concepts [Angel
et al. 2006] such as transformation, hierarchical modeling, illumi-
nation models, camera modeling. However, as in the case of real
time z-buffer, we expect the priority and context to evolve. We now
list the biggest likely changes in emphasis.
Illumination models. Ray tracing integrates visibility and illu-
mination computations. For example, shadows are computed as
part of visible energy received from the light source, and reflection
is computed as visible energy received from the mirror reflection
direction. In this way, many common physical effects that are cur-
rently referred to as “special effects” (e.g., transparency, reflection,
etc.) will evolve back into their natural illumination computations.
Perspective t ransform and homogeneous coordinate. Ray
tracing simulates perspective naturally. For this reason, the mathe-
matics model that simulates foreshortening and the associated ho-
mogeneous coordinate system will become less important. This
will simplify the traditional transformation pipeline, where the last
stage of the pipeline, projection transform, will not be needed any-
Higher-order surfaces. Ray tracing computes visibility by
mathematically intersecting a line and a primitive. It is straight-
forward to ray trace mathematically defined higher-orders surfaces
such as trimmed NURBS. Without tessellation, higher-order prim-
itives have much more compact representations while retaining all
the original geometric integrity. Forexample, animplicit spherecan
be represented by a handful of variables while the mathematic ex-
pression maintainsquadratic continuity throughoutthe surface. The
current heavier emphasis on object models based on tessellated tri-
angle meshes will shift towards modeling based on surfaces’ native
Volumetric effects. Ray tracing supports volumetric data natu-
rally. Volumetric effects like arial fog or more general participating
media (e.g, smoke) can be modeled as semitransparent volumet-
ric primitives with dedicated illumination models. The needs for
special case shaders, tricks, and hacks for such effects will greatly
5 Impact on Computer Gaming Courses
The front end visualization of interactive computer games depends
on computer graphics. Conversely, it is also true that computer
gaming is the single most important factor driving the develop-
ment of computer graphics hardware. For these reasons, when
discussing impacts of interactive ray tracing, we should also ex-
amine the effects on computer games. Future computer games
will take advantage of the new functionality: the faster ray trac-
ing hardware, and the drastically improved realism. As educators,
our tasks are to analyze and understand how to evolve computer
gaming courses/curricula accordingly.
The development of courses/curricula associated with computer
gaming has lagged behind the industry quite significantly. While
computer gaming has been around in different forms for many
decades, the first classes dedicated to games development has be-
come available only in the early 1990s [Parberry et al. 2006]. Dur-
ing these early times there were very few computer gaming related
classes. Most of the efforts in incorporating gaming into computer
science classes/curricula had begun only recently (e.g., [Coleman
et al. 2005; Parberry et al. 2005; Maxim 2006; DXFramework
2006; MUPPET 2006; Parberry 2006]). In addition, many of these
efforts represented strategies to increase interest and enthusiasm for
the discipline to counter the drastic downturn in enrollments [Vegso
2005]. Computer gaming as a discipline in computer science is a
The following discussion is organized based on the framework de-
scribed in Sung et al. [2007], where we discuss the effects of in-
teractive ray tracing in each of the: games programming, games
development, and games clients categories.
Games programming classes. These are classes that study gen-
eral issues related to programming computer games (e.g., Kuffner’s
CMU course [Sweedyk et al. 2005]). The following are games re-
lated programming issues associated with fast ray tracing.
Ray tracing is capable of computing line/primitive intersec-
tion extraordinarily fast. The intersection computation is the
foundation for supporting collision and selection. From the
games programming perspective, the challenge would be to
efficiently integrate this functionality into the core of games
engine. In addition, the entire collision subsystem should be
reevaluated. For example, with the ray tracing collision sup-
port, the merit of support collision primitives becomes ques-
Ray tracing naturally supports partial redraw where redraws
only need to occurr in regions that changed from previous
frame. This means polygon/primitive count will not be the
only factor affecting the bottom-line frame rate. In this case,
the frame-to-frame coherency may be even more important.
From games programming perspective, it is important to un-
derstand and take advantage of temporal coherence.
Games development classes. These are classes that study how
to design new games as an end product (e.g., [Jones 2000; Coleman
et al. 2005; Parberry et al. 2005]). Students in these classes must
be concerned with all aspects of a real game production including
entertainment value, visual quality, audio effects, etc. For these
classes, the challenges are in game design to improve the aesthetic
and the general game play experience based on the new functional-
As discussed, many existing special effects will become com-
mon and natural illumination effects with ray tracing. Not
being special means there will be no special restrictions asso-
ciated with the effects (e.g., no restriction on mirror must be
planar). However it is also true that the computations of these
effects will not be free or cheap. For example, although any
and every object in a scene can be reflective, it is always faster
to compute the frame with no reflections. In games develop-
ment classes, students must learn to balance the new found
flexibility, against the associated cost to achieve the specific
aesthetic needs of their games.
As discussed, the ray tracing hardware supports efficient col-
lision detection, and the ray tracing paradigm supports partial
redraw. These two characteristics suggest that as long as we
limit the changes in consecutive frames, we can design and
interact with scenes of high complexity. For example, walk-
ing into a room full of objects with detailed geometry with the
ability to interact (e.g., pickup and open) with any object.
Games clients classes. These are classes that use gaming as
vehicles for delivering specific concepts (e.g., [da Silva 2006b;
da Silva 2006a; Sung et al. 2007]). These classes are applications
of computer gaming, we expect the impact on classes in this cate-
gory to be indirect and minimal.
Discussion. Our outline of changes to courses above is by no
means exhaustive. Our areas of expertise are in computer graphics
and computer architecture. Based on our knowledge, we predict
interactive ray tracing will become more prominent in the near fu-
ture. Because of our background, and because computer graphics
is a better established field, we have some understanding on the
impact of this upcoming change with respect to computer graph-
ics. We believe ray tracing will also significantly impact computer
gaming and computer gaming related classes. In this last section,
we presented our speculations, but we are not as confident in these
ideas as games classes are much less well established than graphics
This work is supported in part by the National Science Founda-
tion grants DUE-0442420, NSF-0541009, and NSF 03-06151; and
a grant from the Microsoft Research Gaming RFP award number
15871. All opinions, findings, conclusions, and recommendations
in this work are those of the authors and do not necessarily reflect
the views of the National Science Foundation or Microsoft.
2006. Teaching computer graphics without raster-level algo-
rithms. In Proceedings of SIGCSE, 266–267.
1994. Frameless rendering: Double buffering considered harm-
ful. In Proceedings of SIGGRAPH, 175–176.
OFER, W. 2004. Coherent hierarchical culling: Hardware oc-
clusion queries made useful. Computer Graphics Forum 23, 3,
KAUTZ, J., SHIRLEY, P., AND WALD, I. 2006. Packet-based
whitted and distribution ray tracing. Tech. Rep. UUCS-06-013,
School of Computing, University of Utah.
CATMULL, E. 1974. A Subdivision Algorithm for Computer Dis-
play of Curved Surfaces. PhD thesis, University of Utah.
1983. A Parallel Ray Tracing Computer. In Proceedings of the
Association of Simula Users Conference, 77–80.
2005. Game design & programming concentration within the
computer science curriculum. In Proceedings of SIGCSE, 545–
tributed ray tracing. In Proceedings of SIGGRAPH, 165–174.
OHLSON, M. 1988. Varieties of computer graphics courses in
computer science. In Proceedings of SIGCSE, 313–313.
DA SILVA, F. S. C., 2006. Artificial intelligence for com-
puter games. University of Sao Paulo (USP/SP), Microsoft
Academic Alliance Repository Newsgroup, Object ID: 6210,
DA SILVA, F. S. C., 2006. Software enginnering for com-
puter games. University of Sao Paulo (USP/SP), Microsoft
Academic Alliance Repository Newsgroup, Object ID: 6211,
DXFRAMEWORK, 2006. Dxframework: A pedagogical
computer game engine library. University of Michigan,
SCHWEITZER, D. 1995. Approaches to teaching computer
graphics (abstract). In Proceedings of SIGCSE, 382–383.
R. 1999. Computer graphics: the introductory course grows up.
In Proceedings of SIGCSE, 341–342.
JONES, R. M. 2000. Design and implementation of computer
games: a capstone course for undergraduate computer science
education. In Proceedings of SIGCSE, 260–264.
VARSHNEY, A. 2002. Level of Detail for 3D Graphics. Elsevier
Science Inc., New York.
Practical ray tracing of trimmed nurbs surfaces. Journal of
Graphics Tools 5, 1, 27–52.
MAXIM, B., 2006. Game design and implementation 1 and 2. Mi-
crosoft Academic Alliance Repository Newsgroup, Object ID:
MUPPET, 2006. Multi-user programming pedagogy for en-
hancing traditional study. Rochester Institute of Technology,
perience with an industry-driven capstone course on game pro-
gramming: extended abstract. In Proceedings of SIGCSE, 91–
The art and science of game programming. In Proceedings of
SIGCSE, 510–514.
PARBERRY, I., 2006. Sage: A simple academic game engine. Uni-
versity of North Texas,
B., AND HANSEN, C. 1999. Interactive ray tracing. In Sympo-
sium on Interactive 3D Graphics, 119–126.
2002. Ray tracing on programmable graphics hardware. ACM
Transactions on Graphics 21, 3, 703–712.
2004. International technology roadmap for semiconductors. / Common / 2004Update / 2004Update.htm.
STAMMINGER, M., AND DRETTAKIS, G. 2002. Perspective
shadow maps. In Proceedings of SIGGRAPH, 557–562.
periencing aspects of games programming in an introductory
computer graphics class. In Proceedings of SIGCSE. to appear.
J. 2005. Computer games and cs education: why and how. In
Proceedings of SIGCSE, 256–257.
UPSON, C., AND KEELER, M. 1988. VBUFFER: Visible volume
rendering. In Proceedings of SIGGRAPH, 59–64.
VEGSO, J. 2005. Interest in cs as major drops among incoming
freshmen. Computing Research News 17, 3 (May).
AND STRASSER, W. 2001. The randomized z-buffer algorithm:
interactive rendering of highly complex scenes. In Proceedings
of SIGGRAPH, 361–370.
WHITTED, T. 1980. An improved illumination model for shaded
display. Communications of the ACM 23, 6 (June), 343–349.
2003. Interruptible rendering. In ACMSymposium on Interactive
3D Graphics, 143–151.
WOOP, S., BRUNVAND, E., AND SLUSALLEK, P. Estimating per-
formance of a ray-tracing ASIC design. In Proceedings of IEEE
Symposium on Interactive Ray Tracing, 7–14.
WYMAN, C. 2005. An approximate image-space approach for
interactive refraction. In Proceedings of SIGGRAPH.
... Conventional GPUs require an extremely fast memory bus and a very large amount of RAM for storing textures [15], [16]. Some researchers believe that if noise-based procedural textures were well supported and efficient, that many applications, specifically video games, would choose those textures over the memory-intensive image-based textures that are used today [50]. An example of a view of the Sponza scene rendered with our Perlin noise-based textures can be seen in Figure 3 ...
... Some researchers anticipate that a strong niche for real time ray tracing will involve shallow ray trees (i.e. few reflections), and mostly procedural textures [50]. Procedural textures using, for example, Perlin noise techniques [47], [48] increase FP ops by about 50% in the worst case, but have a negligible impact on memory bandwidth. ...
Full-text available
Threaded Ray eXecution (TRaX) is a highly parallel multithreaded multicore processor architecture designed for real-time ray tracing. The TRaX architecture consists of a set of thread processors that include commonly used functional units (FUs) for each thread and that share larger FUs through a programmable interconnect. The memory system takes advantage of the application's read-only access to the scene database and write-only access to the frame buffer output to provide efficient data delivery with a relatively simple memory system. One specific motivation behind TRaX is to accelerate single-ray performance instead of relying on ray packets in single-instruction-multiple-data mode to boost throughput, which can fail as packets become incoherent with respect to the objects in the scene database. In this paper, we describe the TRaX architecture and our performance results compared to other architectures used for ray tracing. Simulated results indicate that a multicore version of the TRaX architecture running at a modest speed of 500 MHz provides real-time ray-traced images for scenes of a complexity found in video games. We also measure performance as secondary rays become less coherent and find that TRaX exhibits only minor slowdown in this case while packet-based ray tracers show more significant slowdown.
... With the innovation of graphics APIs such as OpenGL and Direct3D in the 1990's, the priorities of graphics programmers shifted. In response, many instructors transformed their graphics classes to use OpenGL and emphasized interactive camera control over raster line algorithms [12]). Today, most graphics textbooks follow this newer course model and are written for students programming in C++ using OpenGL. ...
... Originally too computationally expensive to be used widely, ray tracing has become a viable rendering method in recent years. It is often used to create visual effects in movies, and some experts speculate that video games will soon be rendered with ray tracing rather than OpenGL and Direct3D [12]. ...
Full-text available
Figure 1. Examples of student work. For fun, enthusiastic students created these scenes, which showcase mirror reflections, shadows, texture maps, transparency, and Mandelbrot fractals. Abstract Ray tracing is a computer graphics technique capable of creating visual effects such as realistic soft shadows, reflections, refractions, motion blur, and depth of field. Historically considered computationally expensive, ray tracing is gaining in popularity as computing power (primarily the recent increase in the number of processor cores) continues to increase. This paper details an introductory computer graphics course taught around a Java ray tracer. For most students this was their first exposure to the field of graphics. Having programmed primarily in Java since CS 1, the students preferred Java to C++. Like any other Java program, the ray tracer ran on all platforms, minimizing students' frustrations and avoiding investment in a new IDE. For most homework assignments, students added features to a bare-bones ray tracer, converted from the C++ code in Kevin Suffern's textbook Ray Tracing from the Ground Up [13]. Additional non-ray tracing homework was also assigned to expose students to other fundamental areas of computer graphics, such as color models, transformations, viewing and event-driven interactions.
... Conventional GPUs require an extremely fast memory bus and a very large amount of RAM for storing textures [1,19]. Some researchers believe that if noise-based procedural textures were well supported and efficient, that many applications, specifically video games, would choose those textures over the memory-intensive image-based textures that are used today [29]. An example of a view of the Sponza scene rendered with our Perlin noise-based textures can be seen in Figure 2. ...
... Some researchers anticipate that a strong niche for real time ray tracing will involve shallow ray trees (i.e. few reflections), and mostly computed textures [29]. Computed textures using, for example, Perlin noise techniques [22,13] increase FP ops by about 50% in the worst case (all primitives use these procedural textures), but have a negligible impact on memory bandwidth. ...
Conference Paper
Full-text available
Ray tracing is a technique used for generating highly realistic computer graphics images. In this paper, we explore the design of a simple but extremely parallel, multi-threaded, multi-core processor architecture that performs real-time ray tracing. Our architecture, called TRaX for Threaded Ray eXecution, consists of a set of thread states that include commonly used functional units for each thread and share large functional units through a programmable interconnect to maximize utilization. The memory system takes advantage of the application's read-only access to the scene database and write-only access to the frame buffer output to provide efficient data delivery with a relatively simple structure. Preliminary results indicate that a multi-core version of the architecture running at a modest speed of 500 MHz already provides real-time ray traced images for scenes of a complexity found in video games. We also explore the architectural impact of a ray tracer that uses procedural (computed) textures rather than image-based (look-up) textures to trade computation for reduced memory bandwidth.
... With the introduction of interactive ray tracing, computer graphics courses must evolve to reflect the current trends in computer graphics research. Shirley et al. 6 have identified several areas in the design of computer graphics courses on which interactive ray tracing will likely have an impact: ...
Conference Paper
Full-text available
... Приложението което има RayTracer могат да се обобщят в следните няколко направления: учебно, изледователско, приложно. Някой от възможните му прилженния в обучението са:  Илюстриране на учебен материал с помощта на визуализация на обемни повурхнинни модели в различни области (математика, биология, химия, физика, информатика и др.);  Практически опит с модулна (plug-in) софтуерна архитектура;  Разработване на приложения в областта на генеративната компютърна графика [4];  Изледвания върху нови алгоритми за апроксимационно пресмятане на осветеност [4];  Проектиране и практическа работа с разпределено приложение;  Пренасяне на графичната рамка върху различни хардуерни архитектури [5]. Конкретни дисциплини в обучението по информатика също могат да извлекат голяма полза от прилагането на RayTracer в обучителния процес:  Линейна алгебра и аналитична геометрия: визуализиране на различни повърхнини и работа с вектори и матрици;  Диференциална геометрия: изучаване на геометричните свойства на повърхост в точката на пресичане с лъч;  Числени методи: визуална илюстрация на методи от тип Monte Carlo за пресмятане на осветеност;  Разпределени приложения: самата природа на алгоритъма за проследяване на лъчи дава възможност изчисленията да се извършват паралелно, различни части на изображението могат да се пресмятат на различни изпълнители. ...
Conference Paper
Full-text available
В доклада се обсъждат ползите от включването на фотореалистичната компютърна графика и визуализирането на данни в обучението по информатика. Разглежда се практическото приложение на метода за проследяване на лъчи в различни научни направления. Описания подход се илюстрира практически от опита, добит при провеждане на факултативната дисциплина „Ray Tracing – фотореалистични изображения” във ПУ "Паисий Хилендарски".
Conference Paper
Full-text available
يکی از محدوديت‌ها و معضلات استفاده از کامپيوتر در کارهای گرافيکی، داده‌های حجيم و بالا بودن زمان پردازش داده‌ها در بسياری از پردازش‌ها و کاربردهای گرافيکی می‌باشد. بنابراين نيازمند روش‌هايی هستيم که داده‌های گرافيکی بسيار زيادی را در زمانی معقول پردازش نمايند. پيشرفت تکنولوژی کامپيوتر در عصر حاضر، استفاده از سيستم‌های کامپيوتری موازی را در بسياری از زمينه‌ها مقدور نموده است. در اين مقاله به بررسی رديابی اشعه به صورت موازی با استفاده از سيستم‌های حافظه توزيع شده و حافظه اشتراکی به ترتيب با استفاده از MPI و OpenMP توسط يک راه‌حل شی گرا با استفاده از زبان ++C پرداخته شده که نتیجه بدست آمده نشان دهنده تسریع خطی بوده است. سپس يک مدل تحلیل کارايی با تجزيه و تحليل پيچيدگی زمان و حافظه ارائه شده است.
This article discusses the evolution of a single undergraduate computer graphics course over five semesters, driven by a primary question: if one could offer only one undergraduate course in graphics, what would it include? This constraint is relevant to many small and medium-sized colleges that lack resources, adequate expertise, and enrollment to sustain multiple courses in graphics that spread out its vast and evolving content. We strive to include material that would provide (1) a basic but solid theoretical foundation, (2) topics, data structures, and algorithms that are most practically used, (3) ample experience in actual graphics programming and (4) a basic awareness of advanced topics. We have a secondary objective of relating and complementing computer graphics knowledge and programming with topics in other computer science courses to provide a more cohesive understanding to our students. We achieve both objectives by using an “early-scenegraphs” approach to progressively create graphics applications that use XML-based modeling and both pipeline-based and ray traced rendering. We report and analyze results that show how students were able to achieve more complex results within similar time periods while largely retaining prior average student performance in the course. Students also report higher rates of satisfaction with the course when it follows our proposed approach. Pedagogically our main contribution is an evolving blueprint for a single undergraduate CG course that offers flexibility to emphasize different aspects like modeling, rendering, etc. according to the instructor’s and students’ interests, while aligning the course better within the computer science curriculum especially when resources are limited.
Full-text available
In this paper we present an implementation of parallel ray-tracing in both distributed memory and shared memory systems using MPI and OpenMP respectively. We have developed an object oriented solution using C++ and performed experiments in both the platforms. We present the performance model analysis with memory and time com-plexity analyses. Experimental results show that the implemented static load balancing technique achieves linear speedup and near optimal effi-ciency in both the cases. We also present a comparison among different load-balance scheduling schemes in OpenMP.
Conference Paper
Full-text available
The field of computer graphics has matured greatly since the formal statement of the introductory undergraduate course was created for Curriculum 91, and courses must change accordingly. This panel will describe a philosophical basis for the changes and will give some examples of courses that are responding to that change.
Conference Paper
Ray tracing is one of the most elegant techniques in computer graphics. Many phenomena that are difficult or impossible with other techniques are simple with ray tracing, including shadows, reflections, and refracted light. Ray directions, however, have been determined precisely, and this has limited the capabilities of ray tracing. By distributing the directions of the rays according to the analytic function they sample, ray tracing can incorporate fuzzy phenomena. This provides correct and easy solutions to some previously unsolved or partially solved problems, including motion blur, depth of field, penumbras, translucency, and fuzzy reflections. Motion blur and depth of field calculations can be integrated with the visible surface calculations, avoiding the problems found in previous methods.
Game programming classes have been offered at the Univer- sity of North Texas continuously since 1993. The classes are project based, and feature collaborative coursework with art majors in UNT's School of Visual Arts. We discuss the de- sign that enables them to simultaneously provide both train- ing for students intending employment in the game industry, and a capstone experience for general computer science un- dergraduates.
SAGE is a simple academic game engine for use in a game pro- gramming class in the undergraduate Computer Science curricu- lum, designed specifically as a core onto which students can add their own game engine features. SAGE consists of a sequence of demos written in C++ using Microsoft DirectX, each extending its predecessor in a process called incremental development. Incre- mental development is a proven pedagogical technique used for the education of game programmers at the University of North Texas since 1997.