Since 1995, I’ve been rendering LEGO models using POV-Ray. For most of that time, I’ve used scripting to place and build those models. It’s been fun and I’ve learned a lot over the years, each model looking a bit better than the first. That said, I’m never quite happy and always looking for new ways to render my models and, below, are my recent attempts using Blender.
Results Tell the Story
Pictures tell more than a thousand words, so I’ll start by sharing some recent renders. I think you’ll agree, these look pretty good.
Older Newer Processes
As noted, I built all my models by handing using POV-Ray’s scripting language. POV-Ray is an object based ray-tracing system. This is powerful as each shape is, well, that shape. A sphere is a sphere. A box is a box. You get the picture. The nice thing about that is they look great; POV-Ray renders them to mathematical perfection.
LEGO bricks, at least the original ones, did a great job conforming to these standards. My early bricks were simple shapes, like boxes, where I removed and added more shapes to make them pretty bricks. Overtime, those models became more complex as I added rounded edges or more complex pieces. Those bricks look great, but newer ones became too hard to render with basic shapes.
Most other render systems provide a modeling program that creates meshes. A mesh is a series of triangles that you stretch and pull to approximate a shape. Although not as a precise as the shapes in POV-Ray, they tend to render faster as the math used is simpler. Along with other techniques, you can get a pretty decent looking model. Although POV-Ray doesn't have a visual mesh creator, it does support them.
This led me to start looking for new ways to export and render my models. I had been playing with Lego Digital Designer (LDD) and found that I could export those model’s LXF format to LDraw’s LDR. I could then use programs like LeoCAD and LDView to export those into POV-Ray. Unfortunately, the bricks don't always look that great.
The problem is LDraw’s default bricks are low quality. They were meant for instructions, not renders. I found LDView could improve that by smoothing the mesh. I also could replace the parts by using a high quality library or even my own bricks. The best part, of course, was using a brick I hadn’t modeled. I could now render newer models with more complex parts without having to hand code them.
To improve realism, I learned how to use more advanced POV-Ray functions. Using features like Radiosity, my renders started looking like real bricks. My renders were looking much better and I enjoyed the better results. Yet, the process of creating the models is more tedious. Because of that, I’m always looking to see what others are doing.
New Ways For Old Things
As noted in my last post, one of those new ways was Mecabricks, but I wasn’t sure how to render the bricks. Twitter came to my rescue in a reply to my last post. Stubbs, from Mecabricks, pointed me to the tutorial on how to render the models using Blender. Wow, that helped a lot.
Not having much experience with Blender, his instructions were easy to follow. I was able to get good results and I started to experiment. Familiar with light probes in POV-Ray, I started to try different ones to see how the model changed. I had mixed results, but I’m still learning. My goal is to try different backgrounds, but I have the basics down. Progress!
The only negative is that some bricks have artifacts. My models are pretty small, which I’m rendering close-up. This has the side-effect of revealing straight lines in some of the meshes. I’m not sure if I’m doing something wrong, or if the piece itself is of a lower quality. It’s hard to notice unless you’re looking, so I’m not worried. I can always post in the forums if it becomes a problem.
As a bonus, I finally found all my LDD models. I thought I’d lost them, but discovered them on my old laptop tucked away in my daughters account. Whew! I uploaded some of them to Mecabricks, including the Snowspeeder above, but haven’t set them all to public yet. I want to render them before I do.
To my surprise, I also found some POV-Ray renders that I never shared. Besides rendering my LDD models, I’ll work on posting those lost renders. I’ll share more when I do. Until then, enjoy what I've rendered so far.