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
2021-04-09Fix use of uninitialized memory in BKE_scene_objects_as_gsetCampbell Barton
Share macro for setting BLI_Iterator defaults to ensure this doesn't happen again in cases the ITER_* macros aren't used. Oversight in 14d74fb34174a91190d35d7fe595f8dd64cb79d1.
2021-04-09Fix: Missing GeometryNodeCustomGroupRay Molenkamp
This is a minor change to add some plumbing code to support custom geo nodes. This is working the same way as the custom cycles and compositor nodes. An example add-in is attached to D10784 Reviewed By: JacquesLucke Differential Revision: http://developer.blender.org/D10784
2021-04-08Cleanup: Use const arguments for volume codeHans Goudey
The problem was that you could getting write access to a grid from a `const Volume *` without breaking const correctness. I encountered this when working on support for volumes in the bounding box node. For geometry nodes there is an important distinction between getting data "for read" and "for write", with the former returning a `const` version of the data. Also, for volumes it was necessary to cast away const, since all of the relevant functions in `volume.cc` didn't have const versions. This patch adds `const` in these places, distinguising between "for read" and "for write" versions of functions where necessary. The downside is that loading and unloading in the global volume cache needs const write-access to some member variables. I see that as an inherent problem that comes up with caching that never has a beautiful solution anyway. Some of the const-ness could probably be propogated futher in EEVEE code, but I'll leave that out, since there is another level of caching. Differential Revision: https://developer.blender.org/D10916
2021-04-08Spreadsheet: support showing data of specific nodeJacques Lucke
Previously, the spreadsheet editor could only show data of the original and of the final evaluated object. Now it is possible to show the data at some intermediate stages too. For that the mode has to be set to "Node" in the spreadsheet editor. Furthermore, the preview of a specific node has to be activated by clicking the new icon in the header of geometry nodes. The exact ui of this feature might be refined in upcoming commits. It is already very useful for debugging node groups in it's current state though. Differential Revision: https://developer.blender.org/D10875
2021-04-08Fix T81707: Spline IK Joints "Floating" above curveSebastian Parborg
The issue was that where_on_path uses a resampled curve to get the data from the curve. This leads to disconnects between the curve the user sees and the evaluated location data. To fix this we simply use the actual curve data the user can see. The older code needed a cleanup either way as there were hacks in other parts of the code trying to work around some brokenness. This is now fixed and we no longer need to clamp the evaluation range to 0-1 or make helper functions to make it do what we actually want. Reviewed By: Campbell, Sybren Differential Revision: http://developer.blender.org/D10898
2021-04-08Text Editor: don't force other views to follow the cursorCampbell Barton
While the existing behavior worked as intended, it wasn't possible to have two views on the same file at different locations. Since there isn't much use in having two views open at the same location allow one view to be at a different scroll location. UI edit-source and selecting a text data block now need explicit calls to scroll to the cursor location. Resolves T87284
2021-04-08Cleanup: spellingCampbell Barton
2021-04-08LibOverride: Add a dedicated view in the Outliner.Bastien Montagne
This is a minimal, information-only view currently, listing by default all the override data-blocks, with their user-edited override properties. System-generated overrides (like the overrides of pointers to other override data-blocks) can be shown through a filter option. Finally, potential info or warning messages from (auto-)resync propcess are also shown, as an icon + tooltip next to the affected items. Part of D10855.
2021-04-06Fix T84623: Curve/Surface force not working in normal directionPhilipp Oeser
Tweaking e.g. a field strength would then not use the curve/surface normal anymore [but the object center instead]. If a curve has a forcefield with effector shape Curve (in code its shape is PFIELD_SHAPE_SURFACE then), it wil get a SurfaceModifier. Changing properties will free the SurfaceModifierData's bvhtree and mesh And these dont get copied along when doing the CoW copy, these are explicitly set to NULL. So this was also failing for meshes, not just curves. Without the mesh & bvhtree though, get_effector_data() will not set the EffectorData's normal correctly (it is closest_point_on_surface() which does this). And without the right EffectorData's normal, the effector will of course work unexpected. Going in and out of editmode made this work because that goes down this route: - BKE_object_handle_data_update - BKE_displist_make_curveTypes - do_makeDispListCurveTypes - curve_calc_modifiers_post -- BKE_mesh_new_nomain_from_curve_displist -- we then have our desired updated mesh from the curve -- this will also call the SurfaceModifiers deformVerts [which - given we have a valid mesh - will update the bvhtree properly] Also note that _animating_ the effector actually works, (have not done the deep dive why this works, assume the curve geometry is updated in this case) So, now just carefully tag the curve ID_RECALC_GEOMETRY in rna_FieldSettings_update for this specific case. Maniphest Tasks: T84623 Differential Revision: https://developer.blender.org/D10092
2021-04-06Fix T86175: Missing viewport update when toggling HDRI previewEvan Wilson
Caused by rB0f95f51361d7. Similar to T85515, T84717, T85543 and their related fixes. In this case, add missing shading notifier as in rB9274bd457a25. Reviewed By: brecht, lichtwerk Maniphest Tasks: T86175 Differential Revision: https://developer.blender.org/D10604
2021-04-06Fix T87187: Area.type & ui_type empty area access failsCampbell Barton
Reading Area.type & ui_type printed an error from `pyrna_enum_to_py` and returned an empty string. As empty is a valid value, include it in the property enum list.
2021-04-05Render: faster animation and re-rendering with Persistent DataBrecht Van Lommel
For Cycles, when enabling the Persistent Data option, the full render data will be preserved from frame-to-frame in animation renders and between re-renders of the scene. This means that any modifier evaluation, BVH building, OpenGL vertex buffer uploads, etc, can be done only once for unchanged objects. This comes at an increased memory cost. Previously there option was named Persistent Images and had a more limited impact on render time and memory. When using multiple view layers, only data from a single view layer is preserved to keep memory usage somewhat under control. However objects shared between view layers are preserved, and so this can speedup such renders as well, even single frame renders. For Eevee and Workbench this option is not available, however these engines will now always reuse the depsgraph for animation and multiple view layers. This can significantly speed up rendering. These engines do not support sharing the depsgraph between re-renders, due to technical issues regarding OpenGL contexts. Support for this could be added if those are solved, see the code comments for details.
2021-04-02GPencil: Prevent RNA assignment of invalid materials in modifiersPhilipp Oeser
Materials used in grease pencil modifiers have the requirement that they are already used on the object. In the UI dropdown, this restriction is ensured by calling uiItemPointerR with appropriate searchptr and searchpropname, so only giving the user the choice of materials already used on the object. From python though, it was still possible to assign materials outside of this this restriction. This led to reports like T86981 [which have been partially solved by clamping the material index in the modifier code to be in the valid range]. Now make sure we dont assign "invalid" materials through RNA by appropriate RNA pointer functions. This also adds a proper warning (red, alert) in case of the LineArt modifier if such a invalid material is still in the file [same as other modifiers already do]. Differential Revision: https://developer.blender.org/D10873
2021-04-02Geometry Nodes: Allow float input for point scale nodeHans Goudey
This allows easily changing the scale attribute with a uniform scale within a single simple node.
2021-04-02Fix T84520: Make the different weight paint code paths exclusive to each otherSebastian Parborg
Before this change, you could have the new sculpt symmetry code and the older weight paint symmetry code active at the same time. This would lead to users easily trashing their weigh paint data if they were not careful when switching between modes. Now the specific weight paint symmetry code is an exclusive toggle so the user can't accidentally mirror strokes and vertex groups at the same time. This also paves the way of supporting Y and Z symmetry in the future for weight groups mirroring if we decide to add it in the future. Reviewed By: Sybren Differential Revision: http://developer.blender.org/D10426
2021-04-01Geometry Nodes: Improve speed of boolean node, use multi-input socketHans Goudey
This commit improves the performance of the node by up to 40% in some cases when there are only two input meshes, mainly by skipping the conversion to and from BMesh. When there are more than two input meshes (note the distinction from "Geometries", a geometry set can have many mesh instances), the performance is actually worse, since boolean currently always does self intersection in that case. Theoretically this could be improved in the boolean code, or another option is automatically realizing instances for each input geometry set. Another improvement is using multi-input sockets for the inputs, which removes the need to have a separate boolean node for every operation, which can hopefully simplify some node trees. The changes necessary for transforms in `mesh_boolean_convert.cc` are somewhat subtle; they come from the fact that the collecting the geometry set instances already gives transforms in the local space of the modifier object. There is also a very small amount of cleanup to those lines, using `float4x4::identity()`. This commit also fixes T87078, where overlapping difference meshes makes the operation not work, though I haven't investigated why. Differential Revision: https://developer.blender.org/D10599
2021-04-01Curve: Remove 'CU_2D' flag used for nurbsGermano Cavalcante
This fixes T86440 As the CU_2D flag is set for nurbs, a Curve can have 2D nurbs mixed with 3D. But the UI does not allow this mixing. It updates all nurbs to 2D or 3D when set. So remove this specific flag for nurbs. This may break old files, since 2D curves with mixed 3D are now set as 3D. Differential Revision: https://developer.blender.org/D10738
2021-04-01LineArt: Remove "soft selection" option.YimingWu
After some back and forth with the GP module and some artists, this option was deemed not that useful. The use case was considered too obscure so we'll remove it. It is still posible to have this functionality by using the vertex weight modiifers or manually clamping the weights.
2021-04-01LineArt: Remove resampling settings.YimingWu
This can be done with an other GP modifier already.
2021-04-01Cycles: add a spread setting for area lightsMatteo Falduto
This simulates the effect of a honeycomb or grid placed in front of a softbox. In practice, it works by attenuating rays coming off-angle as a function of the provided spread angle parameter. Setting the parameter to 180 degrees poses no restrictions to the rays, making the light behave the same way as before this patch. The total light power is normalized based on the spread angle, so that the light strength remains the same. Differential Revision: https://developer.blender.org/D10594
2021-03-31GPencil: Remove flag PROP_ID_SELF_CHECK from materialsAntonio Vazquez
This flag was used by error when the code of RNA object was used as base, but it's not logic in materials.
2021-03-30UI: Skip undo steps when changing properties of the 3d cursorGermano Cavalcante
Differential revision: https://developer.blender.org/D10695
2021-03-30Fix: buttons whose property contains an 'owner_id' ignore rna undo checkGermano Cavalcante
Introduced in rBce462fa1 but harmless since curretly only `StructRNA` without `owner_id` have the `STRUCT_UNDO` flag cleared. So this commit does not bring any functional changes but it will be useful for {D10695}.
2021-03-30Nodes: Expose multi input socket in python APIWannes Malfait
It was not possible to determine if a socket was multi input previously with BPY. This patch exposes the flag as a read-only property of a node socket. This is important for addons which automatically add connections between nodes. Differential Revision: https://developer.blender.org/D10847
2021-03-30Armature: Add Display Axis OffsetScott Wilson
Display the bone axes at the head (root) of the bone by default, instead of the tail (tip), and add a slider so that it's possible to adjust this position. Versioning code is in place to ensure existing files behave the same (axes shown at tail), whereas new Armatures will be using the new default (axes shown at head). Reviewed By: #animation_rigging, #user_interface, Severin, Sybren Differential Revision: https://developer.blender.org/D7685
2021-03-30VSE: Add fit method to RNA APIRichard Antalik
Add fit_method argument to new movie and image RNA API functions. This argument is optional. ref T86925 Reviewed By: sergey Differential Revision: https://developer.blender.org/D10816
2021-03-29Fix T86983: `bl_description = None` crash on RNA class registrationCampbell Barton
2021-03-29Overrides: Make Experimental API Fail On Usage.Jeroen Bakker
It used to give a warning so test cases couldn't fail. This has been changed in the test case so we could use an error here.
2021-03-29Overrides: API to create an override template.Jeroen Bakker
This is functionality that isn't accessible via the user interface. The API allows the creation and modification of an override template that holds rules that needs to be checked when overriding the asset. The API is setup that it cannot be changed after creation. Later on when the system is more mature we will allow changing overrides operations. NOTE: This is an experimental feature and should not be used in productions. Reviewed By: mont29, sebbas Differential Revision: https://developer.blender.org/D10792
2021-03-29Compositor: Add Anti-Aliasing nodeHabib Gahbiche
This is an implementation of Enhanced Subpixel Morphological Antialiasing (SMAA) The algorithm was proposed by: Jorge Jimenez, Jose I. Echevarria, Tiago Sousa, Diego Gutierrez This node provides only SMAA 1x mode, so the operation will be done with no spatial multisampling nor temporal supersampling. See Patch for comparisons. The existing AA operation seems to be used only for binary images by some other nodes. Using SMAA for binary images needs no important parameter such as "threshold", so we perhaps can switch the operation to SMAA, though that changes existing behavior. Notes: 1. The program code assumes the screen coordinates are DirectX style that the vertical direction is upside-down, so "top" and "bottom" actually represent bottom and top, respectively. Thanks for Habib Gahbiche (zazizizou) to polish and finalize this patch. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D2411
2021-03-27Cleanup: clang-formatCampbell Barton
2021-03-26UI: Change Usages of 'WPaint' to 'Weight Paint'Yevgeny Makarov
Changing to a more informative 'Weight Paint' rather than 'WPaint'. Differential Revision: https://developer.blender.org/D9905 Reviewed by Julian Eisel
2021-03-26UI: Use unified format for "Warning" in descriptionsYevgeny Makarov
Warnings in tooltips were using inconsistent formatting, some in parantheses, some not, some in caps, others not, some on new lines, some not, etc. This patch uses a consistent new line and no capitals for these cases. Differential Revision: https://developer.blender.org/D9904
2021-03-26LibOverride optimization; Do not compare bound box of objects.Bastien Montagne
This is runtime only data, no need to deal with it.
2021-03-26Geometry Nodes: Add Attribute Clamp NodeCharlie Jolly
This adds a Clamp node for Geometry Nodes Attributes. Supports both Min-Max and Range clamp modes. Float, Vector, Color and Int data types supported. Reviewed By: HooglyBoogly, simonthommes Differential Revision: https://developer.blender.org/D10526
2021-03-26Geometry Nodes: Add Attribute Map Range NodeVictor-Louis De Gusseme
This commit adds a node with a "Map Range" operation for attributes just like the non-attribute version of the node. However, unlike the regular version of the node, it also supports operations on vectors. Differential Revision: https://developer.blender.org/D10344
2021-03-26Animation: action mirror RNA API using pose contentsCampbell Barton
This adds a new RNA method `Action.flip_with_pose(ob)` to flip the action channels that control a pose. The rest-pose is used to properly flip the bones transformation. This is useful as a way to flip actions used in pose libraries, so the same action need not be included for each side. Reviewed By: sybren Ref D10781
2021-03-25LibOverride: Silence noisy warnings in console.Bastien Montagne
That one skiped the move to CLOG a few weeks ago, could spam a lot in the console in some cases.
2021-03-25Geometry Nodes: change order of domains in drop downJacques Lucke
This has been requested in D10803.
2021-03-25Geometry Nodes: rename attribute domainsJacques Lucke
This patch renames two domains: * `Polygon` -> `Face` * `Corner` -> `Face Corner` For the change from `polygon` to `face` I did a "deep rename" where I updated all (most?) cases where we refere to the attribute domain in code as well. The change from `corner` to `face corner` is only a ui change. I did not see a real need to update all code the code for that. It does not seem to improve the code, more on the contrary. Ref T86818. Differential Revision: https://developer.blender.org/D10803
2021-03-25Fix T86853: Critical bug in write code of CacheFile ID.Bastien Montagne
CacheFile writing code would not write generic ID data (call for it has been missing since the initial commit, rB61050f75b13e). While potentially affecting other areas (mostly CustomProperties/IDProperties), this was a critical failure for liboverrides. Also added some workaround code to allow opening broken files (though the override of the CacheFile data-block will be lost).
2021-03-24Cleanup: Remove unecessary enum funcsHans Goudey
The separator can be added directly in the enum items rather than in a callback. Differential Revision: https://developer.blender.org/D10806
2021-03-23LibOverride: Also consider RNA Collection in 'need resync' detection.Bastien Montagne
RNA collections can store lists of ID pointers, so they require a similar handling for RNA pointers.
2021-03-23RNA: support automatically mapping string property to char pointerJacques Lucke
The goal of this patch is to remove the boilerplate code required to get a string property that maps to an allocated char pointer in dna. Previously, one to to provide three callbacks, all of which are not necessary anymore for a simple string property. Currently, when an empty string is assigned, the `set` function will always allocate it as well, instead of assigning `NULL` to the pointer. Some structs might support `NULL` while others don't, so this is the safer option for now. Differential Revision: https://developer.blender.org/D10773
2021-03-23VSE: Sanitize move_to_meta usageRichard Antalik
There were multiple cases that could lead to problems like moving meta strip into itself or into it's children meta strips. Print error string to console when invalid action is requested.
2021-03-23Nodes: Add Refract and Faceforward functions to Vector Maths nodesCharlie Jolly
Cycles, Eevee, OSL, Geo, Attribute Based on outdated refract patch D6619 by @cubic_sloth `refract` and `faceforward` are standard functions in GLSL, OSL and Godot shader languages. Adding these functions provides Blender shader artists access to these standard functions. Reviewed By: brecht Differential Revision: https://developer.blender.org/D10622
2021-03-23Geometry Nodes: show domain in attribute fill nodeJacques Lucke
Differential Revision: https://developer.blender.org/D10789
2021-03-23Curves: add taper mode optionOmar Emara
Currently, when a taper object is specified, the radius of the spline is ignored. This patch adds a new option to control how the taper object affect the effective radius of the spline. The option allow three modes of operation: - Override: The old method. The radius of the spline is ignored and overridden. - Multiply: The radius of the spline is multiplied by the taper radius. - Add: The radius of the spline is added to the taper radius. Ref D10779
2021-03-23RNA: correction to a05cbc9914a76fa50c8367262dff507506e26c66Campbell Barton
The clipping plane bias is an implementation detail, don't use this in the RNA name.
2021-03-22Cleanup: remove unexposed nodesJacques Lucke
Those nodes are leftovers from my work on particle nodes and are not needed currently. They can be added back easily if they become necessary.