[NetBehaviour] dbCinema series: Notre Dame Cathedral
jim at vispo.com
Sun Feb 14 09:05:28 CET 2010
Notre Dame Cathedral
this series of 54 images (as usual, 1280x1024--that's my monitor's res) uses
images from a google image search of "notre dame cathedral".
this series is more represenentational than the previous ones. the brush is
still a long rectangle, but it's a bit thicker. and the 'delaytime', the
amount of time it takes to use another image, is a bit greater, so it
lingers over each image of notre dame cathedral a bit more than it lingered
over the images in the previous (abstract) series. the image sampling is a
bit greater both in duration and area.
it's interesting to work with architectural photos in dbCinema. if
configured appropriately, you get imaginary architectures out of it.
at this point in the development of dbCinema, there was only one type of
brush: the 'Vector' brush. and there was only one 'nib' for the brush: a
retangle that's configurable in length, width, opacity, and rotation speed.
a brush is a mask. in the photoshop sense. a mask is a greyscale image
through which we see other images. and the greyscale of the mask establishes
alpha or opacity levels of what we see through the mask. where the mask is
black, the image we see through the mask is totally opaque. where the mask
is grey, the image we see through the mask is somewhat transparent.
in dbCinema, the outline of the 'Vector' brush is a vector image. the fill
of the mask can be solid or a gradient or no fill at all.
playing with opacity is important in generative art if you want to do
something other than the usual. in dbCinema, masks can have variable opacity
and also dynamic opacity.
there were only a couple of 'geometries' at this point, also. in dbCinema, a
brush's geometry is the path the brush follows around the screen. i'd been
surfing the net for exotic curves. my friend marko niemi the finnish poet
programmer and fellow hockey fan pointed out the equation of what i ended up
referring to as the 'rose' geometry:
x=Xradius * cos(Xk1 * CurrentTheta) * cos(Xk2 * CurrentTheta)
y=Yradius * cos(Yk3 * CurrentTheta) * sin(Yk4 * CurrentTheta)
this sort of exotic curve is great for use in apps where you're moving
something around a screen. cuz it stays on the screen, for one thing. and
the motion can be quite complex, like a hand scrawl, or it can be very
orderly, as in a three-petalled ovoid.
Xradius is the radius of the thing measured from the center of the screen to
the horizontal edge of the geometry.
Yradius is similar only in the Y direction. so adjusting these two constants
lets you determine how much of the screen the 'drawing' occupies.
these stay fixed unless the user adjusts them.
CurrentTheta is the variable. this gets incremented each frame of the movie.
the greater the increment, the faster and farther the brush moves.
Xk1, Xk2, Xk3, and Xk4 are all constants. small adjustments in these can
make for large variations in the look of the resulting figure.
More information about the NetBehaviour