I have tones of geometrical objects (spheres, meshes) I want to render: One way would be to first write a .rib file which could be certainly done and then push that file to a renderman compliant renderer such as the opensource Aqsis render. The problem is this .rib file is soooo massive (1-10gb) that I dont think this is the preferred idea.

Is there a possibility to access the aqsis renderer via a library and then somehow build the rib objects together in c++ and then call the renderer with this in the c++ code? That would be awsome :-).

Or is there another preferred rendering method to render these huge amount of data?


1 Answer 1


The approach is not to generate the RIB on disk or generate all the RIB in one step.

For such large amount of data, the first step is to organize it in some hierarchy fashion so that you have an Octree like bounding box structures. This is important from a memory foot print perspective.

With the above, you would use the Procedural Geometry procedural approach


to emit small amount of geometry when the rendering bucket hits a bounding box containing your geometry (hence the importance of hierarchy bounding boxes). Once a rendering bucket is done, the geometries are discard keeping the memory footprint in check.

Note that the above is just the documentation from Pixar's PRMan (commercial) but is implemented in open source RenderMan renderer like Aqsis.

Depending on the nature of the geometry data you have and the rendering requirements, the complexity of implementation can range from a day to a couple of weeks depending on your experience with RenderMan's API.


  • $\begingroup$ so basically that means writting a helper program which listens on stdin and outputs RIB stream on stdout =). This is helper program is then used by the renderer to send it the bounding box information and the program outputs the Rib stream, how is that set up in a RIB file ? Is there a RIB command to tell the renderer the helper program? $\endgroup$
    – Gabriel
    Commented Dec 11, 2014 at 0:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.