A Flash to the Past, Here Is the Latest Render of My 588 Police Station
These are the latest images of LEGO set 588, front and back, using POV-Ray.
Following my Blender renders for 588, I started work on rendering the POV-Ray versions. Not quite the original versions, these renders use radiosity with an updated environment. Besides being a larger render, I turned on some of the features I usually don’t. The images came out pretty good, even if I’m always looking to improve them.
Let’s start with a discussion about how I rendered this image. Instead of using my MacBook Pro, I used my recently updated Mac Mini. It has six cores, which helps improve the render time. Unfortunately, it still takes forever to render with all the clear pieces in the set. I turned off radiosity, but left fog, blur and shiny pieces turned on. Even with a beefier machine, I’m still asking a lot of this computer.
Usually I didn’t bother turning on shiny bricks. I had reflections on when I first started, but after talking to other artists I decided to turn it off. The LEGO logo has also been part of my library since the start as well. Every time I turned it on, it would bog down my machine. Used to the the images without it, I got in the habit of leaving it off.
Not part of the original image, I added the blur and fog later models as I improved the scene. Looking for options to improve my images, I had been looking at other render techniques. The fog blurs the horizon, reducing the sharpness of the world edge. A small amount of blur seems to help antialiasing. Yet, both options seriously impact render time, but yield better results.
588 Police Headquarters - POV-Ray - Front by Steven Reid, on Flickr
Shapes have drawbacks.
Unlike the meshes in Blender, I created my bricks using SDL, POV-Ray’s scripting language. It has a lot of advantages. For one, the shapes are easier to visualize. When I started, I used a lot of boxes and geometry, unions and differences, to make my parts. Although they looked like LEGO sets, they weren’t very real. I didn’t use individual pieces until later when I wanted to show the seams.
The reason for this, when I started, I was trying to keep the model as small as possible. Although my computer was powerful for the time, ray tracing needs a lot of memory. To save space, I would add each brick in as needed. When I started to use brick libraries, I would break them apart to try to only include the bricks I needed. Over time, this limit eased as my computers gained more memory.
When they got powerful enough, I used POV-Ray’s language to build bricks using functions. This allowed me to scale them to different sizes when needed. Also, as I was experimenting still, I could use variables to define various aspects of the bricks. In the early days, the boxes weren’t quite sized right and I was trying to make the bricks as accurate as possible. Later I used those variables to position the bricks within the scene.
As I got better, I added beveled edges to many of the bricks. This increased the realism at the expense of memory and speed. Other libraries, such as LGEO, also used SDL for most parts. But they also used meshes made of triangles to represent complex parts. To my surprise, they often render faster, but tend to look less real if the mesh is too basic. I liked the look of my bricks, but I often wonder if I’d made the right choice.
Parts of parts.
Fast forward to today and I wish I’d spent more time with meshes. If I had, it would be have been easier to shift to other render engines. My early attempts with other render engines didn’t go well. I was a programmer, more comfortable with scripts and math. Using CAD programs to build wasn’t as easy for me. I can do it, but for some reason I struggle with it.
That said, my LEGO part library still looks great. The parts aren’t as much the issue as the difficulty in quality renders. Materials can be quite finicky and it takes a lot of renders to get them right. But lighting and other settings can be difficult to get perfect in POV-Ray. That doesn’t mean you can’t, but I do struggle with it.
Although Blender can create animations, POV-Ray lets you check the frame of the clock. I used that to my advantage to create alternate images using the same scene. I wrap changes in
#IF statements to change the position of the camera and parts. Although, as I found when I adjusted the environment, you have to make sure you include things in the right order.
My first attempt at rendering the back had a mix of elements. The camera was in the right place, as were some models. But some of the minifigs were in the wrong position or duplicated. Seems, I included the object file before setting the frame. After fixing the order, the final render had the correct positions. This is still one of my favorite pictures.
588 Police Headquarters - POV-Ray - Back by Steven Reid, on Flickr
Still having fun with scripts.
For all the challenges with POV-Ray, it is still fun to play with. I love tweaking the scene files to see what works. Plus, I can create some pretty cool things with it. LEGO 588, as I noted, was one of those fun models. Because it is a big set and one of my first, I built a lot of parts using it. Some better than others.
Constructing the building itself was the easiest part. I had most of those pieces already from earlier models. Also, I had built smaller sets with figures. The hardest part of the policemen was creating their stickers. Other complex parts, such as the doors, windows and hinges, took a lot of planning to get right. Those were fun days.
Although complete, I could have made some parts better. I did a decent job building the wheels and helmets. The windows look good, as do the doors. Plus, all the stickers came out fine, at least POV-Ray does a good job of scaling them. But the hairpiece looks horrible—more like a brown helmet. Since I used basic shapes to sculpt a part, I didn’t have the control I needed to make that part look good.
Now, if I’d used a mesh and sculpted the piece it would be better. I should have have left it swapped out, I used a hat in the first render. But, it wasn’t my concern. Focusing on fun, I wasn’t going for realism back then. That would come later. Even then, I focused more on lighting and the environment than I did the LEGO parts.
Colors were also a bit of a pain. I never could seem to get them quite right. Too dark or light, most of my time was spend testing new ways to improve their look. It is also one of the big reasons I switched to Mecabricks and Blender. The materials and light probes look great in Cycles. Yes, at times the fake edges of the Mecabricks parts show through. But I can usually subdivide the surfaces to smooth them out.
Time shift, and I shift with them.
And, for that reason, I jumped off the POV-Ray bandwagon for a bit. I kicked myself for not learning Blender earlier. The render speed and quality of the images are its best advantage. The node editor for materials works well, but kind of a pain next to ways I created materials in POV-Ray. Although, I can often make changes in real time, something that POV-Ray can’t. It helps that Mecabricks makes that part easy.
Thinking back, I wonder what it would have been like to build my own parts in something like Wings-3D. I tried, but couldn’t get the hang of it. Hindsight what it is, I wished I had stuck with it. Blender isn’t any harder, it requires practice and patience. Like POV-Ray’s language, it took me a years to improve my part library and learn the different features. And that’s okay. It’s fun playing with both.
Who knows, in a couple of years I could be doing something completely different. Times change and I’ve learned to change with them. For now, let’s enjoy a couple more images from the past.