raytracer-c/scenes/bounding-boxes.yml
2020-12-18 23:29:24 -05:00

225 lines
4.8 KiB
YAML

# ======================================================
# bounding-boxes.yml
#
# This file describes the banner image for the "Bounding
# boxes and hierarches" bonus chapter, at
#
# http://www.raytracerchallenge.com/bonus/bounding-boxes.html
#
# by Jamis Buck <jamis@jamisbuck.org>
# ======================================================
# ======================================================
# the camera
# ======================================================
- add: camera
width: 500
height: 200
field-of-view: 1.2
from: [0, 2.5, -10]
to: [0, 1, 0]
up: [0, 1, 0]
# ======================================================
# lights
# ======================================================
- add: light
at: [-10, 100, -100]
intensity: [1, 1, 1]
- add: light
at: [0, 100, 0]
intensity: [0.1, 0.1, 0.1]
- add: light
at: [100, 10, -25]
intensity: [0.2, 0.2, 0.2]
- add: light
at: [-100, 10, -25]
intensity: [0.2, 0.2, 0.2]
# ======================================================
# definitions
# ======================================================
- define: raw-bbox
value:
add: cube
shadow: false
transform:
- [ translate, 1, 1, 1 ]
- [ scale, 3.73335, 2.5845, 1.6283 ]
- [ translate, -3.9863, -0.1217, -1.1820 ]
- define: dragon
value:
add: obj
file: dragon.obj
transform:
- [ translate, 0, 0.1217, 0]
- [ scale, 0.268, 0.268, 0.268 ]
- define: bbox
value:
add: raw-bbox
transform:
- [ translate, 0, 0.1217, 0]
- [ scale, 0.268, 0.268, 0.268 ]
- define: pedestal
value:
add: cylinder
min: -0.15
max: 0
closed: true
material:
color: [ 0.2, 0.2, 0.2 ]
ambient: 0
diffuse: 0.8
specular: 0
reflective: 0.2
# ======================================================
# scene
# ======================================================
- add: group
transform:
- [ translate, 0, 2, 0 ]
children:
- add: pedestal
- add: group
children:
- add: dragon
material:
color: [ 1, 0, 0.1 ]
ambient: 0.1
diffuse: 0.6
specular: 0.3
shininess: 15
- add: bbox
material:
ambient: 0
diffuse: 0.4
specular: 0
transparency: 0.6
refractive-index: 1
- add: group
transform:
- [ translate, 2, 1, -1 ]
children:
- add: pedestal
- add: group
transform:
- [ rotate-y, 4 ]
- [ scale, 0.75, 0.75, 0.75 ]
children:
- add: dragon
material:
color: [ 1, 0.5, 0.1 ]
ambient: 0.1
diffuse: 0.6
specular: 0.3
shininess: 15
- add: bbox
material:
ambient: 0
diffuse: 0.2
specular: 0
transparency: 0.8
refractive-index: 1
- add: group
transform:
- [ translate, -2, .75, -1 ]
children:
- add: pedestal
- add: group
transform:
- [ rotate-y, -0.4 ]
- [ scale, 0.75, 0.75, 0.75 ]
children:
- add: dragon
material:
color: [ 0.9, 0.5, 0.1 ]
ambient: 0.1
diffuse: 0.6
specular: 0.3
shininess: 15
- add: bbox
material:
ambient: 0
diffuse: 0.2
specular: 0
transparency: 0.8
refractive-index: 1
- add: group
transform:
- [ translate, -4, 0, -2 ]
children:
- add: pedestal
- add: group
transform:
- [ rotate-y, -0.2 ]
- [ scale, 0.5, 0.5, 0.5 ]
children:
- add: dragon
material:
color: [ 1, 0.9, 0.1 ]
ambient: 0.1
diffuse: 0.6
specular: 0.3
shininess: 15
- add: bbox
material:
ambient: 0
diffuse: 0.1
specular: 0
transparency: 0.9
refractive-index: 1
- add: group
transform:
- [ translate, 4, 0, -2 ]
children:
- add: pedestal
- add: group
transform:
- [ rotate-y, 3.3 ]
- [ scale, 0.5, 0.5, 0.5 ]
children:
- add: dragon
material:
color: [ 0.9, 1, 0.1 ]
ambient: 0.1
diffuse: 0.6
specular: 0.3
shininess: 15
- add: bbox
material:
ambient: 0
diffuse: 0.1
specular: 0
transparency: 0.9
refractive-index: 1
- add: group
transform:
- [ translate, 0, 0.5, -4 ]
children:
- add: pedestal
- add: dragon
material:
color: [ 1, 1, 1 ]
ambient: 0.1
diffuse: 0.6
specular: 0.3
shininess: 15
transform:
- [ rotate-y, 3.1415 ]