-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
131 lines (102 loc) · 4.3 KB
/
index.html
File metadata and controls
131 lines (102 loc) · 4.3 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="web/css/slideReel.css">
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
<style>
/* Prevents slides from flashing */
#slides {
display:none;
}
</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slidesjs/3.0/jquery.slides.min.js"></script>
<script>
$(function(){
$("#slides").slidesjs({
width: 940,
height: 528
});
});
</script>
<title>GPU Path Tracer</title>
</head>
<body>
<h1>GPU Path Tracer</h1>
<h2> Intro </h2>
<p>
The point of this project is mostly educational.
My aim with this project is to build a fast GPU based path tracing engine to learn how to simulate light and make
photorealistic images really fast. I hope to document all of my findings here.
</p>
<h2> Show Reel </h2>
<div class="slideshow-container">
<div class="mySlides fade">
<img src="web/img/cornellBoxDiffuse.jpg" style="width:100%">
<div class="text">cornellBoxDiffuse</div>
</div>
<div class="mySlides fade">
<img src="web/img/dragon0Diffuse.jpg" style="width:100%">
<div class="text">dragon0Diffuse</div>
</div>
<div class="mySlides fade">
<img src="web/img/dragon1Diffuse.jpg" style="width:100%">
<div class="text">dragon1Diffuse</div>
</div>
<div class="mySlides fade">
<img src="web/img/dragon2Diffuse.jpg" style="width:100%">
<div class="text">dragon2Diffuse</div>
</div>
<div class="mySlides fade">
<img src="web/img/dragon3Diffuse.jpg" style="width:100%">
<div class="text">dragon3Diffuse</div>
</div>
<div class="mySlides fade">
<img src="web/img/bunny0Gloss.jpg" style="width:100%">
<div class="text">bunny0Gloss</div>
</div>
<div class="mySlides fade">
<img src="web/img/bunny1Gloss.jpg" style="width:100%">
<div class="text">bunny1Gloss</div>
</div>
<div class="mySlides fade">
<img src="web/img/bunny2Gloss.jpg" style="width:100%">
<div class="text">bunny2Gloss</div>
</div>
<a class="prev" onclick="plusSlides(-1)">❮</a>
<a class="next" onclick="plusSlides(1)">❯</a>
</div>
<br>
<div style="text-align:center">
<span class="dot" onclick="currentSlide(1)"></span>
<span class="dot" onclick="currentSlide(2)"></span>
<span class="dot" onclick="currentSlide(3)"></span>
<span class="dot" onclick="currentSlide(4)"></span>
<span class="dot" onclick="currentSlide(5)"></span>
<span class="dot" onclick="currentSlide(6)"></span>
<span class="dot" onclick="currentSlide(7)"></span>
<span class="dot" onclick="currentSlide(8)"></span>
</div>
<script src="web/js/slideReel.js"></script>
<h2>Path Tracing</h2>
<p>
Path tracing is a technique which produces really stunning photorealistic images. It is basicly a simulation of light, if you consider light to be a lot of rays
emmited by a source, bouncing around a scene off surfaces with certain properties and then becoming incident on the photosensitive part of a camera or eye.
This may not be a particulally accuate physical model for light, we know that light is wavelike under certain conditions, and certainly does not bounce around like
a newtonian billiard ball. But for rendering images of everyday materials and scenes in a macroscopic world, its not bad.
The briliant thing about path tracing is that all of the
complex lighting effects (soft shadows AO DOF Caustics) are produced natrurally as a byproduct of simulating light. It's Incredably elligant,
however it suffers from being extremaly computationally expensive, and has been out of reach for anything realtime, and even most things non realtime for quite a while.
Even without any further explination, it may be clear why path tracing is so expensive, for any standard scene there is an almost limitless quantity of
light rays bouncing around in limitless directions and numbers of bounces, to eventually excite a single pixel in the camera.
</p>
<p>
rendering equation formal
$$L_o(\mathbf x,\omega_o) = L_e(\mathbf x,\omega_o) + \int_\Omega fr(\mathbf x,\omega_i,\omega_o)Li(\mathbf x, \omega_i)\omega_i\cdot n,d\omega_i$$
</p>
reverse directon ie cam rays start .
montecarlo to solve
</body>
</html>