[Bf-committers] SOC Project Ideas?

Robert Wenzlaff rwenzlaff at soylent-green.com
Tue Apr 18 18:03:52 CEST 2006


At 11:10 AM 4/18/06, you wrote:
>I don't know if this has been discussed, but from looking at the elysiun 
>/blenderartists forums what the users really want is more render options- 
>eg GI, SSS, and integration to other renderers (such as the RenderMan 
>variants) in the same way that Yafray is.

I guess this is the place where I put in my (annual?) plea for a renderer 
plugin system.

The idea is to provide a standard set of outputs from Blender that an 
external lib can translate in to a standard set of inputs for rendererX.

This way only one set of hooks needs to clutter up the code and any 
renderer can be added independently of the rest of the source tree by 
simply writing the proper translator plugin for rendererX.   The hooks for 
Yafray aren't horrible (not great, but not horrible), but imagine what the 
render code would look like if 25 different renderers were be patched in 
this way.  Eventually a Yafray translator lib could be written and the 
Yafray hooks would be replaced by the generic hooks.

Since this is more or less what the rendernan spec was supposed to do, that 
would be a good place to start as the intermediate language.   We can then 
later extend the intermediate code to allow hooks for information not 
needed by renderman hopefully without breaking the existing translators (I 
can't imagine what info that would be, but rest assured someone will 
imagine it).

Now there are a lot of renderman compliant renderers out there each with a 
slightly different 'dialect" that they speak.  But by modeling the 
Blender[man]  intermediate language after the Renderman spec, those 
translators are simple to write, just adjust for the dialect.  Yafray and 
POVRay, for example, aren't close to renderman, so the translators need to 
be more complex (that's what you get for not sticking to standards), but 
they are still just translators.

Since writing a translator is much easier than trying to find all the 
places a hook would need to be inserted, and since these can be worked on 
independently of the rest of the code, it should make development of new 
render options go faster.  Esp. if we do one translator (POVray?) as an 
example.

Robert Wenzlaff
   




More information about the Bf-committers mailing list