[Bf-committers] A few requests for the new API
whiterabbit at dreamscapearts.com
whiterabbit at dreamscapearts.com
Tue Mar 9 05:36:29 CET 2010
Hello everyone,
I'm not clear as to where I should report problems and request features
for the new API so I'm going out on a limb and asking here. If there's
somewhere I should do this officially someone Please point me in that
direction ;-) I'm Eric Back aka whiterabbit the developer of the
RIBMOSAIC RenderMan script
<http://sourceforge.net/apps/mediawiki/ribmosaic/index.php?title=Main_Page>.
I've been rewriting ribmosaic for Blender 2.5 and have run into several
issues.
The gist of what I'm trying to do is create a panel for RenderMan passes
very similar to Blender's render layer panel. I have something basically
working however I've run into several difficulties that I feel should be
improved and one serious showstopper!
The first task is to add a list widget to navigate passes with the
ability to enable or disable them in the list (like layers do). The
problem is "template_list" only recognizes the "name " property in
"PropertyGroup". Features such as the "enabled" toggles for layers only
activate with hard coded property types such as "SceneRenderLayer" (as
far as I can tell from Blender's source). It would be nice to either
have the template recognize certain property "attr" names and add
buttons accordingly (such as if "attr" is "enabled" add a toggle) or to
be able to specify them as template parameters. I've worked around the
issue by adding the "enabled" toggle for passes just below the list
however I'm sure users will ask why RIBMOSAIC doesn't work like
Blender's with toggles in the list.
The next task is to add "visible layers" and "used layers" widgets for
each pass (just like the layers panel has). The "visible_layers"
property works as expected for this task, however even though I can
create a 20 element boolean array using "BoolVectorProperty" I cannot
assign it as a 'LAYER' subtype (so it will not show as a layers widget).
As a work around I decided to use "template_layers" instead. This works
however the widgets are too small since I think they are only meant for
headers? I can make this work but it would be nice if either 'LAYER' was
added as a subtype for "BoolVectorProperty" or parameters were added to
"template_layers" to control its visual style (such as a small header
style and larger panel style).
This last task is the "show stopper" for me currently. I can add and
remove passes to the list easily using "PropertyGroup.add()" and
"PropertyGroup.remove()" but I also need to reorder the passes in the
list. This is critical as changing the order of the passes for export is
very important. I noticed in Blender's source that certain property
types have this behavior by using hard coded operators. Is it possible
to add the "slot_move" operator for the "PropertyGroup" class as well,
or is there some other way to do this in Python?
I also have a feature request. RenderMan handles texture export and
lighting very differently then Blender. It would be nice to add the
"COMPAT_ENGINES" feature to the Texture and Lamp panels so we can remove
those Blender specific features from the render pipeline. This way all
elements of Blender's render pipeline can be removed from the GUI.
Thanks in advance,
Eric Back (WHiTeRaBBiT)
More information about the Bf-committers
mailing list