I think what a lot of people don't get is that renderers like PRMan or 3Delight are not about RIB.
They are about flexibility. RIB isn't even needed. 3Delight has allowed sending data directly to the renderer via the RI from the beginning (via C/C++ etc.) and Pixar has announced on their user group meeting in London recently that they are planning to do the same thing for PRMan 14.
They also announced Python support (effectively allowing to use Python in place of RIB, if somebody wanted). Apart from Pixar’s forthcoming ones, there have been Python bindings for RMan via CGKit since years and many places have been using that. Gelato used Python from the beginning and even though the renderer itself failed to impress me so far, their API is much better than the dated RI.
From the perspective of today's pipelines, using a scripting language as the glue is a much better choice.
A language like Lua has the same parsing speed as RIB but all the advances of a full scripting environment (which RIB isn't). Python is 20 times slower then RIB or Lua to parse but you shouldn't really use text-based format to store geometry for the renderer any more anyway these days ... it doesn't matter that much if it really only is used to 'glue' stuff.
Speaking of the renderer itself: it's the shading language that makes all the difference. Programmable shading gives one the flexibility needed for feature film VFX. Do I want to use classic depth shadows or deep shadows? Ray-traced? Use an importance sampled pointcloud with illumination from a set-captured HDR? Do I get GI through final-gathering, photon mapping, or a point-based technique?
If I fire a ray, will that trigger another shader and if so, what will that shader do?
It is not that hard to write an physical-based rendering engine that creates stunning photoreal images in very reasonable times. Even bloody fast.
But if you add programmable shading to the equation, all of a sudden the user can do anything. All the assumptions about known execution paths you have buried in your code to squeeze out that last bit of speed need to be removed for the sake of generality.
That's when it becomes a really hard task to write such a renderer. Even more so if it should be using the minumum amount of memory, allow 3d motion blur & depth of field & micropolygon displacement and overall: stability, stability, stability. Stability is so much more important than speed, it cannot be stressed enough. If the renderer I use is too slow, I can always buy more boxes for the farm. If it crashes, I'm fuc|<ed.
Bugs in a renderer are really expensive because they cost TDs time to work around. New blades for the farm are dirt cheap in comparison.
I'm a long time PRMan & 3Delight user and was a beta tester of almost any RMan-compliant renderer out there in the past 14 years. From all I know I'd say it takes around 10 years to get a renderer from something that renders to something that resembles these swiss army knifes of rendering the big places depend on.
And this has nothing to with how big your team of developers is. Nine women can't have a baby in one month.
Adding a RIB binding to any renderer is a matter of weeks at most.
Making a renderer a true alternative to the ones I mentioned above takes years and has nothing to do with RIB.
.mm