' '

Difficulty

3

Prerequisites

patterns/lambda

For this extension, we only give examples of what the pattern should look like given certain parameters. How to implement this is up to you.

Pattern Result

flower(1)

flower1

flower(2)

flower2

flower(3)

flower3

flower(4)

flower4

flower(8)

flower8

Implement the new pattern.

1. Evaluation

Render the script below and get the same results.

def scene_at(now)
{
	var camera = Cameras.perspective( [ "eye": pos(0,0,5),
	                                    "look_at": pos(0,0,0) ] )

	var white = Materials.uniform( [ "ambient": Colors.white() ] )
	var black = Materials.uniform( [ "ambient": Colors.black() ] )

	var i = Animations.animate(1, 16, seconds(5))[now]
	var pattern = Patterns.flower(floor(i))
	var mat = Materials.from_pattern(pattern, white, black)

	var root = decorate(mat, xy_plane())

	var lights = [ Lights.omnidirectional( pos(5,5,5), Colors.white() ) ]

	create_scene(camera, root, lights)
}

var raytracer = Raytracers.v1()

var renderer = Renderers.standard( [ "width": 500,
                                     "height": 500,
                                     "sampler": Samplers.single(),
                                     "ray_tracer": raytracer ] )

pipeline( scene_animation(scene_at, seconds(5)),
          [ Pipeline.animation(30),
            Pipeline.renderer(renderer),
            Pipeline.wif(),
            Pipeline.base64(),
            Pipeline.stdout() ] )