2.8 render engine API papercuts

After having spent a decent amount of time with the new RenderEngine API for 2.8, I’ve collected a number of bugs and missing features that I’d just like to display in one place. Hopefully any other render engine plugin devs will chime in with their own.

Missing stuff:

  • Image datablocks, custom node trees, and particle systems never show up in depsgraph.updates. If these objects are updated the only way to account for it is to delete and then recreate all the relevant entities.

  • Using the material and lamp built in nodetree is a bit of a mixed bag. As stated before, a lot of Cycles nodes show up despite a different render engine being selected. Also, making socket connections between my own shader nodes does not trigger a scene update, yet changing the values inside the node does. Changing socket connections between cycles nodes triggers an update just fine.

  • Object visibility changes don’t cause the object to be included in depsgraph.updates, but it does cause its instance to vanish from the object_instances list. Basically the only way to catch these changes is to delete and recreate all the instances every time a scene update is triggered, since that instance might appear or disappear anywhere in that object_instances list. Same goes for particle system changes, frame number updates, adding or removing dupli object relationships, etc… Basically any change that happens to something other than a discreet datablock.

None of these things are game breakers, but taken all together it is making developing an effective render addon that doesn’t choke every time a scene update happens more difficult than it could be.

5 Likes

I totally agree.
I could add the lack of flexibility to design and create custom node trees.
Cheers…

To add another: objects that appear in the updates list have the ‘is_updated_transform’ flagged as true even when the change was an object parameter (i.e. no movement happened)

Maybe this would relate to image datablocks? For now I’m stuck with world textures no longer existing… a bit lost by what to replace them…?