Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-15Property Search: Fixes for all tab search V2Hans Goudey
2020-09-14Merge branch 'property-search-highlight-tabs' into property-search-all-tabs-v2Hans Goudey
2020-09-14Property Search: Use pointer for properties space runtime structHans Goudey
2020-09-14Merge branch 'property-search-add-theme-color' into property-search-single-tabHans Goudey
2020-09-14Merge branch 'property-search-move-context-to-panel' into ↵Hans Goudey
property-search-add-theme-color
2020-09-13Apply patch D8816, from Zachary(AFWS) for collection boolean operand.Howard Trickey
Also added code so that exact solver does the whole collection at once. This patch allows users to use a collection (as an alternative to Object) for the boolean modifier operand, and therefore get rid of a long modifier stack.
2020-09-13Cleanup: spelling, update function name in commentsCampbell Barton
2020-09-13Merge branch 'property-search-highlight-tabs' into property-search-all-tabsHans Goudey
2020-09-11Merge branch 'property-search-add-theme-color' into property-search-single-tabHans Goudey
2020-09-11Merge branch 'property-search-move-context-to-panel' into ↵Hans Goudey
property-search-add-theme-color
2020-09-11Image Editor: Enable New DrawingJeroen Bakker
This patch reverses use draw manager for image editor the experimental feature. Now the new drawing is enabled by default. Inside the experimental tab in the user preferences there is now an option to revert back to the old drawing method. Using this option we can easilly check if all drawing features have been migrated over. The plan is to remove the legacy drawing before BCon 3.
2020-09-11Use DrawManager for Image/UV EditorJeroen Bakker
This project moves the current UV/Image editor drawing to the draw manager. Why would we do this: **Performance**: Current implementation would draw each texel per time. Multiple texels could be drawn per pixel what would overwrite the previous result. You can notice this when working with large textures. Repeat image drawing made this visible by drawing for a small period of time and stop drawing the rest. Now the rendering is fast and all repeated images are drawn. **Alpha drawing**: Current implementation would draw directly in display space. Giving incorrect results when displaying alpha transparent images. This addresses {T52680}, {T74709}, {T79518} The image editor now can show emission only colors. See {D8234} for examples. **Current Limitations** Using images that are larger than supported by your GPU are resized (eg larger than 16000x16000 are resized to 8k). This leaves some blurring artifacts. It is a low priority to add support back of displaying individual pixels of huge images. There is a design task {T80113} with more detail. **Implementation overview** Introduced an Image Engine in the draw module. this engine is responsible for drawing the texture in the main area of the UV/Image editor. The overlay engine has a edit_uv overlay which is responsible to draw the UV's, shadows and overlays specifically for the UV Image editor. The background + checker pattern is drawn by the overlay_background. The patch will allow us to share overlays between the 3d viewport and UV/Image editor more easily. In most cases we just need to switch the `pos` with the `u` attribute in the vertex shader. The project can be activated in the user preferences as experimental features. In a later commit this will be reversed. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D8234
2020-09-11Merge branch 'property-search-highlight-tabs' into property-search-all-tabsHans Goudey
2020-09-11Merge branch 'property-search-add-theme-color' into property-search-single-tabHans Goudey
2020-09-11Merge branch 'property-search-move-context-to-panel' into ↵Hans Goudey
property-search-add-theme-color
2020-09-11Merge branch 'property-search-highlight-tabs' into property-search-all-tabsHans Goudey
2020-09-10Sculpt: Enable pen pressure for Scrape/Fill Area RadiusPablo Dobarro
This should improve the issue with Scrape accumulation in concave surfaces. When the strength of the brush is higher, the area radius is also bigger, so the scrape plane is more stable preventing it from accumulating displacement in the same area. The Scrape/Fill default presets are also updated to include this functionality. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8821
2020-09-10DNA: fix asan warning when casting typesJacques Lucke
Reviewers: brecht Differential Revision: https://developer.blender.org/D8865
2020-09-10Property Search: Move search string to a runtime structHans Goudey
2020-09-10Outliner: Move mode toggling to left columnNathan Craddock
Add a column of icons in the left gutter of the outliner for controlling the interaction modes of objects. When an object is in a mode other than object mode, the mode icon will draw to the left of that object. Any other objects that are valid to be added or swapped into the mode are drawn with a dot to the left of the object. Clicking the dot to the left of an object will swap that object with the current active object in the interaction mode. For edit and pose modes, ctrl clicking the dot will add that object to the current mode. Clicking the mode icon next to the active object removes it and all other objects from the current mode. The behavior is nearly identical to the previous edit/pose mode toggling by selecting the mesh and armature datablocks, with additional support for all interaction modes. Currently two undo steps are pushed to prevent an assert. Part of T77408 Manifest Task: https://developer.blender.org/T68498 Differential Revision: https://developer.blender.org/D8641
2020-09-09Property Search: All tabsHans Goudey
This patch enables property search for all tabs in the property editor. This is definitely the most "crazy" of the changes in terms of code, but it's also where the new functionality gets good. There is one piece of funcionality that wasn't obvious when I began the implementation. In order to make interaction faster, if the editor's current tab doesn't have a result, the search moves you to the next panel that does. That way you can just press `ctrl-F`, search, and have the result appear. In order to keep the searching safe, to make sure the editor isn't influenced by anything that happens while building the layout for the other tabs, the space is duplicated and the new search is run in the duplicated editor. This also helps isolate this code, which could be fairly invasive otherwise. Only the layout pass is done in the other tabs, and it works by just running the regular single tab property search (D8856) and checking if any of the active panels in the tab match the search filter. The search match status for every current tab of the property editor is stored in a runtime field and them displayed later by dimming icons in the tab selector panel to the left. The functionality for that dimming is in D8858. Note that there are currently some issues with the tool tab, where some context variables end up being `None`. I'm curious if reviewers have any advice if they encounter this. **Future Improvements** This patch does not addresss the performance aspects of searching every tab. This shouldn't be too bad, but it would be good to make some changes to improve this, ideally in separate patches. I have done some initial profiling, and it looks like a significant portion of time is spent doing string comparisons, so that may be the best place to start. Here are some ideas: 1. Use ghash instead of string lookups for panel types 2. Possibly only search in other tabs while editing search string. I would like to avoid this though. 3. Look into using ED_region_tag_redraw_no_rebuild for some interactions like panel dragging. Differential Revision: https://developer.blender.org/D8859
2020-09-09Property Search: Single tabHans Goudey
This adds a search bar to the properties editor. The full search for every tab isn't includede in this patch, but the interaction with panels, searching behavior, internal UI, region level, and DNA changes are included here. The block-level search works by iterating over the block's buttons and checking whether they match the search. If they do, they are tagged with a flag, and the block's panel is tagged too. For every update (text edit), the panel's expansion is set to whether the panel has a result or not. There is some complications to this that you might no initially think of: 1. Closed panel's subpanels have to be searched too. This adds some complexity and special cases to the area-level panel layout code. 2. //Maybe more if I think of things to add here// There might be some methods of simplifying some of the logic, particularly around choosing whether to highlight panel headers. Also note that automatic subpanel expansion isn't working right now. I'll look into this, but I want to post all the patches first. **Future Improvements** Here are some improvements possible in the future that won't be part of this patch: 1. Use the new fuzzy search in BLI 2. Reseting panels to their expansion before the search started if you `esc` out of the text box 3. Open parent panels if their subpanels have a match but they don't. This requires adding a reference to parent panels for subpanels. Differential Revision: https://developer.blender.org/D8856
2020-09-09Property Search: Add "Search match" theme colorHans Goudey
We use a highlight on panel headers to convey that they have a search match. It's also conceivable to use this color to highlight the property editor tabs that have search results. Normally we don't like adding new theme colors, but this is quite a special case. For example, the color in the outliner is green. This patch has a blue highlight so it feels more cohesive though. Differential Revision: https://developer.blender.org/D8854
2020-09-09Geometry: use generic attributes for Hair and Point CloudsBrecht Van Lommel
Instead of custom data layer with special types, using general Vector and Float attributes. Ref T76659 Differential Revision: https://developer.blender.org/D8635
2020-09-09Geometry: add .attributes in the Python API for Mesh, Hair and Point CloudBrecht Van Lommel
This puts all generic float/int/vector/color/string geometry attributes in a new .attributes property. For meshes it provides a more general API for existing attributes, for point clouds attributes will be used as an essential part of particle nodes. This patch was implemented by @lichtwerk, with further changes by me. It's still a work in progress, but posting here to show what is going on and for early feedback. Ref T76659 Differential Revision: https://developer.blender.org/D8200
2020-09-08Hide tools with missing icons under experimentalPablo Dobarro
This removes from the UI all tools with missing icons and hides them under a "Tools with missing icons" experimental option. We agree on not making available by default tools in master without icons. Having this experimental flag will allow to commit new tools as soon as the technical design and implementation is finished so development can continue, without adding broken icons to the UI. Reviewed By: Severin Differential Revision: https://developer.blender.org/D8831
2020-09-08Cleanup: rename group to collection for internal instancing flagCampbell Barton
Also update old comment.
2020-09-08Cleanup: naming for library link enumCampbell Barton
Use 'e' prefix, update comments.
2020-09-08Link/Append: support instancing object dataCampbell Barton
This patch supports instantiating object data on append/link, reported as a bug T58304. This is an option, available when linking/appending, similar to the existing "Instance Collections" option. Reviewed by @sybren Ref D8792
2020-09-07UI: Add temperature unitsHans Goudey
Based on the original patch by Vaishnav S (@padthai), this adds support for temperature units. Initially supported units are Celsius, Kelvin, and Fahrenheit. The units aren't used anywhere with this commit. Those changes should happen in separate patches by adding PROP_TEMPERATURE to RNA property definitions. But it should be ensured that the various solvers and simulations actually properly use real units. The complexity of some of the changes comes from the fact that these units have offsets from each other as well as coefficients. This also makes the implementation in the current unit system troublesome. For example, entering 0C evaluates correctly to 273K, but 0C + 0C doubles that result, because each unit value is evaluated separately. This is quite hard to solve in the general case with Blender's current unit system, though, so it is not handled in this commit. Differential Revision: https://developer.blender.org/D4401
2020-09-07Add a Self option to the Exact boolean modifier. Fixes T52425.Howard Trickey
With this option, self-intersections in either or both operands will be handled properly (if both sides are piecewise winding number constant, and maybe some other cases too). In the Boolean tool, this flag was there already but the code forced a unary operation in that case; this commit corrects it to make a binary operation. This flag makes the code slower, which is why it is an option and not an always-on thing.
2020-09-07Docs: add note on updating startup defaults to dna_defaultsCampbell Barton
Without this it's not clear which defaults these values are used for.
2020-09-05Cleanup: spellingCampbell Barton
2020-09-04Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fixSebastian Parborg
No functional changes
2020-09-04GPencil: New option to set steps in Interpolate SequenceAntonio Vazquez
Sometimes interpolate all frames is not convenient and it's better, for example, interpolate in twos. The new parameter allows to define the number of frame for each step, by default is set to 1 as before. {F8812621} This is a request of animators to improve interpolate tools. Reviewed By: mendio Maniphest Tasks: T80190 Differential Revision: https://developer.blender.org/D8723 239b0b
2020-09-03Fix T63125: Gpencil: bones cannot be selected in weightpaint modePhilipp Oeser
Some underlying functionality was not ready for greasepencil: - BKE_modifiers_get_virtual_modifierlist (now introduce dedicated BKE_gpencil_modifiers_get_virtual_modifierlist) - BKE_modifiers_is_deformed_by_armature - checks in drawing code - checks in (pose) selection code A couple of changes to make this work: - `eGpencilModifierType_Armature` has to be respected (not only `eModifierType_Armature`) - `OB_MODE_WEIGHT_GPENCIL` has to be respected (not only `OB_MODE_WEIGHT_PAINT`) -- (now use new `OB_MODE_ALL_WEIGHT_PAINT`) - `gpencil_weightmode_toggle_exec` now shares functionality from `wpaint_mode_toggle_exec` -- moved to new `ED_object_posemode_set_for_weight_paint` This patch will also set the context member "weight_paint_object" for greasepencil (otherwise some appropriate pose operators wont work when in weightpaint mode) Reviewed By: campbellbarton Maniphest Tasks: T63125 Differential Revision: https://developer.blender.org/D8483
2020-09-02UI: Use instanced panel custom data instead of list indexHans Goudey
For modifier shortcuts we added a "custom_data" field to panels. This commit uses the same system for accessing the list data that corresponds to each panel. This way the context is only used once and the modifier for each panel can be accessed more easily later. This ends up being mostly a cleanup commit with a few small changes in interface_panel.c. The large changes in the UI functions are due to the fact that the panel custom data is now passed around as a single pointer instead of being created again for every panel. The list_index variable in Panel.runtime is removed as it's now unnecessary. Differential Revision: https://developer.blender.org/D8559
2020-09-02Make rigidbody simulation handle animated objects gracefullySebastian Parborg
The animated objects was not updated for each internal substep for the rigidbody sim. This would lead to unstable simulations or very annoying clipping artifacts. Updated the code to use explicit substeps and tie it to the scene frame rate. Fix T47402: Properly updating the animated objects fixes the reported issue. Reviewed By: Brecht, Jacques Differential Revision: http://developer.blender.org/D8762
2020-08-28Merge newboolean branch into master.Howard Trickey
This is for design task T67744, Boolean Redesign. It adds a choice of solver to the Boolean modifier and the Intersect (Boolean) and Intersect (Knife) tools. The 'Fast' choice is the current Bmesh boolean. The new 'Exact' choice is a more advanced algorithm that supports overlapping geometry and uses more robust calculations, but is slower than the Fast choice. The default with this commit is set to 'Exact'. We can decide before the 2.91 release whether or not this is the right choice, but this choice now will get us more testing and feedback on the new code.
2020-08-28DNA: add pragma once to dna_type_offsets.hJacques Lucke
Sometimes, this generated file is included more than once, so it should have an include guard.
2020-08-25Outliner: Include gpencil modifiers and effects in the treeNathan Craddock
Grease pencil modifiers already had defined outliner icons, but had never been included in the tree. This adds the modifiers and the shader effects to the tree. Part of T68498
2020-08-25Sculpt: Cloth Snake Hook BrushPablo Dobarro
This implements Snake Hook as a deform type for the cloth brush. This brush changes the strength of the deformation constraints per brush step to avoid affecting the results of the simulation as much as possible. It allows to grab the cloth without producing any artifacts in the surface and create more natural looking folds than any of the other deformation modes. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8621
2020-08-24Theme: Remove TH_UV_OTHERS from bThemeJeroen Bakker
`TH_UV_OTHERS` is a theme option that isn't hooked to anything since blender 2.80. This patch will remove the option and related code. Reviewed By: Campbell Barton Differential Revision: https://developer.blender.org/D8669
2020-08-21Cleanup: remove LodLevelJacques Lucke
This was part of the game engine and is not used anymore. Reviewers: brecht Differential Revision: https://developer.blender.org/D8666
2020-08-20Depsgraph: refactor tagging after time changesJacques Lucke
This reverts {rB1693a5efe91999b60b3dc0bdff727473b3bd00bb} and implements an alternative solution. The old patch had the problem that the depsgraph would always evaluate at the current frame of the original scene (even when `DEG_evaluate_on_framechange` was used). Now it is possible to evaluate the depsgraph at a specific frame without having to change the original scene. Reviewers: sergey, sybren Differential Revision: https://developer.blender.org/D8616
2020-08-19UI: Remove panel X axis closing codeHans Goudey
Horizontal panel alignment hasn't been used for years, and we have no plans to use it in the future. It adds a fair amount of complexity to the panel code which makes adding features take longer. This code removes the X closing flag, and all of the logic / variables unused without it. This commit includes a file subversion bump. Differential Revision: https://developer.blender.org/D8601
2020-08-19Fix T79816: Restore scene.statistics() BPY functionHans Goudey
This RNA/BPY function was removed in c08d84748804. For understandable reasons really-- getting scene statistics from a string displayed in the status bar is not exactly the best design. But we have committed to not changing the RNA API too much for the 2.90 release, so we would like to keep this functionality. Differential Revision: https://developer.blender.org/D8604 Reviewd by: Julian Eisel
2020-08-18Sculpt: Enable Cloth Simulation Target for Pose and BoundaryPablo Dobarro
This adds a new brush property called "Deformation Target" which controls how the brush deformations is going to affect the mesh data. By default is set to Geometry, which makes the brushes displace the vertices. When set to Cloth Simulation, the deformation of the brush is applied to the cloth solver constraints, so the simulation is responsible to apply the final deformation. This allows to add cloth simulation effects to other sculpt tools with minor modifications to their code. This patch enables Cloth Simulation deformation target for Pose and Boundary brushes, which are tools that are already designed to work in low poly counts and produce large deformations. This allows creating the most common cloth effects, like bending and compressing folds, without relying on collisions. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8578
2020-08-18Multires: Base Mesh SculptingPablo Dobarro
This adds an option to the Multires modifier to sculpt directly on the base mesh while previewing the displacement of a higher subdivisions level. What this does it considering Multires as a regular modifier without exposing the grid displacement to sculpt mode. This allows to see the propagation happening in real time, which enables to use complex tools like Cloth or Pose in much higher resolutions and without surface noise and artifacts. Reviewed By: sergey, Severin Differential Revision: https://developer.blender.org/D8555
2020-08-18Mesh: merge `mesh_create_eval_final_{view,render}` functionsSybren A. Stüvel
Functions `mesh_create_eval_final_view()` and `mesh_create_eval_final_render()` were doing the exact same thing, except for a hack introduced in d3eb9dddd6b4 (2012-10-08, Better fix for T32846: dupligroup messes up particle instancing on rendering) that appears to be no longer necessary. Besides that, these functions had confusing names. Their functionality changed over time, and whether to do for-render or for-viewport evaluation is now actually determined by the depsgraph evaluation mode. This means that the `..._render` function could evaluate a mesh with viewport settings, and vice versa. The functions are now merged into `mesh_create_eval_final()`, and the hack has been removed. The `OB_NO_PSYS_UPDATE` flag has been removed entirely (instead of keeping it around as deprecated flag), because it was always only temporarily set on objects during mesh evaluation and thus not saved to the blend file. No expected functional changes as far as users are concerned.