Blender Git Commit Log

All Blender Git commits.

Page: 1176 / 8462

October 28, 2020, 14:41 (GMT)
GPencil: Change Trace tooltips
October 28, 2020, 14:36 (GMT)
GPencil: New support to trace sequence images

Now it's possible to trace a sequence of images and not just a single one

When the trace is for more than one image, a bacth job is started to process all frames.

Note: All trace data is generated by Potrace library.

Differential revision: https://developer.blender.org/D9316

October 28, 2020, 14:19 (GMT)
fix for race condition in motion blur sockets update
October 28, 2020, 14:18 (GMT)
Merge branch 'master' into arcpatch-D8544
October 28, 2020, 13:53 (GMT)
Geometry Nodes: fix missing update when inserting a node between two nodes
October 28, 2020, 13:05 (GMT)
Geometry Nodes: improve api for nodes

The execute callback of a geometry node gets more domain specific
types as parameters now: GeoNodeInputs and GeoNodeOutputs.

Those types are also aware of what node is being executed and can
provide better error messages when they are used incorrectly.
October 28, 2020, 13:01 (GMT)
Merge branch 'master' into geometry-nodes
October 28, 2020, 12:57 (GMT)
BLI: improve Map.add_new

Now it is possible to use Map.add_new_as which supports different types
for the key and value.
October 28, 2020, 12:04 (GMT)
UI: Save Preferences Button Not Translating

Ref D9338
October 28, 2020, 11:57 (GMT)
UI: Save Preferences Button Not Translating

Ref D9338
October 28, 2020, 11:53 (GMT)
avoid infinite loops in the viewport when synchronizing the Integrator
October 28, 2020, 11:43 (GMT)
Cycles: internal support for alpha output for attribute node

Not exposed in Blender yet.

Ref D2057
October 28, 2020, 11:43 (GMT)
Cycles: internal support for per-instance and per-geometry attributes

The existing code for this was incomplete. Each instance can now have a set
of attributes stored separately from geometry attributes. Geometry attributes
take precedence over instance attributes.

Ref D2057
October 28, 2020, 11:43 (GMT)
Cycles: refactor to make attribute lookup slightly more efficient

Ref D2057
October 28, 2020, 11:43 (GMT)
Cycles: internal support for float4 geometry attributes

Previously only float3 and byte4 was supported.

Ref D2057
October 28, 2020, 11:43 (GMT)
Cycles: refactor to split surface and volume attribute lookup more

This avoids OpenCL inlining heavy volume interpolation code once for every
data type, which could cause a performance regression when we add a float4
data type in the next commit.

Ref D2057
October 28, 2020, 11:28 (GMT)
Cycles API: use getters and setters for accessing Node sockets

Introduce a set of macros to define getters and setters for accessing or modifying socket data. This is needed to detect data changes.

For each socket the macros define the following methods:

```
get_x()
set_x()
is_x_modified()
```

where x is the name of the socket.

is_x_modified() is a convenience to access the state of the underlying socket's update_flag.

Since the macros define the methods in header files, and use the Node API, we run into a few issues:

* some Node have a member called `type`, e.g. in Geometry to discriminate between Mesh, Volume, or Hair, which conflicts with Node::type, so those members were renamed (to `geometry_type`, `wave_type`, etc.)

* we have to include header files defining nodes if a pointer to the node is used. This is because Node::set has multiple overload but the C++ type system will cast the pointer to bool and use Node::set(bool) instead of Node::set(Node*) if it cannot know the pointer derives from Node. This will lead to a runtime error, most likely a crash, perhaps we can make some changes to have a compile time error instead.

* properties that are arrays of typed Nodes (like Geometry::used_shaders) were converted to array<Node *> so they can be used with Node::set(array<Node *>)

Class members corresponding to sockets are now `protected` (so derived classes can access them), and other members who were accessed in the Blender exporter but were not sockets were transformed into sockets where it made sense.

For the Mesh node, the structures containing subdivision data were split into array sockets; added a convenience method for accessing the data as structure (`SubdFace` and `SubdEdgeCrease`). In some cases, this seems to improve cache coherency as only one of the array is accessed.

The interface to export Blender data to Cycles does not play well with the idea of updating sockets in one go. Mesh and Hair classes have convenience methods to set their data which modifies multiple sockets simultaneously (e.g. Mesh::add_triangle modifies the `triangle`, `smooth` and `shader` sockets), but ideally we would need to set the (new) data at once to detect changes. I am not sure what the best approach is for that, so I have simply modified the exporter to use temporary Mesh and Hair node to accumulate the data and update the original objects in one go, which will set the update flags appropriately. This is not so nice as the API that modify multiple sockets is still present on the Mesh or Hair class, and might confuse API clients. One idea would be to introduce the concept of `{Mesh|Hair}Builder` to accumulate the data; this would require to change the way Attributes are allocated (which is accessing the Geometry for knowing the data size) and also refactor the exporter a bit more.

Reviewed By: brecht

Maniphest Tasks: T79174

Differential Revision: https://developer.blender.org/D8544
October 28, 2020, 10:45 (GMT)
Add a Un-Bake FCurves operator

We already had the ability to bake fcurves but no way to convert the
baked result back without using python. This patch adds and operator
that is available now next to the bake operator in the drop down menu,

Reviewed By: Sybren

Differential Revision: https://developer.blender.org/D6379
October 28, 2020, 10:11 (GMT)
Merge remote-tracking branch 'origin/master' into lanpr-under-gp
October 28, 2020, 10:08 (GMT)
Merge branch 'blender-v2.91-release' into master
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021