Revision 6be56c1 by Jacques Lucke 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 |
Revision ae0aa4b by Jacques Lucke 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. |
Revision fc4a853 by Jacques Lucke 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: 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: 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) |
Preferences: remove Geometry Nodes from experimental |
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) |
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. |
Revision ea74ed5 by Dalai Felinto 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. |
Revision 60760bd by Dalai Felinto 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 85f9d31 by Jacques Lucke December 2, 2020, 14:33 (GMT) |
Fix T83293: crash when selecting bone This partially reverts rBe922dd7d8a307c54d49bc01649a12610b022192b. The issues fixed by that commit is still fixed. Reviewers: fclem |
Revision 13c3ad7 by Jeroen Bakker December 2, 2020, 14:30 (GMT) |
Revision f8d1378 by Sebastia�n Barschkis December 2, 2020, 14:18 (GMT) |
Deps: Additional changes for PugiXML on macOS This commit expands the Windows-specific code in rBdca9aa0053f7 and Linux-specific code in rB33b7d53df08a. It also fixes a capitalization issue in FindPugiXML.cmake |
Revision d40f5d4 by Jeroen Bakker December 2, 2020, 14:17 (GMT) |
GPU: Blacklist unsupported GPUs that crash during startup. Since Blender 2.91 the TeraScale 2 based cards crash during startup. This patch will show the user a screen that the platform they are using isn't supported. The GPUs have been carefully handpicked from dozens of reports. T83124, T83127, T83103, T83091, T83045, T83065, T82750, T82889, T82925, T82640, T82429, T82436, T82446. |
Revision c576d65 by Germano Cavalcante December 2, 2020, 13:27 (GMT) |
Fix T83161: Crash when moving ruler endpoints and opening or closing the toolshelf `invert_snap` could be called before `snap_gizmo->keymap` was found. Use the lazy initialization in `invert_snap` then. |
December 2, 2020, 12:22 (GMT) |
Transform: Correct Mirror for Object Mode along arbitrary axis This fixes T68521, T82334. The object are not properly mirrored in object mode. For mirroring an object that has an arbitrary rotation along the X axis this is the procedure: 1. mirror x location. 2. negate x scale of the 3. negate y and z component of the rotation (independent of which rotation mode is used). This knowledge applies now for all angles and axes to finally make the mirror operation work in object mode. The new mirror function has the downside that it can not (in this form) be used with proportional editing. This is no problem since the old behavior can still be replicated by scaling with -1 along any axis. The solution to get perfect mirrors can not work for scaling in general, because in that case there could be scew created. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D9625 |
Revision da8dc20 by Philipp Oeser December 2, 2020, 11:35 (GMT) |
Fix T83119: Crash with topology mirror affecting a hidden vertex Caused by rBba97da21acf2. For non-topology mirror hidden verts were never respected/included in EDBM_verts_mirror_cache_begin (they were excluded from the kdtree). Prior to said commit, hidden mirrored verts that were still in the map would have been excluded in a separate loop over vertices in 'editmesh_mirror_data_calc()' by checking BM_ELEM_HIDDEN. Due to the new nature of this function this check was now moved to EDBM_verts_mirror_cache_begin. Maniphest Tasks: T83119 Differential Revision: https://developer.blender.org/D9673 |
December 2, 2020, 10:20 (GMT) |
Add Custom Falloff Curve to the Vertex Weight Proximity Modifier. The Vertex Weight Edit Modifier already got the Custom Curve, there was no real reason for the proximity not to have it as well. With some fixes by Bastien Montagne (@mont29). Reviewed By: mont29 Differential Revision: https://developer.blender.org/D9594 |
Revision 84451f8 by Kévin Dietrich December 2, 2020, 10:18 (GMT) |
Fix T83300: constant scene refreshing in Cycles with empty volumes This infinite loop is caused by a conflict between the volume mesh creation which unintentionally clears the shaders before early exiting when no grid is found, and the Blender exporter which adds back the shaders causing us to reupdate as the shaders changed. To fix this simply preserve the shaders on the Volume node. |
Revision 67353ae by Richard Antalik December 2, 2020, 09:13 (GMT) |
Fix build error on builds without audaspace This was caused by incorrect argument type in dummy function `rna_Sequences_new_sound()` Caused by 13ca11ac52a8 |
|
|
|


Master Commits
MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021