-
Notifications
You must be signed in to change notification settings - Fork 844
/
index.html
87 lines (62 loc) · 4.54 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<!DOCTYPE html>
<meta charset="utf-8">
<title>Ray Tracing in One Weekend Series</title>
<link rel='stylesheet' href='style/website.css'>
<link rel="icon" type="image/png" href="favicon.png">
<div class="content">
<h1 class="title">Ray Tracing in One Weekend<br>—<br>The Book Series</h1>
<div class='books'>
<a href='books/RayTracingInOneWeekend.html'>
<img src='images/cover/CoverRTW1-small.jpg' width='204' height='340' alt='Ray Tracing in One Weekend'>
</a>
<a href='books/RayTracingTheNextWeek.html'>
<img src='images/cover/CoverRTW2-small.jpg' width='204' height='340' alt='Ray Tracing: The Next Week'>
</a>
<a href='books/RayTracingTheRestOfYourLife.html'>
<img src='images/cover/CoverRTW3-small.jpg' width='204' height='340' alt='Ray Tracing: The Rest Of Your Life'>
</a>
</div>
<h1 id='books'>Getting the Books</h1>
<p>The <cite>Ray Tracing in One Weekend</cite> series of books are available to the public for free online. They are
released under <a href="https://github.com/RayTracing/raytracing.github.io/blob/release/COPYING.txt">the CC0
license</a>. This means that they are as close to public domain as we can get. (While that also frees you from the
requirement of providing attribution, it would help the overall project if you could point back to this web site as a
service to other users.)
<p>Hit any of the book cover images above to begin reading. These books are formatted for printing directly from your
browser, where you can also (on most browsers) save them as PDF.
<h1 id='overview'>Overview</h1>
<p>I’ve taught many graphics classes over the years. Often I do them in ray tracing, because you are forced to write
all the code but you can still get cool images with no API. I decided to adapt my course notes into a how-to, to get
you to a cool program as quickly as possible. It will not be a full-featured ray tracer, but it does have the indirect
lighting which has made ray tracing a staple in movies. Follow these steps, and the architecture of the ray tracer you
produce will be good for extending to a more extensive ray tracer if you get excited and want to pursue that.
<p>When somebody says “ray tracing” it could mean many things. What I am going to describe is technically a path
tracer, and a fairly general one. While the code will be pretty simple (let the computer do the work!) I think you’ll
be very happy with the images you can make.
<p>In <cite>Ray Tracing in One Weekend</cite>, you will build a simple brute-force path tracer. Continuing with
<cite>Ray Tracing: The Next Week</cite>, you will add textures, volumes (like fog), rectangles, instances, lights, and
support for lots of objects using a bounding volume hierarchy (BVH). Finally, with <cite>Ray Tracing: The Rest Of Your
Life</cite>, we'll dive into the math of creating a very serious ray tracer.
<p>When you are done, you should be ready to start messing with the many serious commercial ray tracers underlying the
movie and product-design industries.
<h1 id='source'>Source Code</h1>
<p>Source code for each book may be found in the GitHub repository:
<a href="https://github.com/RayTracing/raytracing.github.io">https://github.com/RayTracing/raytracing.github.io</a>.
You can also directly download the latest version of the entire project (all three books) as a single archive file:
<ul>
<li><a href="https://github.com/RayTracing/raytracing.github.io/archive/release.zip">.ZIP format</a>
<li><a href="https://github.com/RayTracing/raytracing.github.io/archive/release.tar.gz">.tar.gz format</a>
</ul>
<h1 id='issues'>Issues</h1>
<p>You can browse book suggestions and errors in
<a href="https://github.com/RayTracing/raytracing.github.io/issues">GitHub issues</a>. If you have a suggestion or
believe you've found an error, please check these issues first (including closed ones) to ensure that it hasn't
already been reported. If it hasn't, please create a new entry, describing the problem, book or source file, location,
and whatever other information would be helpful in understanding why you think it's a problem. If possible, include
ideas about what you think the fix should look like.
<h1 id='contributing'>Contributing</h1>
<p>Interested in helping out? Please read the guidelines in the
<a href="https://github.com/RayTracing/raytracing.github.io/blob/release/CONTRIBUTING.md">CONTRIBUTING.md</a> document
first. <em>Pull requests without associated issues, or submitted without coordination, are highly likely to be
rejected.</em>
</div>