From c7fec074c2db7486bfff21253baf66fd211d84d0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 29 Mar 2020 19:21:18 +0200 Subject: [PATCH] examples: add cornell box example --- pathtracer/examples/cornell-box.mtl | 88 ++++++++++++++ pathtracer/examples/cornell-box.obj | 168 +++++++++++++++++++++++++++ pathtracer/examples/cornell-box.yaml | 22 ++++ 3 files changed, 278 insertions(+) create mode 100644 pathtracer/examples/cornell-box.mtl create mode 100644 pathtracer/examples/cornell-box.obj create mode 100644 pathtracer/examples/cornell-box.yaml diff --git a/pathtracer/examples/cornell-box.mtl b/pathtracer/examples/cornell-box.mtl new file mode 100644 index 0000000..3376bb7 --- /dev/null +++ b/pathtracer/examples/cornell-box.mtl @@ -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 17 12 4 diff --git a/pathtracer/examples/cornell-box.obj b/pathtracer/examples/cornell-box.obj new file mode 100644 index 0000000..1be0aed --- /dev/null +++ b/pathtracer/examples/cornell-box.obj @@ -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.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 diff --git a/pathtracer/examples/cornell-box.yaml b/pathtracer/examples/cornell-box.yaml new file mode 100644 index 0000000..ffcda34 --- /dev/null +++ b/pathtracer/examples/cornell-box.yaml @@ -0,0 +1,22 @@ +reflection_limit: 5 + +camera: + origin: [0.0, 1.0, 0.0] + forward: [ 0.0, 0.0, 1.0] + up: [0.0, 1.0, 0.0] + fov: 90.0 + distance_to_image: 1.0 + x: 2160 + y: 2160 + +lights: + ambients: + - color: {r: 0.1, g: 0.1, b: 0.1} + points: + - position: [-0.5, 1.0, 1.8] + color: {r: 1.0, g: 1.0, b: 1.0} + +meshes: + - obj_file: "pathtracer/examples/cornell-box.obj" + translation: [0.0, 0.0, 1.0] + rotation: [0, 180, 0]