Revision 2250b5c by Julian Eisel December 18, 2020, 17:28 (GMT) |
UI: Redesigned data-block selectors The previous design is rather old and has a couple of problems: * Scalability: The current solution of adding little icon buttons next to the data-block name field doesn't scale well. It only works if there's a small number of operations. We need to be able to place more items there for better data-block management. Especially with the introduction of library overrides. * Discoverability: It's not obvious what some of the icons do. They appear and disappear, but it's not obvious why some are available at times and others not. * Unclear Status: Currently their library status (linked, indirectly linked, broken link, library override) isn't really clear. * Unusual behavior: Some of the icon buttons allow Shift or Ctrl clicking to invoke alternative behaviors. This is not a usual pattern in Blender. This patch does the following changes: * Adds a menu to the right of the name button to access all kinds of operations (create, delete, unlink, user management, library overrides, etc). * Make good use of the "disabled hint" for tooltips, to explain why buttons are disabled. The UI team wants to establish this as a good practise. * Use superimposed icons for duplicate and unlink, rather than extra buttons (uses less space, looks less distracting and is a nice + consistent design language). * Remove fake user and user count button, they are available from the menu now. * Support tooltips for superimposed icons (committed mouse hover feedback to master already). * Slightly increase size of the name button - it was already a bit small before, and the move from real buttons to superimposed icons reduces usable space for the name itself. * More clearly differentiate between duplicate and creating a new data-block. The latter is only available in the menu. * Display library status icon on the left (linked, missing library, overridden, asset) * Disables "Make Single User" button - in review we weren't sure if there are good use-cases for it, so better to see if we can remove it. Note that I do expect some aspects of this design to change still. I think some changes are problematic, but others disagreed. I will open a feedback thread on devtalk to see what others think. Differential Revision: https://developer.blender.org/D8554 Reviewed by: Bastien Montagne Design discussed and agreed on with the UI team, also see T79959. |
Revision 7bee148 by Hans Goudey December 18, 2020, 15:34 (GMT) |
UI: Rename "Float Color" attribute data type to "Color" Since "Float Color" is more commonly used than "Byte Color", which is not exposed in the interface yet anyway, it makes sense to drop the "Float" label on the color data type name. |
Revision 3deb210 by Jacques Lucke December 18, 2020, 15:02 (GMT) |
Geometry Nodes: support randomly picking instances from collection This uses the "id" attribute to randomly pick instances from a collection for each point. There is one issue. When the collection is updated (e.g. when an object is added to it), the nodes modifier is not automatically updated. It seems like we don't have the infrastructure to support this dependency yet. The same issue exists in the Boolean modifier and with collision collections. This should be solved separately soonish. When "Whole Collection" is disabled, one direct child of the input collection is instanced at each point. A direct child can be an object or a collection. Currently, all objects are picked approximately equally often. In the future, we will provide more control over which point gets which instance. Differential Revision: https://developer.blender.org/D9884 Ref T82372. |
Revision 1be465c by Antonio Vazquez December 18, 2020, 14:57 (GMT) |
GPencil: Fix potential error in interpolate frame As now it is using a duplicated frame, the untag must be done before copying the frames. |
Revision f3b5038 by Philipp Oeser December 18, 2020, 13:41 (GMT) |
Fix T83916: Cannot drag link from socket if node is inside frame Caused by rB7470c10601d0 where iterating nodetree nodes was changed from backwards to forwards by mistake. Maniphest Tasks: T83916 Differential Revision: https://developer.blender.org/D9890 |
December 18, 2020, 13:13 (GMT) |
Fix T83716: Dope Sheet, incorrect scaling of channel UI elements Change the top coordinate of the animation channel list UI elements to `rect->ymin` so they correctly span from `rect->ymin` to `channel_height`. Some buttons in the dope sheet channels didn't scale properly with the `Keyframe Scale Factor` preferences setting. This was caused by using the `ymid` value (`ymid = BLI_rctf_cent_y(rect) - 0.5f * ICON_WIDTH`) to position the buttons that supposed to fill all vertical space in the channel (with `channel_height` height). The `ymid` value is only appropriate for the UI elements that with `ICON_WIDTH` height. Maniphest Tasks: T83716 Reviewed by: sybren Differential Revision: https://developer.blender.org/D9841 |
Revision e576401 by Jacques Lucke December 18, 2020, 12:33 (GMT) |
Geometry Nodes: move Boolean node to mesh category This node works on meshes specifically. |
Revision 79d6bd9 by Jacques Lucke December 18, 2020, 12:28 (GMT) |
Functions: add generic pointer class for const pointers This adds a GPointer class, which is mostly the same as GMutablePointer. The main difference is that GPointer references const data, while GMutablePointer references non-const data. |
Revision c5569ba by Jacques Lucke December 18, 2020, 12:28 (GMT) |
Geometry Nodes: do not crash when there are undefined nodes Undefined geometry nodes will just output a default value now. |
Revision f43561e by Dalai Felinto December 18, 2020, 12:03 (GMT) |
Function Nodes: Input Vector Ref: T82651 Normally people use "Combine XYZ" to input a vector, but it is more interesting to have an explicit vector input. So this is basically "Combine XYZ" without any input sockets, the values are stored in the node itself. Differential Revision: https://developer.blender.org/D9885 |
Revision b342e08 by Sybren A. Stüvel December 18, 2020, 12:02 (GMT) |
Fix mistake in Bake Action discontinuity fix Fix mistake in e5528904f12 where one change accidentally wasn't included in the commit. |
Revision e552890 by Sybren A. Stüvel December 18, 2020, 11:50 (GMT) |
Fix T83351: Baked object rotation has discontinuities Fix Euler discontinuities in the Bake Action operator, by explicitly using the previous Euler angles when converting from matrix to rotation. This basically follows the same approach as used in e4ca1fc4ea43, although the Euler Discontinuity Filter also performs single-channel filtering which the Bake Action operator doesn't. |
Revision fe5d244 by Jeroen Bakker December 18, 2020, 09:26 (GMT) |
Fix T83494: Eevee clamp node incorrect when min > max. In glsl the clamp function has undefined behavior when min > max. For the clamp node this resulted in differences between cycles and eevee. This patch adds the expected implementation for minmax. The old clamp function is still used in cases where we know for certain that the input values are correct (math node clamp option). GPU uses optimized code and silicon in these cases. |
Revision ffb6648 by Jeroen Bakker December 18, 2020, 08:56 (GMT) |
Fix T83625: Shading attribute names cause compilation error. Some GPU platforms don't support having more than one underscore in sequence in an attribute name. This change will remove the underscore as a possible character when encoding to save names. |
Revision 4f9e21b by Jeroen Bakker December 18, 2020, 08:18 (GMT) |
Fix T82591: Performance regression when rendering at very high resolution This patch introduces a partial update of GPUTexture. When rendering a large image the GPUTexture could have been scaled. The old implementation would rescale the image on CPU and create a new GPUTexture. This resulted in flooding the PCI bus. The new solution would only scale and upload the parts of the GPUTexture that has been changed. It does this by keeping track of areas of 256x256 pixels. When something changes the tiles that cover that changes will be rescaled and uploaded the next time the GPUTexture is requested. Test situation: Default Cube, 4 samples, 19200x10800 tile size 512. Blender 2.83.9: 4m27s. Blender 2.91: 20+m (regression) This patch: 1m01s. There is still room for more optimizations: * Reduce the time that an image is locked. ** Use task scheduling to update the tiles of an image. ** Generic optimization of the ImBuf scale method. Maniphest Tasks: T82591 Differential Revision: https://developer.blender.org/D9591 |
Revision 095b693 by Hans Goudey December 18, 2020, 05:35 (GMT) |
Outliner: Set active modifier on click The outliner already expands the panel for the modifier you click on, this just extends that idea to also set it active, which is consistent with behavior of active and selected items elsewhere in Blender. |
Revision 9dbc014 by Hans Goudey December 18, 2020, 04:53 (GMT) |
Cleanup: Various clang tidy warnings There are more in the new mesh fairing code and in the poisson distribution code, this commit doesn't fix those. |
Revision 7d25139 by Nathan Craddock December 18, 2020, 03:10 (GMT) |
Fix T82960: Inaccurate selection on collapsed outliner rows After rB15083d9e1 the outliner tree is not rebuilt after expanding or collapsing rows. Because the tree is no longer rebuilt the positions and flags of the elements are not cleared when collapsing a row. This caused hover highlights and selections on the collapsed child icons to be incorrect in many cases. For example, only the direct children of a collapsed element are drawn inline. If any grandchild elements had been previously icon row flagged they would continue to be evaluated as icon row elements despite being hidden. In this case the x coordinates of the child and grandchild would overlap causing selection to appear erratic. Now the flags for inline row icons are explicitly cleared, which was previously only done because the tree was rebuilt on collapsing rows. |
Revision 7cbcfb7 by Nathan Craddock December 18, 2020, 02:59 (GMT) |
Cleanup: Use LISTBASE_FOREACH macro in outliner code No functional changes. |
Revision f880fe2 by Nicholas Rishel December 18, 2020, 01:21 (GMT) |
Fix T82288 Wintab walk navigation erratic. Walk navigation relies on tablet data being set to detect if motion is absolute. This patch sets tablet data in Ghost to dummy values when a tablet pen is in range and not handled by Wintab processing. |
|
|
|


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