Skip to content

Commit

Permalink
feat: add chapter scenes
Browse files Browse the repository at this point in the history
  • Loading branch information
karolzwolak committed Mar 7, 2025
1 parent 2be18b8 commit 63574c5
Show file tree
Hide file tree
Showing 10 changed files with 805 additions and 0 deletions.
184 changes: 184 additions & 0 deletions samples/chapters/cubes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
- add: world
max-reflective-depth: 8

- define: sky-blue
value: [0.2, 0.35, 0.78]
- define: dark-gray
value: [0.25, 0.25, 0.25]
- define: light-gray
value: [0.7, 0.7, 0.7]
- define: brown
value: [0.4, 0.2, 0.1]
- define: green1
value: [0.42, 0.55, 0.42]
- define: green2
value: [0.32, 0.55, 0.42]
- define: purple
value: [0.4, 0.2, 0.3]
- define: blue
value: [0.2, 0.3, 0.4]

- define: wood-material
value:
color: brown
reflectivity: 0.0

- define: checkered_floor
value:
pattern:
type: checkers
colors:
- dark-gray
- light-gray
transform:
- [rotate-y, FRAC_PI_4]
- [scale-uniform, 0.75]
reflectivity: 0.05

- define: striped_walls
value:
pattern:
type: stripe
colors:
- green1
- green2
transform:
- [scale-uniform, 0.03125] # 0.125 / 4
- [rotate-z, FRAC_PI_4]

- add: light
intensity: WHITE
at: [-3, 5, 3]

- add: SCENE_CAMERA
from: [-1, 2.6, 4.75]
to: [0, 1, 0]
up: [0, 1, 0]
fov: 0.885

# Skybox
- add: cube
material:
color: sky-blue
transform:
- [scale-uniform, 10]

# Floor
- add: plane
material: checkered_floor

# Table legs
- add: cube
material: wood-material
transform:
- [scale, 0.08, 1, 0.08]
- [translate, 1, 0.5, 1]

- add: cube
material: wood-material
transform:
- [scale, 0.08, 1, 0.08]
- [translate, -1, 0.5, 1]

- add: cube
material: wood-material
transform:
- [scale, 0.08, 1, 0.08]
- [translate, 1, 0.5, -1]

- add: cube
material: wood-material
transform:
- [scale, 0.08, 1, 0.08]
- [translate, -1, 0.5, -1]

# Table top
- add: cube
material:
extend: wood-material
value:
reflectivity: 0.05
transform:
- [scale, 1.5, 0.05, 1.25]
- [translate, 0, 1.5, 0]

# Walls
- add: cube
material: striped_walls
transform:
- [scale-uniform, 5]

# Mirror frame
- add: cube
material: wood-material
transform:
- [scale, 0.05, 1.55, 0.01]
- [translate, 2.5, 2.25, -5]

- add: cube
material: wood-material
transform:
- [scale, 0.05, 1.55, 0.01]
- [translate, -2.5, 2.25, -5]

- add: cube
material: wood-material
transform:
- [scale, 0.05, 2.55, 0.01]
- [rotate-z, FRAC_PI_2]
- [translate, 0, 3.75, -5]

- add: cube
material: wood-material
transform:
- [scale, 0.05, 2.55, 0.01]
- [rotate-z, FRAC_PI_2]
- [translate, 0, 0.75, -5]

# Mirror
- add: cube
material: MIRROR_MATERIAL
transform:
- [scale, 2.5, 1.5, 0.01]
- [translate, 0, 2.25, -5]
- [translate, 0, 0, 0.005]

# Glass cube
- add: cube
material: GLASS_MATERIAL
transform:
- [scale-uniform, 0.125]
- [translate, 0.1, 1.65, -0.1]

# Tinted cube
- add: cube
material:
color: purple
extend: GLASS_MATERIAL
transform:
- [scale, 0.2, 0.05, 0.075]
- [rotate-y, 0.70685835] # FRAC_PI_4 * 0.9
- [translate, -0.4, 1.6, 0.4]

# Pattern cube
- add: cube
material:
pattern:
type: checkers
colors:
- purple
- blue
transform:
- [scale-uniform, 0.05]
transform:
- [scale-uniform, 0.15]
- [rotate-y, -0.39269908] # -FRAC_PI_6 * 0.75
- [translate, 0.5, 1.7, 0.6]

# Mirror cube
- add: cube
material: MIRROR_MATERIAL
transform:
- [scale-uniform, 0.15]
- [rotate-y, 0.39269908] # FRAC_PI_6 * 0.75
- [translate, -0.75, 1.7, 0.1]
85 changes: 85 additions & 0 deletions samples/chapters/cylinders.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
- add: world

- define: sky-blue
value: [0.2, 0.35, 0.78]
- define: red
value: [0.8, 0.2, 0.2]
- define: brown
value: [0.67, 0.57, 0.38]
- define: vanilla
value: [0.95, 0.89, 0.67]
- define: chocolate
value: [0.48, 0.24, 0.0]

- add: light
intensity: WHITE
at: [-10, 10, -10]

- add: SCENE_CAMERA
from: [0, 1.5, -5]
to: [0, 1, 0]
up: [0, 1, 0]
fov: FRAC_PI_3

# Skybox
- add: cube
material:
color: sky-blue
transform:
- [scale-uniform, 10]

- define: arrow-transform
value:
- [rotate-z, -FRAC_PI_4]
- [translate, -0.5, 0, 0]

# Arrow body
- add: cylinder
min: -0.5
max: 0.5
closed: true
material:
color: red
transform:
- [scale, 0.1, 1, 0.1]
- arrow-transform

# Arrow head
- add: cone
min: -1
max: 0
closed: true
material:
color: red
transform:
- [scale, 0.2, 0.5, 0.2]
- [translate, 0, 1, 0]
- arrow-transform

# Ice cream cone
- add: cone
min: 0
max: 1
closed: false

material:
color: brown
transform:
- [scale, 0.5, 1, 0.5]
- [translate, 1, -0.15, 0]

# Vanilla scoop
- add: sphere
material:
color: vanilla
transform:
- [scale-uniform, 0.5]
- [translate, 1, 1, 0]

# Chocolate scoop
- add: sphere
material:
color: chocolate
transform:
- [scale-uniform, 0.5]
- [translate, 1, 1.75, 0]
62 changes: 62 additions & 0 deletions samples/chapters/groups.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
- add: light
intensity: WHITE
at: [-10, 10, 10]

# Hexagon part (cylinder + corner sphere)
- define: hexagon-part
value:
add: group
children:
- add: cylinder
min: 0
max: 1
closed: false
transform:
- [scale, 0.25, 1, 0.25]
- [rotate-z, -FRAC_PI_2]
- [rotate-y, -FRAC_PI_6]
- [translate, 0, 0, -1]
- add: sphere
transform:
- [scale-uniform, 0.25]
- [translate, 0, 0, -1]

# Complete hexagon (6 rotated parts)
- add: group
transform:
- [rotate-x, FRAC_PI_3]
- [rotate-z, -FRAC_PI_6]
- [translate, 0, 0, -3]
children:
- add: group
transform:
- [rotate-y, FRAC_PI_3]
children:
- add: hexagon-part
- add: group
transform:
- [rotate-y, FRAC_PI_3]
children:
- add: hexagon-part
material:
value: GREEN
- add: group
transform:
- [rotate-y, FRAC_PI_3]
children:
- add: hexagon-part
- add: group
transform:
- [rotate-y, FRAC_PI_3]
children:
- add: hexagon-part
- add: group
transform:
- [rotate-y, FRAC_PI_3]
children:
- add: hexagon-part
- add: group
transform:
- [rotate-y, FRAC_PI_3]
children:
- add: hexagon-part
40 changes: 40 additions & 0 deletions samples/chapters/making_patterns.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
- add: world

- define: cyan
value: [0.15, 0.6, 0.7]
- define: magenta
value: [0.5, 0.1, 0.4]
- define: white
value: [1.0, 1.0, 1.0]
- define: red
value: [1.0, 0.0, 0.0]

- add: light
intensity: white
at: [-10, 10, -10]

- add: SCENE_CAMERA

# Floor plane with ring pattern
- add: plane
material:
pattern:
type: ring
colors:
- cyan
- magenta
transform:
- [scale-uniform, 0.25]

# Sphere with checkered pattern
- add: sphere
material:
pattern:
type: checkers
colors:
- white
- red
transform:
- [scale-uniform, 0.5]
transform:
- [translate, 0, 1, 0]
Loading

0 comments on commit 63574c5

Please sign in to comment.