Moving more of our rendering through Blender

Currently I do our rendering with other software and use Blender for compositing and basic editing. Its working great (kudos to those who’ve helped with the previous questions, I can’t share results but clients have been happy with the results). I’m bumping up against some limitations on quality so I want to investigate moving the rendering part of the process over to Blender. Rendering currently produces good quality PNG but no alpha channel, multi-layer EXR, or other advanced stuff. Material support is pretty good for flat stuff but falls over with bad mapping on cylinders (especially on elbows). Camera movement is strictly linear (creating a true “orbit” requires some creative interpolation).

Source models are technical in nature, primarily industrial facilities, created with engineering software. Objects are relatively simple, we don’t need a whole lot of detail at the engineering side. That means many objects (thousands to tens of thousands of individual objects) with few faces, not a whole lot of curves except for pipe and associated components (elbows, simplified valve bodies, and the like). Physically the models cover a large area - some are on the order of a kilometer or two on each side, most are about half that. I’ve been able to walk some parts of a model through FBX to OBJ (Blender didn’t like the FBX created, go figure…) so I know I can get something across.

That brings me to some questions regarding what Blender can handle. Most of the work I’ve seen has been small numbers of objects with many faces, in a relatively confined area - almost the exact opposite of what is going to be provided. So is this a realistic objective? Can Blender handle the objects, with materials, lighting, some basic object and camera animation, and render an output under these conditions?

It might be iffy. I believe Blender uses single point precision, which means you could run into floating point errors on really large scenes with small meshes. I remember reading somewhere on this forum about an engineering fork of Blender. Such a project may have double point precision.

so… as cgCody mentioned, blender doesnt support double float precision only single… which means that if the object is far far away from the origin it is can reduce its precision. That being said if you make sure the object origin is at the main mesh, and that the entire scene is around 0,0,0 (no georeferencing)… it should be fine. We have done a road network flythrough animation of about 60km by 20km worth of detail.

One big thing though that stands out to me is this. “That means many objects (thousands to tens of thousands of individual objects”

Blender, right now, hates ‘many’ objects. each object slows down blender exponentially. thousand objects may be fine, 10 000 will make blender slow… 100,000 objects it will take a while to add / delete objects let alone open the project.

You should use instancing as much as you can. Engineering projects are full of screws, bolts and all kind of repetitive geometry; this will bring memory usage to a minimum, renders will be faster, and it’s easier to modify/organize.

If you’re planning to use the game engine, you should have different detail levels for your meshes, so that drawing is faster.

I don’t think floating point precision will break you scene. And if well organized, you can even have a bigger scene, full of tiny detailed objects (as long as you keep changing their LODs or even hiding them when far or occluded).

Thanks everyone - that’s reassuring.

Geodetic coordinates shouldn’t be a problem. Some project managers “insist” it be this way in the CAD system but I can correct that prior to exporting.

Good thing is our level of detail is appropriate for the design scale i.e. no screw threads, steel shapes are all square corners without fillets, and so on. The occasional bolt head, although that’s little more than an extruded hexagon. No small meshes relative to the overall project, so I don’t think single-precision numbers are going to get in the way too much.

No game engine use is planned - this is strictly rendering for stills and movie production.

There is a lot of repetition, and doing something once for all instances would be fantastic. But all design work is done in other software, everything will be imported. Is there some kind of find-and-replace feature recognition built-in or plug-in available to do that?

split file in several smaller ones
then use a master file with group instancing

with that set up no more problems for rendering with all the precision high res you want

good luck

happy bl