[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