GSoC 2023: Shader editor node preview - Weekly Reports

Report week 4

This was my latest full week of class and I did not have much time to work mainly due to some body issues (too much sport :cry: ). I’ll be fully on GSoC next Wednesday :partying_face: .


I did :

  • fix wrong linking when nodegroup is connected to the output
  • first implementation of previewing event : when the nodetree is updated, tag for refresh every nested tree
  • some cleaning of the already done work
  • fix previewing nodegroup output node
  • try to force eevee rendering when previewing non-shader nodes (I will probably remove it then)

Interrogations of the week :
When to redraw previews ? The ultimate point would be to redraw only when the left graph of the node is updated, but Blender doesn’t have this feature yet, so the approach taken was to increment a nodetree state of change (variable i) and then compare it to the preview already drawn. If the variable of the preview differs from i then the previews need to be rerendered. It is far from optimal but it is the unique option right now.

If some wants to try at the current stage, I link here a build from yesterday.


TODO next week :
The current state of the project is pretty neat, and I think the fundamentals are here. This is time for a first optimisation thing : AOVs (Arbitrary Output Variables) which will be used for optimising non-shader nodes.
Sooo here are this week’s goals :

  • find a way to gather multiple nodes in one render process
  • probably useful to add a preview queue (non shader nodes would be rendered first because they are faster to render)
  • try a first implementation of AOVs by adding AOV node right before rendering the nodes

Approximative time on XCode : 4.5hrs.

9 Likes