As reported earlier, this week got off to a rough start. I let my guard down (foolishly) and got nabbed by the greedy PC rapists. All I wanted was to find a particular font for a project. The next day a more careful search turned up exactly what I needed, the fonts and just the fonts (ma’am).
Monday I mentioned that I planned to share my font-needing project with you. It’s not finished (many of my projects live a long time as I tweak them — some are living things that grow and improve forever). But it turned out so much better than I expected, I just had to share it with you this Science Fiction Saturday.
I’m also going to boldly try a new WordPress blogging trick!
I was torn about how to write this article. It would be fun to be as mysterious as possible, slowly revealing the project bit by bit (an apt pun for a computer-generated image project).
Those familiar with the source material would likely see quickly what I was doing, while those only somewhat familiar might experience a dawning recognition. Those with little or no past knowledge of the material (and I’m sure they must exist), would just have to follow along.
But it’s hard to gauge what people will recognize or not. And depending on how much you look (or can see) down the page, the images may reveal the “punchline” too early. (Plus, the Tags are a bit of a giveaway.)
So here it is. Here’s my project:
I started this back on September 21st and have been working on it quite a bit since, so there are a lot of hours in the result. Even so, I’m kind of astonished it turned out so well! Not bad for a model made mostly from boxes, cylinders, spheres and cones!
In fact, this one is actually Enterprise 2.0. I did a first cut to get a rough idea of what might be involved using what I had in the way of reference material. Later I found an incredible, wonderful, must-see site with lots of plans and diagrams. Those plans allowed me to take careful measurements that I could use to get the proportions very close to exactly right. (If you like Star Trek at all, you have got to see this site!)
Eventually I’d like to do an Enterprise 3.0 with two key differences: scaled to life-size and with a real interior. That latter one… it could take years (at my relaxed, retired pace) to do all the internal decks, but it would be fun to start with the bridge, engineering, sick bay and a few others. The 2.0 model already has the beginnings of the shuttle deck, and I plan to have a go at creating the bridge.
[POV-Ray doesn’t have any built-in scale or size, it just works in “units” in an X-Y-Z three-dimensional space. It’s up to you what a unit means: inch, foot, whatever. For this version, I directly used the pixel measurements taken from the “blueprints” as the units. For example, on my key reference image, the main saucer has a radius of 532 pixels. Therefore the model’s radius at that point is 532. For version 3.0 I plan to have one unit be one foot.]
I was really surprised by how well it turned out considering that it’s made almost entirely from POV-Ray’s fundamental primitives. Those are the five basic shapes: sphere, box, cylinder, cone and torus (aka donut). (For an overview, see my article about POV-Ray’s “constructive geometry”.)
There is some imported artwork for the lettering and those distinctive red slashes. That’s what I needed the fonts for: to do the lettering.
There are also a few prisms that use linear splines, but those are really just funny-shaped “boxes.” Amazingly enough, that’s it for special geometry. It’s incredible what you can build combining and subtracting basic shapes. According to the rendering stats, POV-Ray finds 198 objects that comprise my Enterprise.
One area that’s not complete is the surface textures, so the model still looks rather flat and artificial. Textures are one of the last things to do, because they slow down the render time. While you’re working on the model, you render it over and over as you add new parts and tweak things, so you want it to render as quickly as possible. (Slow render times are too reminiscent of the slow compile times from my past!)
Once the 3D model is built, one of the fun things to do with it is create an animation. POV-Ray supports this via a “clock” parameter. You tell POV-Ray to render the scene X many times to generate the “frames” of the “movie.” As it generates the frames, it scales the clock parameter from 0 to 1, from start to finish. In your scene, you use the clock setting to change things from frame to frame.
For example, just like in “real life,” the nacelle caps rotate (actually, it’s a cage inside the cap that rotates). My ship can also open its shuttle bay doors!
A very common way of animating a scene is using the clock parameter to move the “camera” around. This lets you move through your scene and view it from many angles.
Which brings me to the new blogging trick I want to try. Again, I think I’ll just show you the baby first and then go over the labor pains. So here you go, my first interweb movie:
My first movie! (Drat!! It turns out WordPress doesn’t accept MP4 as a media type,
so I’ll have to get a YouTube account and figure out their format requirements before I can embed a movie here. But if you click the link, you can watch it!)
Update [12/10/2013] Merry Christmas (or other holiday greeting as appropriate)! I’m a YouTuber!
See, the thing about animating a POV-Ray scene is that what you end up with is a series of image files, each one a single frame of the animation. To actually see the animation, you have to view all the frames in sequence at speed.
For my personal use, I can just use my wonderful image viewer, Irfanview, which can manually show me the images in rapid sequence. But that’s not very sharable (and the set of all images uses a lot of bytes).
I do have a tool that allows me to create animated GIF files, and that does work okay (I’ve shared some I’ve made here before). The problem is that, with any real size or decent resolution, the resulting GIF is enormous! It’s basically just a collection of all those images.
I also have Windows Movie Maker, which is okay for existing video, but turning a bunch of frames into a movie isn’t it’s thing. The shortest frame time it will allow is 0.125 seconds, which is way too long. (A movie frame rate of 30 FPS amounts to 0.0333 seconds per frame.)
I’ve always known there were tools expressly for turning frames into movies, and I finally went out looking for one. They’re actually harder to find than I imagined, but I found something pretty wonderful: ffmpeg.
This is one of those super-tools that does a lot, does it very well, and has about a bazillion settings to learn. Plus you need to learn about mpeg compression and video rendering. Or, if you’re impatient for results (like me), you search the web for examples you can tweak to your purposes.
I still haven’t quite gotten it right. I haven’t yet figured out how to make a Windows mpeg with decent quality, but using settings from others I managed to create the MP4 format QuickTime plays. Apparently this is also the format required by YouTube, so once I start posting movies there, I’ll be using this format anyway.
Meanwhile, check out my new ride (it barely fits in the driveway)!
“Stay three-dimensional, my friends!”