← All ideas
  • Published 15 Mar 2024

Property access via Data Blocks in Geometry Nodes

TLDR: Add a node, that takes a data block, exposing some of its data as sockets.

Currently we are able to access a very limited range of properties, for example Object Transforms with the "Object Info" node, the current Frame or in 4.1 "Active Camera".

With different nodes being added occasionally, which give new data access, it also increases the count of individual nodes with single purpose. This cluttering of nodes and the time factor can be avoided:

Proposing the "Data Block Properties" Node Types Menu.png

The user selects any kind of data block and gets the corresponding properties as node sockets.

If we say there is a Data Block "Camera.001" in the file, the user select the type as "Camera" and the data block of choice, obtaining all the properties as output sockets (example has fewer outputs, than existing properties to keep it simple):

Data Block Properties Proposal.PNG

Blender already has this kind of system with group nodes. Select an appropriate "Node Tree" data block and get the according sockets. This system could be extended to all types of data.

A system like this would make the nodes mentioned above redundant, as "Active Camera" could be retrieved from a "Scene" datablock. An object data block would give alot more information than the Transforms we get from "Object Info".

It resolves various proposals already made here, like this one about string access from "Text" Data Blocks: blender.community/c/rightclickselect/QkRG/

Or this one, trying to get more precise data about the mesh: blender.community/c/rightclickselect/Pjyw/

It also shares the spirit of this proposal, requesting materials AS nodes, comparable with how any geometry node setup is actually just a group: blender.community/c/rightclickselect/O8WY

Thinking this further, by introducing a new "data" socket these operations could be chained to retrieve data very dynamically.

Imagine Taking the Properties from a certain "Scene" block, retrieving "Active Camera" and using this output to drive a property node of the Type "Camera". This would not only give information about a camera, but about the active camera, opening possibilities for consistent camera culling with geometry nodes, without the need for drivers.

This is just an example for the endless possibilities accessing data blocks in geometry nodes would have.

An initial implementation (without specific "data" sockets) wouldn't need any new data types and could just make the existing ones accessible. Menu Items like here "Unit" or "Sensor Fit" for example could be given as string for now, still allowing to comparison of strings to determine the mode.

I consider this proposal primarily future proof and scalable, while making use of the currently existing features inside Blender.

It solves the issue of too many nodes for single things, as well as not only giving selected properties to the user, but all of them.

Let me know your thought, making this happen would be a leap for Blender's Geometry Nodes.

94.4%

Development Status: Open

Upvote 17 Downvote 1
pitched
15 Mar 2024

0 Comments