Developer Meeting Notes

From: https://wiki.blender.org/wiki/User:Lukasstockner97/Weekly_Reports#Week_22_and_23_(2022-05-23_to_2022-06-05)

Worked on "Principled v2"

Refactored SVM implementation of Principled node to clean up input passing
Split SVM implementation of old Principled BSDF into components (diffuse+SSS, specular, glass etc.)
Started implementing components of new Principled BSDF
4 Likes

Not if you use Control + H to have only the used functions of a node remain visible. But maybe the individual shaders could get their own submenu in the Add menu, that would already declutter the shader list.

3 Likes

Welcomes

Announcements

Modules & Projects

New Features and Changes

Import / Export

  • STL: Add new C++ based STL importer (commit ) (Iyad Ahmed)
  • USD: Enable operator presets when exporting (commit) (Philipp Oeser)
  • OBJ: Use filename as the default object name (commit) (Jesse Yurkovich)

Geometry Nodes

  • Add nodes to access instance scale and rotation (commit , commit ) (Johnny Matthews)
  • Show supported types in geometry socket tooltips (commit) (Angus Stanton)
  • Spreadsheet Editor
    • Support 8-bit integer attributes (commit ) (Dalai Felinto)
  • Performance improvements
    • Port bounding box node to the new curves type (commit ) (Hans Goudey)
    • Use fields for delete geometry inversion (commit ) (Hans Goudey)
    • Speedup preparing multi-function parameters (commit ) (Jacques Lucke)

User Interface

  • Show gizmo while transforming (commit ) (Campbell Barton)
  • Offset scale gizmos instead of scaling their shape (commit) (Campbell Barton)
  • Align gizmo scale handles to both Y and Z axes (commit ) (Campbell Barton)
  • Tweak Object duplicate-move operator tooltips (commit) (Bastien Montagne)

Curves

  • Add soft selection in sculpt mode (commit, commit) (Hans Goudey)
    • Hide internal UI attributes and disallow procedural access (commit, (commit) (Hans Goudey, Jacques Lucke)
  • Use UV coordinates to attach curves to mesh (commit ) (Jacques Lucke)
  • Add surface UV map name property (commit) (Hans Goudey)

Sculpt

  • Add elastic mode to transform tool (commit ) (Pablo Dobarro)

Grease Pencil

  • Add support to name new layer when moving to layer (commit) (Antonio Vazquez)
  • Line Art
    • Speedup construction of quad trees. (commit ) (Yiming Wu)

Python API

  • Expose background job info to Python (commit ) (Sybren A. Stüvel)
  • Add pre/post/cancel handlers for compositor and background job info (commit) (Philipp Oeser)

Video Sequence Editor

  • VSE: Make time operations self-contained (commit ) (Richard Antalik)

Miscellaneous

  • Color Management: add Filmic sRGB as an image colorspace (commit ) (Brecht Van Lommel)

Weekly Reports

Summary
13 Likes

UI aside, it just wouldn’t perform as well. Simple shaders are good.

3 Likes

yuck, it’d rather continue to have universal building blocks.

Yes, this. But the Advanced submenu should have it’s own categories within.

1 Like

An universal shader might be better for exporting/material conversion.

That’s entirely up to the importers & exporters written for blender.

But also I’m not actually against additional macro nodules. Just saying that as a user I’d rather keep the micros over additional macros if we were forced to choose.

1 Like

From my experience an uber, master standard shader or similar names is what everyone is seeking for when they go to develop some sort of conversion between application shaders. I think no one would replicate all Blender shaders to export for Unreal as an example.
If there is only one choice i don’t favour micros because Blender must be able to be used by non-pros.

The principled bsdf should already be good enough for that type of situation. It’s not like every render engine supports every type of shader to begin with. I thought that the current principled shader wasn’t “physically correct” in the sense that you can’t reproduce stuff like translucency with it. If you develop a material in cycles using the principled shader, you should be able to bake all the textures you would need to make it look good in a game engine and vise versa.

5 Likes

My only complain is if that shader is not improved to be more correct.

But isn’t this some kind of problem in general. Different software/renderer use with different possibilities and features or mathematical models and so you get different shaders sometime speaking of the same thing with different terms and also sometimes value scopes from 0…99, 0…100, 0…1, -1…+1 or even 0…1000 or inverted… Sometimes reflection is refraction sometimes mixing glossyness or shinny values etc. etc. …

I don’t know if for some pro render like Arnold the mathematical model is public but for blender there is the source and i guess the mathematical model is mentioned somewhere (you can even ask)… but for commercial products ??? So what’s correct ? As good as commercial products ?

So the hard task to accomplish is knowing all this to get the best out of the software you use. Of course a just-do-it-shader would be awesome :star_struck:.

3 Likes

That is a specific request to export from one specific blender render engine to a specific game engine.

No render engine or game engine handles materials the same way than another.
That is why, during decades, only way, to give similar look between asset creation software and game engine, was to bake textures before export.

There is only one material interexchange standard called Material X, created by ILM, for movies.
It is a target for team working on Renderman exporter.

Game Engines becoming more and more realist, their shading system became closer and closer to generalist 3D software like Blender.
Open Standard created to have greatest match between game engine and generalist software is glTF.

If you look at glTF doc for Blender and follow rules, your exported asset should look the same in EEVEE and in Unreal.
https://docs.blender.org/manual/en/latest/addons/import_export/scene_gltf2.html#materials

3 Likes

Notes for weekly communication of ongoing projects and modules.

Announcements

Modules & Projects

New Features and Changes

Library Overrides

  • Make animated/driven properties system overrides in Outliner (commit ) (Bastien Montagne)
  • Improve handling of cyclic deps between libraries (commit) (Bastien Montagne)
  • Make 'image/movieclip user` properties editable (commit) (Bastien Montagne)

Geometry Nodes

  • Add Instance Scale input node (commit ) (Johnny Matthews)
  • Add Instance Rotation input node (commit ) (Johnny Matthews)
  • Performance improvements
    • Port delete geometry node to the new curves type (commit ) (Hans Goudey)
    • Port set curve type node to new data-block (commit) (Hans Goudey)

Curves

  • Use radius attribute to determine curve shape in viewport (commit , commit ) (Jacques Lucke)

Sculpt/Paint

  • Improve drawing performance when sculpting with EEVEE enabled (commit ) (Joseph Eagar)
  • Add operator to duplicate the active color attribute layer (commit ) (Dennis Ranish)

Import/Export

  • STL: Add new C++ based STL importer (commit ) (Iyad Ahmed)
  • USD import: Handle material name collisions (commit ) (Michael Kowalski)
  • OBJ: Use filename as the default object name (commit ) (Jesse Yurkovich)

User Interface

  • Add Instance Offset operators to Collections property panel (commit ) (Sybren A. Stüvel)
  • Performance improvements
    • Optimize search from an RNA path + index. (commit) (Bastien Montagne)
  • Nodes
    • Show node description in Node add menu (commit) (Monique Dewanchand)
  • Wayland support
    • Set the minimum window size (commit ) (Campbell Barton)
    • Draw a software-cursor when wrapping cursor motion (commit ) (Campbell Barton)
    • Non-wrapping grab no longer locks the cursor (commit ) (Campbell Barton)

Cycles

  • Add Metal backend debug & profiling functionality (commit ) (Michael Jones)

Video Sequence Editor

  • Improve preview transform auto-keying (commit ) (Philipp Oeser)

Python API

  • blend_render_info: Zstd support, skip redundant file reading & cleanup (commit) (Campbell Barton)

Weekly Reports

Summary
7 Likes

2022-06-13 Eevee/Viewport Module Meeting

Attendees:

  • Clement Foucault
  • Brecht van Lommel
  • Omar Emara
  • Jeroen Bakker
  • Dalai Felinto

Release 3.2

  • [T98708 ] should be added to a corrective release. It fixes an issue on platforms
    That supports OpenGL 4.3, but not the conservative depth extension.
  • [T98620 ] is fixed in master, but was to late to be added to 3.2 release as the
    release window was already closed.

Eevee next

  • Continued on Eevee next. Most render passes are working.
    • Cryptomatte will be handed over to Jeroen.
  • Backported multiple memory improvements from the prototype reducing the required memory for render buffers by 50%.
  • Known issues
    • synchronization: Eevee next uses more async compute shaders.
    • performance: might be solved by splicing current shaders into more smaller ones.
  • Code reviewing of Apple patches take time. Mostly the time it takes before a review comment is fixed and uploaded
    to the patch. We expect that the Metal back-end could slip to another release due to time lead time.
  • Image GPU texture de-duplication patch can be reviewed [T98375 ]

Viewport compositing

  • UI/UX design document has been send to artists of the Blender Studio. Waiting for feedback.
  • Researched what the impact is to integrate the GPU and CPU compositor to the new system.
    Should be straight-forward, but takes a lot of time. We should do a PoC up front.
  • Addressed review comments from the initial patch
  • Investigated how iterative patterns could be implemented. This is required for the Fast Gaussian implementation, Glare node
    and other that use a loop. Reading papers to see for some existing solutions.
  • The viewport compositor should land as an experimental feature. Reasons:
    • Quicker feedback loop from users.
    • Smaller patches to review.
    • Note that the blog-post needs to be updated to reflect that the viewport compositor will land as experimental feature.
  • The viewport compositor could be removed from experimental state when:
    • All nodes that we expect to be able to work on GPU should be implemented.
    • UI/UX should be agreed and implemented.
    • Manual should be updated
      • How to enable the system?
      • How to work with the system?
      • What are the limitations?
      • Add a tag to each compositor node that support the viewport compositor.

Texture nodes/layers

  • Brecht worked on texture nodes prototype. Prototype tries to reuse as much as possible. Also looking how to
    reuse in other areas as well.
  • We discussed a bit how we could do the GPU preprocessing for texture coordinates and texture layers. The viewport
    compositor project has a concept of derived tree callback. Question is how could we integrate this with external
    render engines.
  • Align GPU/CPU evaluation in the GPU module. GPU Materials still rely on the node stack, what should not
    be used anymore.
  • Open topic is how o use attributes within texture nodes.

Hair/Curve drawing

  • Hans Goudey is working on the hair/curve drawing. He might need some support from us to help him forward.
  • This might also become a project that will be asked the Eevee/viewport module to take over.
10 Likes

Howard meanwhile posts a long write-up on rewriting the bevel tool (which would include a version for Geometry Nodes).
:anchor: T98674 Bevel V2 (blender.org)

Pretty much all of the notable shortfalls in the existing tool are slated to be tackled, with features like auto-merging and smarter filling for custom profiles. Then there is the ubiquitous point of how to increase performance.

20 Likes

Two new commits have just brought a huge boost to the import of the industry standard Alembic and USD formats.
rB230f72347a99 (blender.org)
rB5b5811c97b59 (blender.org)

Together, these can chop off nearly 30 minutes of import time needed for very large scenes.

9 Likes

What is the current state of Eevee next compared to the current version?
Are there big features still missing ( which ) or are most already working and is it more bug fixing?
And are there already new features visible?

And when is the viewport compositor expected to land as an experimental feature?
Is there already work done for it or do they need to start with it?

https://developer.blender.org/rB8ece0816d9ddf25c4fc695bf244ed2e261433ee2
I think the Subsurface Scattering new algorithm is something that fclem came up with himself. Maybe they will announce it at SIGGRAPH ?

https://developer.blender.org/D15206
https://developer.blender.org/D15226
https://developer.blender.org/D15227
https://developer.blender.org/D15228
https://developer.blender.org/D15229
https://developer.blender.org/D15230
https://developer.blender.org/D15231

9 Likes

Notes for weekly communication of ongoing projects and modules.

Modules & Projects

New Features and Changes

Geometry Nodes

  • New Volume Cube node (commit ) (Chris Clyne)
  • Add an ‘Intersecting Edges’ selection output to the mesh boolean node (commit ) (Philipp Oeser)
  • Tweak Volume to Mesh threshold socket declaration (commit ) (Jacques Lucke)
  • Performance improvements
    • Speed up Separate XYZ node when not all outputs are used (commit ) (Jacques Lucke)
    • Decrease overhead in function executor used for fields (commit ) (Jacques Lucke)

Import/Export

  • OBJ
    • Support per-vertex colors in importer and exporter (commit ) (Aras Pranckevicius)
    • Add an option for creating vertex groups when importing (commit ) (Aras Pranckevicius)
  • Performance improvements
    • Speed up large USD imports by not rebuilding material name map for each object (commit ) (Aras Pranckevicius)
    • Speed up large Alembic & USD imports by doing fewer collection syncs (commit ) (Aras Pranckevicius)

User Interface

  • Add fallback font stack (commit ) (Harley Acheson)
  • File browser
    • Add operator and shortcut to edit the file browser path (commit ) (Damien Picard)
  • Asset browser
    • Don’t show duplicated catalog name when dragging assets (commit ) (Kevin Curry)
  • Performance improvements
    • Only expand outliner sub-trees if necessary (commit ) (Julian Eisel)
  • Add icons for the curve sculpt tools brushes (commit ) (Dalai Felinto)
  • Use “bl_order” for UI child panels (commit ) (Erik Abrahamsson)
  • Small tweak to custom property edit UI text (commit ) (Dalai Felinto)

Library Overrides

  • Handle dependencies in both directions in partial override cases (commit ) (Bastien Montagne)
  • Simplification and improvements of override creation in the 3D view (commit ) (Bastien Montagne)

Clip Editor

  • Sort tracks alphabetically when they have matched error (commit ) (Sergey Sharybin)
  • Default to average error sort in dopesheet (commit) (Sergey Sharybin)
  • Use Ascending/Descending order instead of “Inverse” (commit) (Sergey Sharybin)

Wayland

  • Add tablet support (commit ) (Campbell Barton)
  • Fractional scaling support (commit ) (Campbell Barton)
  • Support displaying custom software cursors (commit ) (Campbell Barton)
  • Workaround inability to access window position (commit ) (Campbell Barton)

Weekly Reports

Summary

Google Summer of Code

8 Likes

I’m glad the developers are taking the 3.2 Eevee regressions seriously

1 Like