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
path: root/source
AgeCommit message (Collapse)Author
2020-09-19Cleanup: consistent TODO/FIXME formatting for namesCampbell Barton
Following the most widely used convention for including todo's in the code, that is: `TODO(name):`, `FIXME(name)` ... etc.
2020-09-19Cleanup: spellingCampbell Barton
2020-09-19Fix T80880: Outliner colored hierarchy lines on objectsNathan Craddock
Expanded objects with children immediately after a colored collection would have the color applied to their hierarchy lines as well. The fix is to reset the collection color to `COLLECTION_COLOR_NONE` for each open subtree.
2020-09-19EEVEE: Fix Missing GGX multi-scattering on Glass BSDFClément Foucault
Oversight that should have been in rB6f3c279d9e70
2020-09-19EEVEE: Add support for GGX Multi-scatterClément Foucault
Based on http://jcgt.org/published/0008/01/03/ This is a simple trick that does *not* have a huge performance impact but does work pretty well. It just modifies the Fresnel term to account for the multibounce energy loss (coloration). However this makes the shader variations count double. To avoid this we use a uniform and pass the multiscatter use flag inside the sign of f90. This is a bit hacky but avoids many code duplication. This uses the simplification proposed by McAuley in A Journey Through Implementing Multiscattering BRDFs and Area Lights This does not handle area light differently than the IBL case but that's already an issue in current implementation. This is related to T68460. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8912
2020-09-19Fix T79557 EEVEE: Normalize in vector math node is not null vector safeClément Foucault
This add basic null safe handling for this operation.
2020-09-19Property Search: Don't set expansion for panels in inactive tabsHans Goudey
The search should check if a panel is active before changing its expansion, otherwise it sets the expansion for all of the region's panels, even invisible ones in other tabs.
2020-09-18GPUShader: Fix wide line emulation with flat color interpolation.Clément Foucault
This was causing flashing colors in the node editor grid. This is because in some cases the flat color is only set on the provoking vertex which is the last of the primitive by default.
2020-09-18GPUImmediate: Add system wide workaround for wide lineClément Foucault
This makes wide line supported on MacOS and other implementation that does not support wide line by default. This workaround works for all Line types but only if using one of the 5 default shaders. The workaround is completely isolated and invisible to the outside. It has no side effect. Note: This does not affect the GPUBatch drawing.
2020-09-18UI: Use property split in UV editor panelsHans Goudey
This is not an exhaustive change, just for the 2D cursor and UDIM grid properties. Also vertically align the "UV Vertex" buttons like in the 3D view panels.
2020-09-18Fix misalignment of menu items in Preferences > Save & Load menuJulian Eisel
Checking for the layout alignment is not a reliable way to filter out which items need the additional icon/text offset. Instead check if the buttons are icon-only (which we rarely do, e.g. for collection colors in the Outliner context menu).
2020-09-18Cleanup: Resolve warningsJulian Eisel
Unused variables, missing include for declaration, missing 'static' specifier. Also rename function to match naming convention.
2020-09-18UI: Support interacting with superimposed icons while editingJulian Eisel
For example you can now start entering text in the Properties or Outliner search, and press the 'x' while the button is still in text-edit mode. This way you don't have to exit text editing first, before being able to quickly clear the string with a mouse click. So this is a small improvement for convenience. It also works for the eyedropper (change to picking an object while text editing) or the '+' and '-' icons in the file saving dialog.
2020-09-18UI: Support mouse over highlighting for superimposed iconsJulian Eisel
E.g. the 'x' icons or eyedropper icons in text buttons. They didn't use to have any mouse over feedback, now we dim the icon until hovered. This kind of feedback helps users see that the icons are interactive, and if they are within their interaction hotspot.
2020-09-18Curves: Allow caps for all geometry typesHans Goudey
I think this wasn't allowed before because the section of a curve was built in multiple parts. But since rBe34d3e32dda7, the whole slice of a curve is built in one piece, so we can easily support curve caps for all geometry types, including the new custom profile option. Note that this also allows "caps" when the fill type is not full. They could easily be disabled by checking for "Full" fill type if that was preferred in the future. See the patch for images. Differential Revision: https://developer.blender.org/D8911
2020-09-18Unify all XYZ symmetry options using Mesh SymmetryPablo Dobarro
This adds XYZ symmetry as a property of meshes and updates all modes to use the mesh symmetry by default to have a consistent tool behavior between all modes and when switching objects. Reviewed By: brecht, mano-wii, campbellbarton Maniphest Tasks: T79785 Differential Revision: https://developer.blender.org/D8587
2020-09-18Object: Switch Object operatorPablo Dobarro
This object operator exits and frees the edit data of the current object and enters the same mode in another one in a single step, without going through object mode or keeping multiple edit object data active. It is assigned to the D key. This solves all conflicts that the right/click select keymap and the emulate 3 button mouse produces for this operation and it is independent of the state of Lock object modes. Also, as the SculptSession is freed, when using Multires objects go back to their preview resolution level, so it is possible to work on high vertex count scenes without slowing down the viewport and other performance problems. Reviewed By: #user_interface, pablovazquez Differential Revision: https://developer.blender.org/D7510
2020-09-18Sculpt: Render Mask and Face Sets with modifiers activePablo Dobarro
This removes the limitation of the sculpt overlays not being visible with modifiers active. Reviewed By: fclem Maniphest Tasks: T68900 Differential Revision: https://developer.blender.org/D8673
2020-09-18Overlay: Fade Inactive GeometryPablo Dobarro
This implements a new overlay that blends the bakground color over the objects that are not in the same mode as the active object, making them fade with the background. This is especially needed for sculpt mode as there is no other overlay or indication in the viewport to display which object is active. This is intended to be used with D7510 in order to have a faster workflow when sculpting models with multiple objects. Reviewed By: fclem Differential Revision: https://developer.blender.org/D8679
2020-09-18LookDev: Lock HDRI rotation to ViewPablo Dobarro
This adds an option for the HDRI rotation to follow the view rotation. When this option is enabled, this allows EEVEE materials to be used as matcaps for sculpting and painting. This has an extra performance cost when orbiting around the model as the lookdev cache needs to be recalculated, but in my test it is barely noticeable. Reviewed By: fclem Differential Revision: https://developer.blender.org/D8566
2020-09-18Sculpt: Scale Cloth FilterPablo Dobarro
This filter scales the mesh as it was a softbody, producing folds in the surface. The orientation of the folds can be controlled using the filter axis and orientation. This is an example of a cloth filter that uses deform coordinates instead of forces, but probably it does not make much sense to expose it to the user in a different way and with different parameters. I'll remove FilterCache->enabled_force_axis in a later commit and use always enabled_axis in SCULPT_filter_zero_disabled_axis_components for both forces and deformation filters, so this function can also be used in the mesh filter. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8661
2020-09-18Sculpt: Lower the default cloth deformation constraints strengthPablo Dobarro
The deformation constraints strength were too strong and they were preventing the cloth effects of the brushes with cloth deformation target to create folds properly. This lowers the default, making the simulation follow the deformation in a more relaxed way. I'll make a separate patch to expose this as a property for certain brushes and cloth deformers that may need higher values (like boundary with loop falloff on a low poly mesh), but I think this default will work better for most use cases. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8884
2020-09-18Revert "Fix T79523 Paint Cursor: Wide line not supported on OSX"Clément Foucault
This commit caused regression on some sculpt paint cursors. A better approach is being worked on. This reverts commit 6ade522f277fb74d4691973b7bb55840300043a2.
2020-09-18GPencil: Implement Holdout materialsAntonio Vazquez
This new feature allows to use the strokes as an eraser of any stroke below. This is very handy to open holes in filled areas. After running some tests, we have decided to keep the additive effect of the holdout color. To get clean holdout areas, just move the color to black to remove any additive effect. To have additive effect can be used in situations like tint slightly a transparent window with blue to simulate the glass. See T79878 for more details Differential Revision: https://developer.blender.org/D8932
2020-09-18Fix warning printed when duplicating markerJulian Eisel
Steps to reproduce were: * Create a marker in the timeline * With the mouse over the marker region, press Shift+D The function for moving markers was reused and had handling specific to tweak events. This is not relevant in case of duplicating markers.
2020-09-18UI: Correct superimposed icon interaction hotspotJulian Eisel
The hotspot was slighly too large, which could be apparent in cases where there are multiple superimposed icons.
2020-09-18Fix T80927: UV Edges Not Visible When Repeat Image ActiveJeroen Bakker
When repeat image was active the image was drawn in the foreground making most uv overlays not visible. This change creates a shared defined value for repeating and not repeating images.
2020-09-18Fix 80909: Switching to profile bevel can explode Curve geometryHans Goudey
We need to make sure the CurveProfile is initialized with the proper number of segments when switching to profile bevel mode.
2020-09-18Fix T80900: Crash lasso-selecting in particle editmode in certainPhilipp Oeser
situations In the situation that the PTCacheEdit is not available (e.g. when editing unbaked Cloth or Softbody caches - or, as in the report, being in Cloth or Softbody Editing Type for Hair particles), accesing the corresponding ParticleSystem or ParticleSystemModifierData would crash. Now access these later (after PE_start_edit had the chance to return early on this non-valid situation). Reviewers: JacquesLucke Maniphest Tasks: T80900 Differential Revision: https://developer.blender.org/D8941
2020-09-18Cleanup: remove unused navmesh codePhilipp Oeser
These were leftovers from the BGE removal. Differential Revision: https://developer.blender.org/D8862
2020-09-18Fix T80437: Auto IK Double Generates IK constraintsPhilipp Oeser
Caused by rB9a7f5f1bb422. If using Auto IK (or targetless IK and Auto IK together), two temporary constraints were added. - from pose_grab_with_ik_add (even for targetless IK) - from add_pose_transdata (even for Auto IK) Since both both do similar things, but cannot work in tandem (with possibly different chainlengths for example), we have to decide which type to prefer over the other (as in: do not create a constraint for the other). It seems better to ignore the 'Auto IK' option on bones that will have targetless IK set up for them specificallly [e.g. defining special chainlength]. This way you can still work with 'Auto IK' ON generally [with interactive chainlength control], but also have specific bones that need their own custom chainlength. For now, the most straightforward fix is to - only add constraints for Auto IK from pose_grab_with_ik_add() - only add constraints for targetless IK from add_pose_transdata() Note: this area has some potential for later refactoring: - move creation of all temporary constraints to a single place [preferably pose_grab_with_ik_add] - use only those temporary constraints in transform code [atm. we still flip CONSTRAINT_IK_AUTO around on the "original" -- unneccesarily, after rB9a7f5f1bb422 a dedicated temporary constraint is now always available] - clarify CONSTRAINT_IK_AUTO vs. CONSTRAINT_IK_TEMP - obeying standard rotation locks on bones in the chain (not just the the IK locks) is not consistent between targetless IK and Auto IK Potential candidate for 2.90.1 as well as 2.83 LTS Maniphest Tasks: T80437 Differential Revision: https://developer.blender.org/D8930
2020-09-18EEVEE: Fixed Compilation ErrorJeroen Bakker
Regression from {b248ec97769f}. A new parameter was introduced, but the stub shader macros still had the old number of parametes. This change adds a new dummy parameter to the stub macros.
2020-09-18Fix T80904: GPencil: bones cannot be transformed when in weightpaintPhilipp Oeser
mode The transform convert of type TC_POSE was not being defined if the mode was OB_MODE_WEIGHT_GPENCIL. Maniphest Tasks: T80904 Differential Revision: https://developer.blender.org/D8934
2020-09-18Fix T71383: Error setting the windows workspaces from PythonCampbell Barton
Assigning window variables relied on notifiers that always used the active window, no matter the window being assigned. Pass the current window to the notifier.
2020-09-18UV: select face loops when in face-select modeCampbell Barton
Match edit-mesh behavior.
2020-09-18Cleanup: remove unused global locks from BLI_threadsCampbell Barton
2020-09-18Fix T80885: Texture paint camera project crashes after undo/redoCampbell Barton
Unmatched ED_image_undo_push_{begin/end}, add doc-strings noting why this is needed. Thanks to @Baardaap for the initial fix.
2020-09-18UI: Refactor panel alignment functionHans Goudey
This code had grown overly complicated and hard to understand. The improvements in this commit: - Avoid allocating a duplicate of every active panel. - Instead of complicated logic to calculate each panel's offset, just keep track of the current offset while iterating through. - More readable code structure, better comments. Note that calcuting the X offset here is a relic from pre-2.5 when panels could be aligned horizontally. I kept this in, but it would be reasonable to remove it in the future.
2020-09-18Cleanup: Rename variables in panel alignment codeHans Goudey
This makes these variable names more consistent with current standards, mostly by not over-abbreviating already short words. The following commit will refactor this function.
2020-09-18Cleanup: change enum usage so types are explicitly listedCampbell Barton
Structure switch statements so new missing items cause warnings.
2020-09-18Cleanup: use 'UI_icon_*' prefix for icons APICampbell Barton
- UI_collection_color_icon_get -> UI_icon_color_from_collection - UI_idcode_icon_get -> UI_icon_from_idcode - UI_library_icon_get -> UI_icon_from_library - UI_mode_icon_get -> UI_icon_from_object_mode - UI_rnaptr_icon_get -> UI_icon_from_rnaptr - UI_alert_image -> UI_icon_alert_imbuf_get - UI_preview_render_size -> UI_icon_preview_to_render_size - UI_id_icon_render -> UI_icon_render_id
2020-09-18Fix T80771: Avoid changing the visibility of loose geometry when entering ↵Pablo Dobarro
Sculpt Mode When entering scultp mode the visibility from the Face Sets is copied to the base mesh. This steps was considering that if a vertex belongs to a face with a visibible Face Set ID, it should be visible. As loose geometry may not have any faces, those vertex were set to hidden. Now this function check if a vertex visibility should be modified by the face sets (by checking the loops), avoiding modifying the visibility of loose geometry unintentionally. Reviewed By: sergey Maniphest Tasks: T80771 Differential Revision: https://developer.blender.org/D8899
2020-09-18Fix Brushes with deformation target being affected by sim areasPablo Dobarro
Brushes that target the cloth simulation but are not the cloth brush affect the entire mesh, so they don't have simulation areas and falloff. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8885
2020-09-18Fix bad allocation in mask sculpt gesturesPablo Dobarro
Reviewed By: sergey Differential Revision: https://developer.blender.org/D8886
2020-09-17Pointclouds: support mesh <-> pointcloud in convert operatorPhilipp Oeser
Just converts verts to points and vice versa. Materials and Attribute layers are preserved (so for example if you set custom radii on the pointcloud, convert to mesh, then convert back to pointcloud, this will be preserved). Also not add a Radius layer by default (it is still added and filled when adding a pointcloud object from the menu), a global Radius property that will be used if there is no radius attribute can be added later. A Radius attribute can also be added in the pointcloud data properties (and filled via python). This will also add a new utility function that copies materials between datablocks: BKE_id_materials_copy ref T75717 Differential Revision: https://developer.blender.org/D7391
2020-09-17Cleanup: Correct commentsHans Goudey
2020-09-17Cleanup: Doxygen sectionsHans Goudey
2020-09-17Cleanup: remove unneeded check in uiTemplateConstraintHeaderPhilipp Oeser
Following rB7a0a60dde8b4, checking for temporary IK constraints in uiTemplateConstraintHeader is not needed anymore (since the whole panel will now be skipped earlier for those). Differential Revision: https://developer.blender.org/D8902
2020-09-17Fix T80131: Rigid Body World Field Weights dont have a proper RNA pathPhilipp Oeser
(e.g. cannot be animated) An RNA path is mandatory for RNA_path_from_ID_to_property, and for EffectorWeights, this has to be provided using RNA_def_struct_path_func (since this struct is shared across ParticleSettings, Modifiers and Rigid Body World). Without this, the animation system cannot work and e.g. keyframes cannot be inserted. The case for Rigid Body World in rna_EffectorWeight_path was missing, now added. Rigid Body World Field Weights are capable of being animated, tested with file from T80131 (e.g. gravity, wind). Maniphest Tasks: T80131 Differential Revision: https://developer.blender.org/D8713
2020-09-17Shaders: add emission strength input to Principled BSDF nodeAlex Strand
This impacts I/O add-ons. OBJ, FBX and Collada have been updated, glTF not yet. Differential Revision: https://developer.blender.org/D4971