Question

I'm architecting a project which will use many PNG files which must be rendered from 3D models of clothing (we have yet to hire someone to create the models). We have a variety of texture maps (different types and colors of cloth, etc) which will be used with the models (each model may be rendered many times, with different textures). In the future, we will add and change both models and texture maps, and need to be able to automatically re-render the PNGs on demand.

So we are looking for either:

  1. A standalone 3D rendering engine which can be run from the command line. It must accept an input format which we can easily generate with a custom script.

  2. A 3D rendering library which can interoperate with a popular programming language such as Java or Ruby, and which can load 3D models in popular modeling file formats.

We are looking at Yafaray (http://www.yafaray.org), which can be run from the command line, and which takes an XML scene description as input, but I'm sure there may be better options. Can you give an objective breakdown of the pros/cons of options which you are aware of?

Was it helpful?

Solution

3D rendering engine for offline

Makehuman uses several external renderers. You might want to check them out.

Can you give an objective breakdown of the pros/cons of options which you are aware of?

No. It is unclear what kind of project you're designing.

At this point I suspect you're trying to make custom render farm from scratch, and if I'm right about that, correct solution would be to use existing software - maya/3dsmax had some render farm support, and it should be possible to make blender-based render farm as well. From those packages maya definitely had scripting support (MEL/python, I think), and good portion of blender is written in python.

If you want GL-style renderer, then Mesa3D provides library that is "mostly" OpenGL compatible, but works on CPU without graphical acceleration. Which means you should be able to use it for offscreen rendering without making a window. Because it renders everything on CPU, it will be much slower than accelerated rendering on GPU.

There's also Pixomatic software renderer that provides DirectX style api. Haven't used this one myself.

It depends on your project. If you want to render some 3d model with ambient occlusion, radiosity or photon tracing, you need render farm with full-blown software render like blender/maya/3dsmax. If you simply want to render model offline then you could slap together simple solution using Mesa3D or standard OpenGL during lunch break. If I remember correctly, povray was good for boolean shapes aka Constructive Solid Geometry (boolean shapes are pain to implement using libraries that operate on triangles, but are trivial in raytracer).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top