And now for a behind the scenes interview with Ben Martens...
Q:
It's obvious that you have spent way too much of your life working
on this project. How and when did this obsession begin?
A: It all started during my internship during the summer of 2000
with John Deere in Moline, IL. A couple of my co-workers introduced
me to
PovRay. PovRay is an open source 3D rendering tool. I was
immediately interested and started learning how to use it. You can
read a simple
PovRay tutorial that I wrote for DevHood if you are interested.
The idea to model Legos came from some random web surfing when I ran
across
www.ben.com. The guy who runs that site had spent some time
rendering Legos. It seemed like a good way to learn. I could hold
Legos in my hand and attempt to translate them into the 3D world. I
started building a library of Lego pieces. Then I started getting
the idea for building a whole city and making a movie. You can
download the source files I used, but there are no promises about how they
will work. I'm not responsible for any damage they might cause.
I'm the only one who had to use these files so they aren't terribly
intuitive. If you are really interested in Lego raytracing, I would
recommend that you skip my library and check out the work of
Anton. He has a huge library available for download. I found
this site after I had finished most of my work so I didn't use his
files. However, if I was starting over, I would start with his work
because it looks great.
Q: How
much effort goes into making a single Lego piece?
A: Believe it or not, the entire Lego city is made up of
intersections of rectangles, circles, and other basic shapes. For
example, here is the code for a
Lego person. I spent the first summer just building different
pieces that I would need for the city. I made an effort to build a
virtual city that could actually be created in real life. The only
parts of the city that aren't standard Lego pieces are the clock
faces and the bell on the clock tower. However, any kid with a
little imagination could use some electrical tape for the clock face
and a little aluminum foil for the bell.
Q:
What does it take to make one frame of video?
A: It took about a year and a half to build the library of
pieces and all the tools. Using all that information, it takes me
about one or two hours to script a second of video. Then I have to
render the video and that's where the real time comes in. It can
take as much as fifteen minutes just to render one frame. When you
think that there are thirty frames in one second of video and this
movie is over two minutes long... you start seeing how long this can
take! If you look at the Facts and Figures page, you can see some interesting statistics.
Q: You
mentioned that you used tools. What did you use besides PovRay?
A: Yes, I actually wrote three tools of my own to assist in the
creation of this project:
LetterBoxer: I rendered all the frames at a resolution of
320x180 and I wanted to get it into a 4:3 aspect ratio. I wrote
this simple program in C# to add black bars on the top and bottom of
the picture to change the aspect ratio. I posted the
source code for this little tool on DevHood.
LegoHelper: This tool was written in C++. It allows me to
perform numerous scripting jobs. From an early point in this
project, I decided to create one separate POV file for each frame in
the movie. This would allow me to split the rendering work up among
a number of computers. However, this also presented a problem
because I had to generate a lot of files. For example, if I want to
fly the camera around, I need to generate one file for each frame
with the camera in a slightly different position for each frame.
LegoHelper gives me the capability to fly the camera along various
paths, generate a walking Lego guy (about a month of work in
itself), and move other objects along paths. I may post the code
for this tool sometime in the future, but right now it is so ugly
that I don't think it would be of use to anyone.
Render.NET: The creation of this program took a total of
about 4 months of solid work. I wrote it for the 2002 Purdue .NET
Programming Contest. Kevin joined the team and provided a lot of
help with the GUI and also helped iron out some bugs. Basically
this tool is a distributed rendering system. There is a central
server that contains all the frames that need to be rendered. A
client connects to the server and downloads a small chunk of work,
renders the picture, and then uploads it back to the server. The
client program is very simple and only requires a single click to
run. Kevin and I ran away with the contest and gathered up 85% of
the final vote. I'm currently working on updates to the system and
looking for a place to host the server for a big rollout.
Q: Are
there any more projects in the works?
A: Yes, Jim has a great idea for the next movie. It has a
strong story line, and we'll be able to build some good graphics
around the story. We'll be releasing more details as the
projects start to evolve. I'm also thinking about buying a
domain name and real web host instead of messing around with Tripod.
Stay tuned to this website
for more details.
Thanks for your time, Ben. We're all looking forward to seeing more Studio711 productions!