Skip to content

Commit 225d24e

Browse files
committed
Add README; Add resource files; Add implementation report
1 parent f8fbe3c commit 225d24e

18 files changed

+1044
-65
lines changed

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
*.slo
77
*.lo
88
*.o
9-
*.obj
109

1110
# Precompiled Headers
1211
*.gch
@@ -78,6 +77,5 @@ _deps
7877

7978
### Blobs ###
8079
/build
81-
/data
8280
/out
8381
assignment.html

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Software ReSTIR
2+
A C++ implementation of [Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting](https://dl.acm.org/doi/abs/10.1145/3386569.3392481) on top of a Whitted-style ray tracer. Developed for the implementation component for the course IN4310 Seminar Computer Graphics.
3+
4+
## Build Instructions
5+
As this project uses CMake, simply use your favourite CLI/IDE/code editor and compile the `SeminarImpl` target. A compiler with OpenMP 2.0+ support is required. All required libraries and resources are provided in this repository.
6+
7+
## Background
8+
The original ReSTIR is an algorithm for accelerating light sampling in direct illumination computation by performing spatial and temporal reuse of samples using weighted reservoir sampling. This implementation aims to provide a playground to fiddle with the algorithm's parameters and steps in order to demonstrate their effects both in isolation and in tandem. For further specifics, see the report provided in the root directory.
9+
10+
This implementation makes use of the final project framework from the course CSE2215 Computer Graphics.
11+
12+
## Ray Tracer Specifics
13+
The underlying ray tracer is a simple Whitted-style ray tracer that utilised a Phong shading model with diffuse and specular components. A singular bottom-level-style BVH is constructed on a per scene basis to accelerate ray tracing.

ReSTIR Implementation Report.pdf

2.68 MB
Binary file not shown.

data/CornellBox-Mirror-Rotated.mtl

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Blender MTL File: 'None'
2+
# Material Count: 8
3+
4+
newmtl backWall
5+
Ns 10.000002
6+
Ka 1.000000 1.000000 1.000000
7+
Kd 0.725000 0.710000 0.680000
8+
Ks 0.000000 0.000000 0.000000
9+
Ke 0.000000 0.000000 0.000000
10+
Ni 1.000000
11+
d 1.000000
12+
illum 1
13+
14+
newmtl ceiling
15+
Ns 10.000002
16+
Ka 1.000000 1.000000 1.000000
17+
Kd 0.725000 0.710000 0.680000
18+
Ks 0.000000 0.000000 0.000000
19+
Ke 0.000000 0.000000 0.000000
20+
Ni 1.000000
21+
d 1.000000
22+
illum 1
23+
24+
newmtl floor
25+
Ns 10.000002
26+
Ka 1.000000 1.000000 1.000000
27+
Kd 0.725000 0.710000 0.680000
28+
Ks 0.000000 0.000000 0.000000
29+
Ke 0.000000 0.000000 0.000000
30+
Ni 1.000000
31+
d 1.000000
32+
illum 1
33+
34+
newmtl leftWall
35+
Ns 10.000002
36+
Ka 1.000000 1.000000 1.000000
37+
Kd 0.630000 0.065000 0.050000
38+
Ks 0.000000 0.000000 0.000000
39+
Ke 0.000000 0.000000 0.000000
40+
Ni 1.500000
41+
d 1.000000
42+
illum 1
43+
44+
newmtl light
45+
Ns 10.000002
46+
Ka 1.000000 1.000000 1.000000
47+
Kd 0.780000 0.780000 0.780000
48+
Ks 0.000000 0.000000 0.000000
49+
Ke 1.000000 1.000000 1.000000
50+
Ni 1.000000
51+
d 1.000000
52+
illum 1
53+
54+
newmtl rightWall
55+
Ns 10.000002
56+
Ka 1.000000 1.000000 1.000000
57+
Kd 0.140000 0.450000 0.091000
58+
Ks 0.000000 0.000000 0.000000
59+
Ke 0.000000 0.000000 0.000000
60+
Ni 1.500000
61+
d 1.000000
62+
illum 1
63+
64+
newmtl shortBox
65+
Ns 10.000002
66+
Ka 1.000000 1.000000 1.000000
67+
Kd 0.725000 0.710000 0.680000
68+
Ks 0.000000 0.000000 0.000000
69+
Ke 0.000000 0.000000 0.000000
70+
Ni 1.000000
71+
d 1.000000
72+
illum 1
73+
74+
newmtl tallBox
75+
Ns 4.000000
76+
Ka 0.010000 0.010000 0.010000
77+
Kd 0.010000 0.010000 0.010000
78+
Ks 0.950000 0.950000 0.950000
79+
Ke 0.000000 0.000000 0.000000
80+
Ni 1.450000
81+
d 1.000000
82+
illum 3

data/CornellBox-Mirror-Rotated.obj

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Blender v2.90.1 OBJ File: ''
2+
# www.blender.org
3+
mtllib CornellBox-Mirror-Rotated.mtl
4+
o CornellBox-Mirror
5+
v 1.010000 -0.000000 -0.990000
6+
v -1.000000 -0.000000 -0.990000
7+
v -1.000000 0.000000 1.040000
8+
v 0.990000 0.000000 1.040000
9+
v 1.020000 1.990000 -0.990000
10+
v 1.020000 1.990000 1.040000
11+
v -1.000000 1.990000 1.040000
12+
v -1.000000 1.990000 -0.990000
13+
v 0.990000 0.000000 1.040000
14+
v -1.000000 0.000000 1.040000
15+
v -1.000000 1.990000 1.040000
16+
v 1.020000 1.990000 1.040000
17+
v -1.000000 0.000000 1.040000
18+
v -1.000000 -0.000000 -0.990000
19+
v -1.000000 1.990000 -0.990000
20+
v -1.000000 1.990000 1.040000
21+
v 1.010000 -0.000000 -0.990000
22+
v 0.990000 0.000000 1.040000
23+
v 1.020000 1.990000 1.040000
24+
v 1.020000 1.990000 -0.990000
25+
v -0.530000 0.600000 -0.750000
26+
v -0.700000 0.600000 -0.170000
27+
v -0.130000 0.600000 -0.000000
28+
v 0.050000 0.600000 -0.570000
29+
v 0.050000 -0.000000 -0.570000
30+
v 0.050000 0.600000 -0.570000
31+
v -0.130000 0.600000 -0.000000
32+
v -0.130000 0.000000 0.000000
33+
v -0.530000 -0.000000 -0.750000
34+
v -0.530000 0.600000 -0.750000
35+
v 0.050000 0.600000 -0.570000
36+
v 0.050000 -0.000000 -0.570000
37+
v -0.700000 -0.000000 -0.170000
38+
v -0.700000 0.600000 -0.170000
39+
v -0.530000 0.600000 -0.750000
40+
v -0.530000 -0.000000 -0.750000
41+
v -0.130000 0.000000 0.000000
42+
v -0.130000 0.600000 -0.000000
43+
v -0.700000 0.600000 -0.170000
44+
v -0.700000 -0.000000 -0.170000
45+
v 0.530000 1.200000 -0.090000
46+
v -0.040000 1.200000 0.090000
47+
v 0.140000 1.200000 0.670000
48+
v 0.710000 1.200000 0.490000
49+
v 0.530000 -0.000000 -0.090000
50+
v 0.530000 1.200000 -0.090000
51+
v 0.710000 1.200000 0.490000
52+
v 0.710000 0.000000 0.490000
53+
v 0.710000 0.000000 0.490000
54+
v 0.710000 1.200000 0.490000
55+
v 0.140000 1.200000 0.670000
56+
v 0.140000 0.000000 0.670000
57+
v 0.140000 0.000000 0.670000
58+
v 0.140000 1.200000 0.670000
59+
v -0.040000 1.200000 0.090000
60+
v -0.040000 0.000000 0.090000
61+
v -0.040000 0.000000 0.090000
62+
v -0.040000 1.200000 0.090000
63+
v 0.530000 1.200000 -0.090000
64+
v 0.530000 -0.000000 -0.090000
65+
v 0.240000 1.980000 -0.160000
66+
v 0.240000 1.980000 0.220000
67+
v -0.230000 1.980000 0.220000
68+
v -0.230000 1.980000 -0.160000
69+
vn -0.0000 1.0000 -0.0000
70+
vn 0.0000 -1.0000 0.0000
71+
vn -0.0000 -0.0000 -1.0000
72+
vn 1.0000 0.0000 -0.0000
73+
vn -0.9999 0.0100 -0.0049
74+
vn 0.9536 0.0000 0.3011
75+
vn 0.2964 -0.0000 -0.9551
76+
vn -0.2858 0.0000 0.9583
77+
vn -0.9596 -0.0000 -0.2813
78+
vn 0.9551 -0.0000 -0.2964
79+
vn 0.3011 0.0000 0.9536
80+
vn -0.9551 0.0000 0.2964
81+
vn -0.3011 -0.0000 -0.9536
82+
usemtl floor
83+
s off
84+
f 1//1 2//1 3//1 4//1
85+
usemtl ceiling
86+
f 5//2 6//2 7//2 8//2
87+
usemtl backWall
88+
f 9//3 10//3 11//3 12//3
89+
usemtl rightWall
90+
f 13//4 14//4 15//4 16//4
91+
usemtl leftWall
92+
f 17//5 18//5 19//5 20//5
93+
usemtl shortBox
94+
f 21//1 22//1 23//1 24//1
95+
f 25//6 26//6 27//6 28//6
96+
f 29//7 30//7 31//7 32//7
97+
f 37//8 38//8 39//8 40//8
98+
f 33//9 34//9 35//9 36//9
99+
usemtl tallBox
100+
f 41//1 42//1 43//1 44//1
101+
f 45//10 46//10 47//10 48//10
102+
f 49//11 50//11 51//11 52//11
103+
f 53//12 54//12 55//12 56//12
104+
f 57//13 58//13 59//13 60//13
105+
usemtl light
106+
f 61//2 62//2 63//2 64//2

data/cornell-nightclub.blend

1.49 MB
Binary file not shown.

data/cornell-nightclub.mtl

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Blender 4.0.1 MTL File: 'cornell-nightclub.blend'
2+
# www.blender.org
3+
4+
newmtl Floor
5+
Ns 250.000000
6+
Ka 1.000000 1.000000 1.000000
7+
Kd 1.000000 1.000000 1.000000
8+
Ks 0.500000 0.500000 0.500000
9+
Ke 0.000000 0.000000 0.000000
10+
Ni 1.450000
11+
d 1.000000
12+
illum 2
13+
14+
newmtl Material.001
15+
Ns 250.000000
16+
Ka 1.000000 1.000000 1.000000
17+
Kd 0.800702 0.000000 0.011665
18+
Ks 0.500000 0.500000 0.500000
19+
Ke 0.000000 0.000000 0.000000
20+
Ni 1.450000
21+
d 1.000000
22+
illum 2
23+
24+
newmtl Material.002
25+
Ns 250.000000
26+
Ka 1.000000 1.000000 1.000000
27+
Kd 0.800702 0.000000 0.011665
28+
Ks 0.500000 0.500000 0.500000
29+
Ke 0.000000 0.000000 0.000000
30+
Ni 1.450000
31+
d 1.000000
32+
illum 2
33+
34+
newmtl Material.004
35+
Ns 250.000000
36+
Ka 1.000000 1.000000 1.000000
37+
Kd 0.000000 0.000000 1.000000
38+
Ks 0.500000 0.500000 0.500000
39+
Ke 0.000000 0.000000 0.000000
40+
Ni 1.450000
41+
d 1.000000
42+
illum 2
43+
44+
newmtl Material.005
45+
Ns 250.000000
46+
Ka 1.000000 1.000000 1.000000
47+
Kd 0.684262 0.800774 0.026663
48+
Ks 0.500000 0.500000 0.500000
49+
Ke 0.000000 0.000000 0.000000
50+
Ni 1.450000
51+
d 1.000000
52+
illum 2
53+
54+
newmtl Material.006
55+
Ns 250.000000
56+
Ka 1.000000 1.000000 1.000000
57+
Kd 0.000000 1.000000 0.000000
58+
Ks 0.500000 0.500000 0.500000
59+
Ke 0.000000 0.000000 0.000000
60+
Ni 1.450000
61+
d 1.000000
62+
illum 2
63+
64+
newmtl Material.007
65+
Ns 250.000000
66+
Ka 1.000000 1.000000 1.000000
67+
Kd 0.801305 0.031479 0.781272
68+
Ks 0.500000 0.500000 0.500000
69+
Ke 0.000000 0.000000 0.000000
70+
Ni 1.450000
71+
d 1.000000
72+
illum 2
73+
74+
newmtl Material.009
75+
Ns 250.000000
76+
Ka 1.000000 1.000000 1.000000
77+
Kd 0.800000 0.200000 0.000000
78+
Ks 0.500000 0.500000 0.500000
79+
Ke 0.000000 0.000000 0.000000
80+
Ni 1.450000
81+
d 1.000000
82+
illum 2
83+
84+
newmtl Material.011
85+
Ns 250.000000
86+
Ka 1.000000 1.000000 1.000000
87+
Kd 0.000000 0.000000 1.000000
88+
Ks 0.500000 0.500000 0.500000
89+
Ke 0.000000 0.000000 0.000000
90+
Ni 1.450000
91+
d 1.000000
92+
illum 2
93+
94+
newmtl Purple
95+
Ns 250.000000
96+
Ka 1.000000 1.000000 1.000000
97+
Kd 0.257208 0.000000 0.801133
98+
Ks 0.500000 0.500000 0.500000
99+
Ke 0.000000 0.000000 0.000000
100+
Ni 1.450000
101+
d 1.000000
102+
illum 2
103+
104+
newmtl Wood
105+
Ns 250.000000
106+
Ka 1.000000 1.000000 1.000000
107+
Kd 0.342282 0.153056 0.029067
108+
Ks 0.500000 0.500000 0.500000
109+
Ke 0.000000 0.000000 0.000000
110+
Ni 1.450000
111+
d 1.000000
112+
illum 2
113+
114+
newmtl leftWall
115+
Ns 10.000005
116+
Ka 1.000000 1.000000 1.000000
117+
Kd 0.630000 0.065000 0.050000
118+
Ks 0.000000 0.000000 0.000000
119+
Ke 0.000000 0.000000 0.000000
120+
Ni 1.500000
121+
d 1.000000
122+
illum 1
123+
124+
newmtl rightWall
125+
Ns 10.000005
126+
Ka 1.000000 1.000000 1.000000
127+
Kd 0.140000 0.450000 0.091000
128+
Ks 0.000000 0.000000 0.000000
129+
Ke 0.000000 0.000000 0.000000
130+
Ni 1.500000
131+
d 1.000000
132+
illum 1

0 commit comments

Comments
 (0)