pathtracer: examples: cornell box w/o material light
This commit is contained in:
parent
7567b93f9c
commit
394a1ad43d
30
pathtracer/examples/cornell-box-no-emission.yaml
Normal file
30
pathtracer/examples/cornell-box-no-emission.yaml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
reflection_limit: 5
|
||||||
|
shot_rays: 50
|
||||||
|
|
||||||
|
camera:
|
||||||
|
origin: [0.0, 1.0, 0.0]
|
||||||
|
forward: [ 0.0, 0.0, 1.0]
|
||||||
|
up: [0.0, 1.0, 0.0]
|
||||||
|
fov: 60.0
|
||||||
|
distance_to_image: 1.0
|
||||||
|
x: 1080
|
||||||
|
y: 1080
|
||||||
|
|
||||||
|
lights:
|
||||||
|
ambients:
|
||||||
|
- color: {r: 0.1, g: 0.1, b: 0.1}
|
||||||
|
points:
|
||||||
|
- position: [0.0, 1.95, 3.2]
|
||||||
|
color: {r: 1.0, g: 1.0, b: 1.0}
|
||||||
|
|
||||||
|
meshes:
|
||||||
|
# FIXME: make the path relative to the YAML in some way?
|
||||||
|
# Easiest solution would be to chdir to the YAML's directory
|
||||||
|
- obj_file: "pathtracer/examples/objs/cornell-box-no-emission.obj"
|
||||||
|
translation: [0.0, 0.0, 2.8]
|
||||||
|
rotation: [0, 180, 0]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- 10
|
||||||
|
- 25
|
||||||
|
|
88
pathtracer/examples/objs/cornell-box-no-emission.mtl
Normal file
88
pathtracer/examples/objs/cornell-box-no-emission.mtl
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
# The original Cornell Box in OBJ format.
|
||||||
|
# Note that the real box is not a perfect cube, so
|
||||||
|
# the faces are imperfect in this data set.
|
||||||
|
#
|
||||||
|
# Created by Guedis Cardenas and Morgan McGuire at Williams College, 2011
|
||||||
|
# Released into the Public Domain.
|
||||||
|
#
|
||||||
|
# http://graphics.cs.williams.edu/data
|
||||||
|
# http://www.graphics.cornell.edu/online/box/data.html
|
||||||
|
#
|
||||||
|
|
||||||
|
newmtl leftWall
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.5000
|
||||||
|
illum 2
|
||||||
|
Ka 0.63 0.065 0.05 # Red
|
||||||
|
Kd 0.63 0.065 0.05
|
||||||
|
Ks 0 0 0
|
||||||
|
Ke 0 0 0
|
||||||
|
|
||||||
|
|
||||||
|
newmtl rightWall
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.5000
|
||||||
|
illum 2
|
||||||
|
Ka 0.14 0.45 0.091 # Green
|
||||||
|
Kd 0.14 0.45 0.091
|
||||||
|
Ks 0 0 0
|
||||||
|
Ke 0 0 0
|
||||||
|
|
||||||
|
|
||||||
|
newmtl floor
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.0000
|
||||||
|
illum 2
|
||||||
|
Ka 0.725 0.71 0.68 # White
|
||||||
|
Kd 0.725 0.71 0.68
|
||||||
|
Ks 0 0 0
|
||||||
|
Ke 0 0 0
|
||||||
|
|
||||||
|
|
||||||
|
newmtl ceiling
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.0000
|
||||||
|
illum 2
|
||||||
|
Ka 0.725 0.71 0.68 # White
|
||||||
|
Kd 0.725 0.71 0.68
|
||||||
|
Ks 0 0 0
|
||||||
|
Ke 0 0 0
|
||||||
|
|
||||||
|
|
||||||
|
newmtl backWall
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.0000
|
||||||
|
illum 2
|
||||||
|
Ka 0.725 0.71 0.68 # White
|
||||||
|
Kd 0.725 0.71 0.68
|
||||||
|
Ks 0 0 0
|
||||||
|
Ke 0 0 0
|
||||||
|
|
||||||
|
|
||||||
|
newmtl shortBox
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.0000
|
||||||
|
illum 2
|
||||||
|
Ka 0.725 0.71 0.68 # White
|
||||||
|
Kd 0.725 0.71 0.68
|
||||||
|
Ks 0 0 0
|
||||||
|
Ke 0 0 0
|
||||||
|
|
||||||
|
|
||||||
|
newmtl tallBox
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.0000
|
||||||
|
illum 2
|
||||||
|
Ka 0.725 0.71 0.68 # White
|
||||||
|
Kd 0.725 0.71 0.68
|
||||||
|
Ks 0 0 0
|
||||||
|
Ke 0 0 0
|
||||||
|
|
||||||
|
newmtl light
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.0000
|
||||||
|
illum 2
|
||||||
|
Ka 0.78 0.78 0.78 # White
|
||||||
|
Kd 0.78 0.78 0.78
|
||||||
|
Ks 0 0 0
|
||||||
|
Ke 0 0 0
|
168
pathtracer/examples/objs/cornell-box-no-emission.obj
Normal file
168
pathtracer/examples/objs/cornell-box-no-emission.obj
Normal file
|
@ -0,0 +1,168 @@
|
||||||
|
# The original Cornell Box in OBJ format.
|
||||||
|
# Note that the real box is not a perfect cube, so
|
||||||
|
# the faces are imperfect in this data set.
|
||||||
|
#
|
||||||
|
# Created by Guedis Cardenas and Morgan McGuire at Williams College, 2011
|
||||||
|
# Released into the Public Domain.
|
||||||
|
#
|
||||||
|
# http://graphics.cs.williams.edu/data
|
||||||
|
# http://www.graphics.cornell.edu/online/box/data.html
|
||||||
|
#
|
||||||
|
|
||||||
|
mtllib cornell-box-no-emission.mtl
|
||||||
|
|
||||||
|
## Object floor
|
||||||
|
v -1.01 0.00 0.99
|
||||||
|
v 1.00 0.00 0.99
|
||||||
|
v 1.00 0.00 -1.04
|
||||||
|
v -0.99 0.00 -1.04
|
||||||
|
|
||||||
|
g floor
|
||||||
|
usemtl floor
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
## Object ceiling
|
||||||
|
v -1.02 1.99 0.99
|
||||||
|
v -1.02 1.99 -1.04
|
||||||
|
v 1.00 1.99 -1.04
|
||||||
|
v 1.00 1.99 0.99
|
||||||
|
|
||||||
|
g ceiling
|
||||||
|
usemtl ceiling
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
## Object backwall
|
||||||
|
v -0.99 0.00 -1.04
|
||||||
|
v 1.00 0.00 -1.04
|
||||||
|
v 1.00 1.99 -1.04
|
||||||
|
v -1.02 1.99 -1.04
|
||||||
|
|
||||||
|
g backWall
|
||||||
|
usemtl backWall
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
## Object rightwall
|
||||||
|
v 1.00 0.00 -1.04
|
||||||
|
v 1.00 0.00 0.99
|
||||||
|
v 1.00 1.99 0.99
|
||||||
|
v 1.00 1.99 -1.04
|
||||||
|
|
||||||
|
g rightWall
|
||||||
|
usemtl rightWall
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
## Object leftWall
|
||||||
|
v -1.01 0.00 0.99
|
||||||
|
v -0.99 0.00 -1.04
|
||||||
|
v -1.02 1.99 -1.04
|
||||||
|
v -1.02 1.99 0.99
|
||||||
|
|
||||||
|
g leftWall
|
||||||
|
usemtl leftWall
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
## Object shortBox
|
||||||
|
usemtl shortBox
|
||||||
|
|
||||||
|
# Top Face
|
||||||
|
v 0.53 0.60 0.75
|
||||||
|
v 0.70 0.60 0.17
|
||||||
|
v 0.13 0.60 0.00
|
||||||
|
v -0.05 0.60 0.57
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Left Face
|
||||||
|
v -0.05 0.00 0.57
|
||||||
|
v -0.05 0.60 0.57
|
||||||
|
v 0.13 0.60 0.00
|
||||||
|
v 0.13 0.00 0.00
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Front Face
|
||||||
|
v 0.53 0.00 0.75
|
||||||
|
v 0.53 0.60 0.75
|
||||||
|
v -0.05 0.60 0.57
|
||||||
|
v -0.05 0.00 0.57
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Right Face
|
||||||
|
v 0.70 0.00 0.17
|
||||||
|
v 0.70 0.60 0.17
|
||||||
|
v 0.53 0.60 0.75
|
||||||
|
v 0.53 0.00 0.75
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Back Face
|
||||||
|
v 0.13 0.00 0.00
|
||||||
|
v 0.13 0.60 0.00
|
||||||
|
v 0.70 0.60 0.17
|
||||||
|
v 0.70 0.00 0.17
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Bottom Face
|
||||||
|
v 0.53 0.00 0.75
|
||||||
|
v 0.70 0.00 0.17
|
||||||
|
v 0.13 0.00 0.00
|
||||||
|
v -0.05 0.00 0.57
|
||||||
|
f -12 -11 -10 -9
|
||||||
|
|
||||||
|
g shortBox
|
||||||
|
usemtl shortBox
|
||||||
|
|
||||||
|
## Object tallBox
|
||||||
|
usemtl tallBox
|
||||||
|
|
||||||
|
# Top Face
|
||||||
|
v -0.53 1.20 0.09
|
||||||
|
v 0.04 1.20 -0.09
|
||||||
|
v -0.14 1.20 -0.67
|
||||||
|
v -0.71 1.20 -0.49
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Left Face
|
||||||
|
v -0.53 0.00 0.09
|
||||||
|
v -0.53 1.20 0.09
|
||||||
|
v -0.71 1.20 -0.49
|
||||||
|
v -0.71 0.00 -0.49
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Back Face
|
||||||
|
v -0.71 0.00 -0.49
|
||||||
|
v -0.71 1.20 -0.49
|
||||||
|
v -0.14 1.20 -0.67
|
||||||
|
v -0.14 0.00 -0.67
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Right Face
|
||||||
|
v -0.14 0.00 -0.67
|
||||||
|
v -0.14 1.20 -0.67
|
||||||
|
v 0.04 1.20 -0.09
|
||||||
|
v 0.04 0.00 -0.09
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Front Face
|
||||||
|
v 0.04 0.00 -0.09
|
||||||
|
v 0.04 1.20 -0.09
|
||||||
|
v -0.53 1.20 0.09
|
||||||
|
v -0.53 0.00 0.09
|
||||||
|
f -4 -3 -2 -1
|
||||||
|
|
||||||
|
# Bottom Face
|
||||||
|
v -0.53 0.00 0.09
|
||||||
|
v 0.04 0.00 -0.09
|
||||||
|
v -0.14 0.00 -0.67
|
||||||
|
v -0.71 0.00 -0.49
|
||||||
|
f -8 -7 -6 -5
|
||||||
|
|
||||||
|
g tallBox
|
||||||
|
usemtl tallBox
|
||||||
|
|
||||||
|
## Object light
|
||||||
|
v -0.24 1.98 0.16
|
||||||
|
v -0.24 1.98 -0.22
|
||||||
|
v 0.23 1.98 -0.22
|
||||||
|
v 0.23 1.98 0.16
|
||||||
|
|
||||||
|
g light
|
||||||
|
usemtl light
|
||||||
|
f -4 -3 -2 -1
|
|
@ -4,8 +4,7 @@ use nalgebra::Unit;
|
||||||
|
|
||||||
pub struct PathPoint {
|
pub struct PathPoint {
|
||||||
pub point: Point,
|
pub point: Point,
|
||||||
pub incident: Unit<Vector>,
|
pub pdf: f32,
|
||||||
pub normal: Unit<Vector>,
|
|
||||||
pub properties: LightProperties,
|
pub properties: LightProperties,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,14 +12,12 @@ impl PathPoint {
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
pub fn new(
|
pub fn new(
|
||||||
point: Point,
|
point: Point,
|
||||||
incident: Unit<Vector>,
|
pdf: 32,
|
||||||
normal: Unit<Vector>,
|
|
||||||
properties: LightProperties,
|
properties: LightProperties,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
PathPoint {
|
PathPoint {
|
||||||
point,
|
point,
|
||||||
incident,
|
pdf,
|
||||||
normal,
|
|
||||||
properties,
|
properties,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue