Skip to content

Commit 4638bf2

Browse files
committed
joons examples
1 parent 3b160f1 commit 4638bf2

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
require 'joonsrenderer'
2+
include_package 'joons'
3+
4+
attr_reader :jr, :eye, :center, :up, :count, :radius, :file_name
5+
6+
def settings
7+
size(800, 600, P3D)
8+
end
9+
10+
def setup
11+
sketch_title 'Animation'
12+
@file_name = 'Animation'
13+
@jr = JoonsRenderer.new(self)
14+
# Camera Setting.
15+
@eye = Vec3D.new(0, 0, 120)
16+
@center = Vec3D.new(0, 0, -1)
17+
@up = Vec3D.new(0, 1, 0)
18+
@count = 0
19+
@radius = 35
20+
end
21+
22+
def draw
23+
jr.render # The draw loop that comes next is rendered
24+
jr.begin_record # Make sure to include things you want rendered.
25+
kamera(eye: eye, center: center, up: up)
26+
perspektiv(fov: PI / 4.0, aspect_ratio: 4 / 3.0, near_z: 5, far_z: 10_000)
27+
jr.background('cornell_box', 100, 100, 100) # Cornell Box: width, height, depth.
28+
jr.background('gi_ambient_occlusion') # Global illumination.
29+
# Sun.
30+
translate(0, -15, 0)
31+
jr.fill('light', 1, 60, 60)
32+
sphere(5)
33+
# Planet, revolving at +3 degrees per frame.
34+
translate(radius * DegLut.cos(count * 3), 0, radius * DegLut.sin(count * 3))
35+
jr.fill('mirror')
36+
sphere(5)
37+
jr.end_record # Make sure to end record.
38+
# Display rendered image if render is completed, and the argument is true.
39+
jr.display_rendered(true)
40+
save_frame(format("%s%s", file_name, "_###.png"))
41+
@count += 1
42+
no_loop if (count > 120)
43+
end
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
require 'joonsrenderer'
2+
include_package 'joons'
3+
4+
5+
attr_reader :jr, :eye, :center, :up
6+
7+
def settings
8+
size 800, 600, P3D
9+
end
10+
11+
def setup
12+
sketch_title 'My Sketch'
13+
@jr = JoonsRenderer.new(self)
14+
# Camera Setting.
15+
@eye = Vec3D.new(0, 0, 120)
16+
@center = Vec3D.new(0, 0, -1)
17+
@up = Vec3D.new(0, 1, 0)
18+
end
19+
20+
def draw
21+
jr.begin_record # Make sure to include things you want rendered.
22+
kamera(eye: eye, center: center, up: up)
23+
perspektiv(fov: PI / 4.0, aspect_ratio: 4 / 3.0, near_z: 5, far_z: 10_000)
24+
jr.background('cornell_box', 100, 100, 100) # Cornell Box: width, height, depth.
25+
jr.background('gi_instant') # Global illumination.
26+
translate(0, 10, -10)
27+
rotate_y(-PI / 8)
28+
rotate_x(-PI / 8)
29+
jr.fill('diffuse', 255, 255, 255)
30+
box(20)
31+
jr.end_record # Make sure to end record.
32+
jr.display_rendered(true) # Display rendered image if render is completed, and the argument is true.
33+
end
34+
35+
def key_pressed
36+
jr.render if (key == 'r' || key == 'R') # Press 'r' key to start rendering.
37+
end

0 commit comments

Comments
 (0)