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 point: Point,
|
||||
pub incident: Unit<Vector>,
|
||||
pub normal: Unit<Vector>,
|
||||
pub pdf: f32,
|
||||
pub properties: LightProperties,
|
||||
}
|
||||
|
||||
|
@ -13,14 +12,12 @@ impl PathPoint {
|
|||
#[allow(unused)]
|
||||
pub fn new(
|
||||
point: Point,
|
||||
incident: Unit<Vector>,
|
||||
normal: Unit<Vector>,
|
||||
pdf: 32,
|
||||
properties: LightProperties,
|
||||
) -> Self {
|
||||
PathPoint {
|
||||
point,
|
||||
incident,
|
||||
normal,
|
||||
pdf,
|
||||
properties,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue