Weekly Reports 2023

Week 14: January 02 - 06

Cycles/Geometry Nodes: working on the microfacet_hair branch

  • Try out different normal modes in the geometry node for the hair curve, such as aligning with the curvature vector or the direction with the minimal potential energy (Cycles only supported hair with circular cross-sections. The new hair BSDF supports elliptical cross-section, it is therefore important to compute meaningful orientations of the ellipse along the curve.)

Week 15: January 09 - 12

Cycles: working on the microfacet_hair branch

  • Replaced the default interpolation weight between the minimal twist vector and the curvature vector with a user-defined weight (rB8ee7e626a5a6)
  • Discussed with Jacques/Hans/Brecht, the new normal mode will be set aside for now, in order to separate Cycles and Geometry Nodes development.
  • Small cleanups and bug fixes in preparation of merging the branch to master.

Week 16: January 16 - 20

Cycles: Refactoring and cleanups.

Week 17: January 23 - 27

Cycles: cleanups and patch reviews.

  • More cleanups in the microfacet_hair branch (API changes and comments).
  • Reviewed some Microfacet BSDF-related patches (D17123, D17100).
  • Added support for non-uniform spot light size to match the gizmo in the view port (D17129).

Experimenting with new gizmo types for lights.

Week 18: January 30 - February 3


  • Created task T104280: Improve visualisation and manipulation of lights in the viewport, including
  1. Add new cage2d draw style for circular shapes (fe5d54d3d0ee)
  2. Add gizmo for adjusting spot light blend (rB3c8c0f1094a3)
  3. Add gizmos for spot and point light radius (afd6358fc0)
  • Fixed spot light blend circle drawn at the wrong position (rBce42906b8962)

Week 19: February 6 - 9


  • Fixed area light gizmo not following the cursor. Perform constrained resizing when dragging the edges, and free-form resizing when dragging the corners (701f90c677)
  • Hold shift key to resize area light uniformly. (104418)
  • Some explorations of showing the light color in overlay and enabling undo for gizmos

Week 20: February 13 - February 15, February 17


Week 21: February 20 - 24


  • Some improvements of gizmo undo pull request
  • Support scaling of light gizmos with zero size (6166dac3ee)

Week 22: February 27 - March 2


  • Continuing explorations of showing the light color in overlay
  • Failed attempt of changing the cursor orientation depending on the hover region on a cage2d gizmo


  • Reading recent rendering papers

Week 23: March 6 - 10


  • Added an optional overlay to show light colors (6fbc52bdca3)
  • For area light gizmo, different constraints apply depending on the hover region (edges for X/Y axis constraint, corners for free-form). Now different handles are shown depending on the hover region to make the constraint more clear (275d69467be)
  • Slightly increased cage2d corner margins for better free-form scaling (48944e7a8ea)


  • Hair BSDFs return black color due to lacking proper implementation. Temporarily fall back to diffuse BSDF to at least show some feedback (b9649c2e72)


  • Fix custom normals not normalized in Cycles shader nodes (e7a3a2c261)
  • A bit on Microfacet Hair BSDF again, fixed initialising with zero Transmission due to copying the Transmission property from the default Principled BSDF (6858fba43d)

Week 23: March 13 - 18


  • Fix artefacts caused by trying to lift the shading normal of diffuse materials (105776)
  • Fix growing BoundBox with empty BoundBox modifies the original BoundBox (d9273d8578)
  • Build light tree in parallel for large scenes (105862)

Week 24: March 20 - 24


  • Refactor light tree implementation to improve readability and efficiency (17c8e0d309)
  • Fix bugs related to light tree bounding cone computation (791f35e2c0, e77b666ae9)
  • Implement faster make_orthonormals() (#106053)

Week 25: March 27 - 31


  • Working on adding instance support in light tree

Week 26: April 3 - 7


Week 27: April 11 - 14


  • Finish adding instance support in light tree (bfd1836861)
  • Clean up Microfacet Hair BSDF implementation (#105600)
  • Some code reviews

Week 28, 29: April 17, 18, 28


  • Finish cleaning up Microfacet Hair BSDF implementation

Week 30: May 1 - 5


  • Address energy loss issue in the Microfacet Hair BSDF (#105600)
  • Review pull request (#107560)