Post

GSoC 2025 - Week 11

This week, I got started on the rendering support items after wrapping up the density entity related changes.

Here is the progress I made:

  • PR #920 (merged) - Density ISO Surface Style
    • Updated PR with additional commits since last week
      • Added contour enhancements, which uses the curve to mesh node that now works in both 3D viewport and renders, added options to control the contour thickness and color
      • Added multi-level panel support for the styles panel so that it shows all the node inputs in their respective panels (as specified in the Geometry Node) for better organization
      • Added visibility support for the density style node
  • PR #926 (open) - Auto compositor setup
    • Discussion #925 outlines the need for this and the approach being taken
    • Added support for automatic compositor setup, which ensures that annotations are part of the final renders
    • User configurable option for the auto setup along with manual compositor setup from the n-panel of the composite editor to allow full control by the user
    • A new extensible node group that can be used for MN composite needs in the future
  • PR #929 (open) - Annotation params override
    • Added support to override common annotation params when writing annotation code. This allows advanced annotations that have different text sizes, colors etc that can also be made as user inputs if needed
  • Discussion #924 - UI in 3D viewport n-panel vs Object properties
    • As discussed in the last meeting, started this discussion to outline the pros and cons of having the UI in the 3D viewport n-panel vs the Object properties panel
  • Created a tracking bug #927 to disable backface culling for default MN materials
  • Created a bug #930 to track entity type fixes needed before styles and annotations support can be added for the remaining Ensemble entity types (StarFile, CellPack)

Here are some learnings from this week:

  • Panels created using <layout_item>.panel() in Blender can be None immediately after, so a guarding check is needed to use this correctly in the UI code
  • Empty git commits can be made using git commit --allow-empty ... - to force any test runs, etc
  • When drawing on the 3D viewport (say an object’s annotations), it is always a good idea to check if that object is in the current scene (view layer) because there could be multiple scenes
  • Both the Geometry Node editor and Composite editor have the same area type (NODE_EDITOR), so the tree type in the context’s space data (context.space_data.tree_type) has to be used to distinguish between them (eg: CompositorNodeTree for Composite editor)

Next week will be week 12 and the final week of coding for GSoC 2025. I started a discussion #928 to outline items that I will be working on.

This post is licensed under CC BY 4.0 by the author.