Blender Git Loki

Kaikki Blender Git kommitit.

Page: 1081 / 8462

December 2, 2020, 15:34 (GMT)
UI: Add new node colors for geometry nodes

During the development of the new nodes in the `geometry-nodes` branch
the color of the new nodes wasn't considered, so all of the nodes ended
up red, the color for "input" nodes. This patch introduces two new
colors, one for "Geometry" and one for "Attributes". There are only two
attribute nodes currently, but the next sprint will add two more,
attribute mix, and sample from texture. The attribute nodes are
conceptually different enough from the nodes that modify the geometry
that they deserve their own color.

Differential Revision: https://developer.blender.org/D9682
December 2, 2020, 15:34 (GMT)
Geometry Nodes: automatically reconnect when swapping inputs

This makes it easier to swap the inputs to the Join Geometry node.
The behavior is the same as in the Math node.
December 2, 2020, 15:34 (GMT)
Geometry Nodes: correct modifier name when creating from node editor

The name should be the same as when the modifier is created in the
modifier tab of the properties editor.
December 2, 2020, 15:19 (GMT)
Fix T83309: Hide metadata when overlays are off.

Inconsistency between overlay popover and implementation. Now the
metadata will not be visible when the overlays are turned off.
December 2, 2020, 14:58 (GMT)
Asset Browser: Metadata storage, reading, writing and API
December 2, 2020, 14:39 (GMT)
split logic for reading points and triangles into separate functions
Revision 60760bd by Dalai Felinto (master)
December 2, 2020, 14:38 (GMT)
Geometry Nodes: unify icons -> use ICON_NODETREE for everything

Until there is a icon made specially for this, the nodetree icon is up
for grabs. Using it in the nodegroup + modifier + editor helps the users
to make a connection on where to edit those modifiers.
Revision ea74ed5 by Dalai Felinto (master)
December 2, 2020, 14:38 (GMT)
Cleanup: remove all of "#ifdef WITH_POINT_CLOUD"

Since Point Cloud was removed from experimental this is no longer needed.
December 2, 2020, 14:38 (GMT)
Cleanup: remove most of "#ifdef WITH_GEOMETRY_NODES"

The ones around the simulation datablock are still there, since they are not
needed for the features planned for master yet.
December 2, 2020, 14:38 (GMT)
Preferences: remove Point Cloud object from experimental

The point cloud object is the only one that will support instancing at
first. So we can expose it as a regular object.

It is limited since it has no edit mode. But this is not different than
the volume object.
December 2, 2020, 14:38 (GMT)
Preferences: remove Geometry Nodes from experimental
December 2, 2020, 14:38 (GMT)
Geometry Nodes: improve operators for node editor header

This allows users to create new modifiers directly from the
Geometry Nodes Editor.
December 2, 2020, 14:38 (GMT)
Geometry Nodes: active modifier + geometry nodes editor

This commit adds functions to set and get the object's active
modifier, which is stored as a flag in the ModifierData struct,
similar to constraints. This will be used to set the context in
the node editor. There are no visible changes in this commit.

Similar to how the node editor context works for materials, this commit
makes the node group displayed in the node editor depend on the active
object and its active modifier. To keep the node group from changing,
just pin the node group in the header.

* Shortcuts performed while there is an active modifier will affect
only that modifier (the exception is the A to expand the modifiers).
* Clicking anywhere on the empty space in a modifier's panel will make it active.

These changes require some refactoring of object modifier code. First
is splitting up the modifier property invoke callback, which now needs
to be able to get the active modifier separately from the hovered
modifier for the different operators.

Second is a change to removing modifiers, where there is now a separate
function to remove a modifier from an object's list, in order to handle
changing the active.

Finally, the panel handler needs a small tweak so that this "click in panel"
event can be handled afterwards.
December 2, 2020, 14:38 (GMT)
Geometry Nodes: support muted nodes

The handling of muted nodes is handled at the derived node tree
level now. This is also where expanding node groups is handled.
Muted nodes are relinked and removed from the derived tree
during construction. The geometry node evaluation code does
not have to know about muted nodes this way.
December 2, 2020, 14:38 (GMT)
Geometry Nodes: support geometry components in depsgraph object iterator

Objects can evaluate to a geometry set instead of a single ID (only point cloud
objects for now). In the depsgraph object iterator, the evaluated geometry
components are expanded into temporary objects.

It's important to note that instanced objects can also contain geometry
components. Therefore, they have to be split up into multiple objects
as well in some cases.

At a high level the iterator works like so:

```
for object in depsgraph:
for component in object:
yield object_from_component(component)
for dupli in make_duplis_list(object):
for component in dupli:
yield object_from_component(component)
```

DEG_iterator_objects_next has been cleaned up, to make this structure
a bit more apparent.

This should not change anything for objects that are not point clouds.
December 2, 2020, 14:38 (GMT)
Geometry Nodes: initial scattering and geometry nodes

This is the initial merge from the geometry-nodes branch.
Nodes:
* Attribute Math
* Boolean
* Edge Split
* Float Compare
* Object Info
* Point Distribute
* Point Instance
* Random Attribute
* Random Float
* Subdivision Surface
* Transform
* Triangulate

It includes the initial evaluation of geometry node groups in the Geometry Nodes modifier.

Notes on the Generic attribute access API

The API adds an indirection for attribute access. That has the following benefits:
* Most code does not have to care about how an attribute is stored internally.
This is mainly necessary, because we have to deal with "legacy" attributes
such as vertex weights and attributes that are embedded into other structs
such as vertex positions.
* When reading from an attribute, we generally don't care what domain the
attribute is stored on. So we want to abstract away the interpolation that
that adapts attributes from one domain to another domain (this is not
actually implemented yet).

Other possible improvements for later iterations include:
* Actually implement interpolation between domains.
* Don't use inheritance for the different attribute types. A single class for read
access and one for write access might be enough, because we know all the ways
in which attributes are stored internally. We don't want more different internal
structures in the future. On the contrary, ideally we can consolidate the different
storage formats in the future to reduce the need for this indirection.
* Remove the need for heap allocations when creating attribute accessors.

It includes commits from:
* Dalai Felinto
* Hans Goudey
* Jacques Lucke
* L�o Depoix
December 2, 2020, 14:38 (GMT)
BLI: add missing const
December 2, 2020, 14:38 (GMT)
Functions: add float2 cpp type

This also adds a hash function for `float2`, because `CPPType`
expects that currently.
December 2, 2020, 14:38 (GMT)
Theme: update shader node color to match socket color

Reviewed by Brecht

Ref T82689.
December 2, 2020, 14:38 (GMT)
UI: update node socket colors

Note: This also changes the Shader socket color, to match "Shading" in the Outliner.

Theme update for shader nodes will be committed separately.

Ref T82689.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021