文件名称:
An-Introduction-to-Ray-Tracing.pdf
开发工具:
文件大小: 12mb
下载次数: 0
上传时间: 2019-07-14
详细说明:An-Introduction-to-Ray-Tracing-The-Morgan-Kaufmann-Series-in-Computer-Graphics-.pdfAn Introduction to
Ray Tracing
Edited by
ANDREW S. GLASSNER
Xerox PArc
3333 Coyote Hill Road
Palo Alto ca 94304
USA
ACADEMIC PRESS
Harcourt Brace Jovanovich, Publishers
.ondon San Diego New York. Boston
Sydney. Tokyo. Toronto
Page left intact; the license is now Creative Commons
Attribution 4.0 International ( CC BY 4.0)
https://creativecommons.org/licenses/by/4.0/
See page 2 of this PdF for details
ACADEMIC PRESS LIMITED
24/28 Oval Road, London NW1 7DX
United States Edition Published by
ACADEMIC PRESS INC
San Diego, CA 92101
Copyright 1989 by
ACADEMIC PRESS LIMITED
Third printing 1990
Reprinted 1991
All rights reserved. No part of this book may be reproduced in any form by photostat, microfilm
or any other means, without written permission from the publishers
British Library Catalo guing in Publication Data
An Introduction to ray tracing
1. Computer systems. Graphic displays. Three-dimensional images
I. Glassner. Andrew
006.6
ISBN0-12-286160-4
This book is printed on acid-free paper o
ypeset by Mathematical Composition Setters Ltd, Salisbury
Printed in Great Britain at the University Press, Cambridge
Contributors
James Arvo, Apollo Computer Inc, 330 Billerica Road, Chelmsford,
MA 01824 USA
Robert L, Cook, Pixar, 3240 Kerner Blvd, San RafaeL. CA 94901 USA
Andrew S. Glassner, Xerox PARC, 3333 Coyote Hill Road, Palo alto
CA 94304, USA
Eric Haines, 3D/Eye Inc, 2359 North Triphammer Road, Ithaca, NY
14850,USA.
Pat Hanrahan Pixar, 3240 Kerner Blvd. San Rafael, ca 94901, USA
Paul S. Heckbert, 508-7 Evans Hall, UC Berkeley, Berkeley, CA 94720
USA
David Kirk, Apollo computer Inc. 330 Billerica Road, chelmsford ma
01824,USA.( Current address: California Institute of technology
Computer Science 256-80, Pasadena, CA 91125, USA)
Contents
Contributors
Preface
1. An Overview of Ray tracing by Andrew S Glassner
2. Essential Ray Tracing Algorithms by Eric Haines
33
3. A Survey of Ray-Surface Intersection Algorithms
by Pat Hanrahan
79
4. Surface Physics for Ray Tracing
by Andrew s. Glassner
121
5. Stochastic Sampling and Distributed Ray Tracing
by robert L. cook
.16
6. A Survey of Ray Tracing Acceleration Techniques
by James arvo and david Kirk
20
7. Writing A Ray Tracer by Paul S. Heckbert
263
8. A Ray Tracing Bibliography by Paul S. Heckbert
and eric haines
295
9. A Ray Tracing Glossary by Andrew S Glassner
305
Index
323
Preface
This is a book about computer graphics, and the creation of realistic images
By 'realistic' we mean an image that is indistinguishable from a photograph of
a real, three-dimensional scene Of the many computer techniques that have
been developed to create images, perhaps the algorithm called ray tracing is
now the most popular for many applications. Part of the beauty of ray tracing
is its extreme simplicity once you know the necessary background, the
whole thing can be summed up in a paragraph
This book begins with an introduction to the technique of ray tracing,
describing how and why it works. Following chapters describe many of the
theoretical and practical details of the complete algorithm
Id like to say something about how ray tracing came about in computer
graphics, and how this book in particular came to be. Then I'll briefly
summarize the various chapters
A BIT OF HISTORY
Finding a way to create photorealistic images has been a goal of computer
graphics for many years. Generally, graphics researchers make progress b
first examining the world around them, and then looking at the best
computer-generated images made to date. If the computer image doesn't look
as good (and even now, it usually doesn't), one asks, 'What's missing from the
computer picture?' In the beginning, many features of real scenes were
rapidly included in computer-generated images. Some of these improvements
were made by noting that opaque objects hide objects behind them, shiny
objects have highlights, and many surfaces have a surface texture, such as a
wooden grain Methods were developed to include these effects into computer
generated scenes, and so those images looked better and better
One of the first of these successful image synthesis methods started with an
idea from the physics literature. When designing lenses, physicists tradition-
ally plotted on paper the path taken by rays of light starting at a light source,
then passing through the lens and slightly beyond. This process of following
the light rays was called ray tracing
Several computer graphics researchers thought that this simulation of light
physics would be a good way to create a synthetic image. This was a good
idea, but unfortunately in the early 1960s computers were too slow to make
images that looked better than those made with other, cheaper image
x. Preface
synthesis methods. Ray tracing fell out of favor, and not much attention was
paid to it for several years
As time went by, a flurry of other algorithms were developed to handle all
kinds of interesting aspects of real photographs: reflections, shadows, motion
blur of fast-moving objects, and so on. But most of these algorithms only
worked in special cases, and they usually didn't work very well with each
other. Thus you would find a picture with shadows, but no transparency, or
another image with reflection, but no motion blur
As computers became more powerful, it seemed increasingly attractive to
go back and simulate the real physics. The ray tracing algorithm was extended
and improved, giving it the power to handle many different kinds of optical
ettects
Today ray tracing is one of the most popular and powerful techniques in the
image synthesis repertoire: it is simple, elegant, and easily implemented
There are some aspects of the real world that ray tracing doesnt handle very
well(or at all! ) as of this writing. Perhaps the most important omissions are
diffuse inter-reflections(e. g. the "bleeding,of colored light from a dull red file
cabinet onto a white carpet, giving the carpet a pink tint), and caustics
(focused light, like the shimmering waves at the bottom of a swimming pool)
Ray tracing may one day be able to create images indistinguishable from
photographs of real scenes -or perhaps some other, more powerful
algorithm will be developed to take its place. Nevertheless, right now many
people feel that ray tracing is one of the best overall image synthesis
techniques we've got, and as work continues it will become even more efficient
and realistic
HOW THIS BOOK CAME TO BE
This book is a revised and edited version of reference material prepared for an
intensive one-day course on ray tracing. Since this book grew out of the
organization and goals of the course. Id like to describe how the course came
about, and what we were trying to do with this material
In late 1986. I felt that there was a need to have an introductory course on
ray tracing at the annual meeting of SIGGRAPH (the Special Interest Group on
Computer Graphics, which is part of the ACM, the society of computer
professionals). Each year SIGGRAPH mounts a very large conference, covering
many aspects of computer graphics. An important part of each SIGGRAPH
conference is the presentation of one-day courses. There have been several
courses at recent SIGGRAPHS reviewing developments in ray tracing for
experts, but I felt that ray tracing had become popular enough that there
should be an introductory course
Preface
I made some phone calls, and gathered together a group of internationally-
recognized researchers in the field to present our new course. Our goal from
the beginning was to teach to a 'typical SIGGRAPH audience: artists,
managers, scientists, programmers, and anyone else who was interested
Most siggraph courses include some kind of course notes handed out to
attendees. Since part of the reason we were teaching the course was that there
was no introductory material available, we decided to write our own. As
chairman of the course, I decided to ask everyone to write original
high-quality material for our course notes, and happily most of the speakers
had the time and energy to do so
The course's name was An Introduction To Ray Tracing. It was a great
success at SiGGRAPH 87 in Anaheim
it was one of the two most
heavily-attended courses. The response in 1987 was very good, so we decided
to give the course again. With a slightly different cast we repeated the course
at SIGGRAPH 88 in Atlanta. We took the opportunity to revise and improve
the notes
This book is essentially the notes from SIGGRAPH 88, edited and
improved. It includes a few things we couldn't get into the notes, or that
didn't come across well: color plates, good black-and-white images,a
bibliography, and a glossary
A QUICK LOOK AT THE CONTENTS
As you look over the book, remember that the level of the material varies
considerably from chapter to chapter. Some chapters are very basic and
assume little background, while others expect you to have some mathematical
experience. The more complex chapters are for more advanced study: you can
get quite far with just the less mathematical chapters
The book begins with 'An Overview of Ray Tracing. This opening chapter
assumes little background from the reader. We tell how a synthetic image is
produced, and how ray tracing works to create an image. When you're done
reading this, you won't be in a position to write a program, but you should be
able to understand ray tracing discussions, including most of the other
chapters
We then discuss Essential Ray Tracing Algorithms. The fundamental
operation in any ray tracing program is the intersection of a ray with an
object. Because it's such an important step, it is important to understand it
clearly. We show how to find the intersection of a ray with several important
shapes, and how to write the necessary computer procedures
More complicated kinds of objects are discussed in 'A Survey of Ray-
Object Intersection Algorithms'. Because more complex shapes have more
PI
reface
complex mathematical descriptions, the math in this section is necessarily
more involved. You dont need to understand everything in this chapter to get
started in ray tracing: it's more of a springboard to help you move on to more
advanced topIcs, once you ve got some momentum
To properly compute how rays interact with surfaces, we discuss Surface
Physics for Ray Tracing,. This chapter gives a lot of basic information that
you'll need to actually get your programs running, including color descrip
tions, laws of optics, and surface coloring
If you're not careful, computer-generated pictures will contain lots of ugly
artifacts that don t belong in a picture, due to the nature of digital computers
and the ray tracing process itself. We discuss those artifacts and how to avoid
them in "Stochastic Sampling and Distributed Ray Tracing. The material in
this chapter will help your pictures avoid nasty artifacts that dont belong in a
realistic picture
A Survey of Ray Tracing Acceleration Techniques' addresses the issue of
speed. The basic ray tracing algorithm is extremely simple, but also extremely
slow. It's like saying, To build a sand dune, pick up a grain of sand, and
carry it over to where you're building the dune: do this over and over again
The instructions are correct, but painfully slow. Lots of research has gone into
ways to make ray tracing programs run faster. The bad news is that most of
these techniques greatly complicated the basically simple and elegant ray
tracing algorithm. The good news is that by using these methods you can
make a picture much faster than with straightforward techniques
By the time you reach the end of the book, you 'll be ready for hints on
Writing A Ray Tracer. Writing a program is usually greatly simplified if
you have a plan of attack, or a structure for building the various pieces and
describing their interconnections. In this chapter we give a good organization
for a ray-tracing program that is both simple to build and easy to extend. The
concepts are illustrated with sample code in the C programming language
Where can you go for more information? Well, each chapter in the book
comes with its own bibliography, keyed to the material in that chapter. If you
want more, then you can consult the Ray Tracing Bibliography
If you forget the meaning of a word, you can probably find it in 'A Ray
Tracing Glossary. Here we give definitions for most of the important terms
used in this book, plus some other terms that you might find in the literature
Some of the entries are illustrated, since after all this is a book on graphics
ACKNOWLEDGEMENTS
The SIGGRAPH course and this book represent the combined efforts of many
people. Thanks to Mike and Cheri Bailey, who together administered the
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.