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
2022-01-05Fix T94366: Grease Pencil Automerge no immediate UI updatePhilipp Oeser
Just an oversight in rBe9607f45d85d. Now add notifier that toolsettings changed. Maniphest Tasks: T94366 Differential Revision: https://developer.blender.org/D13723
2022-01-05Cleanup: Use new socket builder APIAaron Carlisle
2022-01-05Nodes: Consistent link drag search for math and vector math nodesHans Goudey
Previously operations for the math node when connecting to outputs weren't added. It also used a different method to check whether the link would be valid.
2022-01-05Cleanup: Make shade node util header CPP onlyAaron Carlisle
Now that all shader nodes are converted to CPP this header can now be made into a CPP header.
2022-01-05Fix T89587: Don't Change Line Width For PreviewsHarley Acheson
Do not temporarily change U.pixelsize while creating object previews in object_preview_render. It does nothing to the render, but the change in line width can affect other UI drawing since it is done in a thread. see D13717 for for details. Differential Revision: https://developer.blender.org/D13717 Reviewed by Julian Eisel
2022-01-04Fix T94145: Knife tool fails in orthographic modeCian Jinks
Calculating min and max orthographic extent forgot to convert to worldspace coordinates.
2022-01-04Cleanup: Dont use relative includeAaron Carlisle
Instead let cmake determine the path for file includes
2022-01-04Cleanup: Nodes: Convert generic shader node files to c++Aaron Carlisle
Along with the general changes to CPP this commit does the following - Use static casts where possible - Use new CPP MEM library functions instead of cast - Use listbase macros where possible - Declare variables where initialized Reviewed By: HooglyBoogly, JacquesLucke Differential Revision: https://developer.blender.org/D13718
2022-01-04Fix: Link drag search error with random value node from color socketHans Goudey
Dragging from a color socket would hit an assert in a debug build. The node does not have a color mode currently, so use the vector mode instead when connecting to a color socket.
2022-01-04Fix T94620: GPencil AutoMerge does not work when Draw On Back is enabledAntonio Vazquez
The problem was the stroke was added to head and the `prev` pointer was NULL. Now check if there is the list is empty`next`.
2022-01-04Cleanup: Code formatting.Jeroen Bakker
2022-01-04Fix T94546: Remove soft limit for the Clamp Node value socket.Thomas Dinges
2022-01-04Fix T94544: crash removing image used as camera background via pythonPhilipp Oeser
Since 2.8, background images are tied to cameras (in 2.79 these were tied to a View3D I think). Code in `BKE_library_id_can_use_idtype` wasnt taking this relation between `Camera` and `Image` into account, thus leading to ID deletion/ unlinking not working properly -- in particular `libblock_remap_data` not doing its thing (and leaving the camera as a user of the image), then things went downhill from there... Now make the "Camera-can-use-an-Image" relation clear in `BKE_library_id_can_use_idtype`. Maniphest Tasks: T94544 Differential Revision: https://developer.blender.org/D13722
2022-01-04Fix T94599: Assert on usercount when deleting image created via operator.Bastien Montagne
`IMAGE_OT_new` operator would not properly clear the by-default one user generated by 'new id' code, in case it could not tie the image to anything.
2022-01-04Fix T90830: Crop node cropping is one pixel shortManuel Castilla
Currently the crop higher limits are inclusive too which contradicts the documentation as it says that if Left and Right are both 50, it will result in a zero-sized image. And the result is one pixel out of the crop gizmo, which is another hint that this is not intended. In "Full Frame" experimental mode it's two pixels short because of a misuse of `BLI_rcti_isect_pt` as it considers max limits inclusive. Reviewed By: jbakker Maniphest Tasks: T90830 Differential Revision: https://developer.blender.org/D12786
2022-01-04Fix T91160 - Movie Clip Editor - frame indicator/controller is not displayedAidan Davey
The frame indicator/controller is not displayed when in the Graph or Dopesheet view of the Movie Clip Editor To solve this we could call the function ED_time_scrub_draw_current_frame in clip_draw_dopesheet_main and graph_region_draw in space_clip.c Reviewed By: jbakker Maniphest Tasks: T91160 Differential Revision: https://developer.blender.org/D12659
2022-01-04Shader Nodes: Unity BuildAaron Carlisle
Enable unity builds for `bf_nodes_shader`, gives about a 2.7x speedup of total compile times when just building `bf_nodes_shader`. On my machine, this equates to saving about 30 seconds. Differential Revision: https://developer.blender.org/D13720
2022-01-04Cleanup: Move node storage macro inside file namespaceAaron Carlisle
Must have been a mistake in previous commits, this fix is needed to enable unity builds.
2022-01-04Fix soft light blend mode mathRichard Antalik
Function `blend_color_softlight_float` used math different to compositor and produced result that had abrupt value changes. Use math based on modified screen blend mode as compositor does.
2022-01-04Fix out of range color in blend modesRichard Antalik
Result of Exclusion and Pin Light blend modes could be greater than 255 which caused artifacts. Limit color value to 0-255 range.
2022-01-04Cleanup: Remove bNodeType flag from base registration functionsAaron Carlisle
This flag is only used a few small cases, so instead of setting the flag for every node only set the required flag for the nodes that require it. Mostly the flag is used to set `ntype.flag = NODE_PREVIEW` For nodes that should have previews by default which is only some compositor nodes and some texture nodes. The frame node also sets the `NODE_BACKGROUND` flag. All other nodes were setting a flag of 0 which has no purpose. Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D13699
2022-01-04BLI: Add slice method to MutableSpanHans Goudey
Span had a slice method with an IndexRange argument, but MutableSpan did not, yet. This commit makes the two types consistent.
2022-01-03Cleanup: Clang tidyHans Goudey
2022-01-03Add a new C++ version of an exporter for the Wavefront .obj format.Howard Trickey
This was originally written by Ankit Meel as a GSoC 2020 project. Howard Trickey added some tests and made some corrections/modifications. See D13046 for more details. This commit inserts a new menu item into the export menu called "Wavefront OBJ (.obj) - New". For now the old Python exporter remains in the menu, along with the Python importer, but we plan to remove it soon (leaving the old addon bundled with Blender but not enabled by default).
2022-01-03Fix T94581: Incorrect geometry delete behavior with instancesHans Goudey
Compare the start of the range to zero to figure out whether the indices for the instances to keep starts at zero. Also rename the selection argument, since it made it seem like the selected indices should be removed rather than kept.
2022-01-03Fix T94316: Asset catalog tree scrolls away when renaming a catalogJulian Eisel
The activation of the text button is a bit special, since it happens during drawing, the layout isn't computed yet then. Comparable cases where the button is added on top don't use the layout system, so this didn't become an issue until now. Trigger a delayed call to `UI_but_ensure_in_view()`.
2022-01-03Fix T94594: Incorrect spreadsheet data set region type in old filesHans Goudey
This completes 1a721c5dbec928b0e by versioning old files to correct the region type. The "tools" region type is relatively standard for this type of region and doesn't require any changes to the theme, unlike the "nav bar" type, which would have been a reasonable choice.
2022-01-03Geometry Nodes: Edge Angle NodeJohnny Matthews
Calculates the angle in radians between two faces that meet at an edge. 0 to PI in either direction with flat being 0 and folded over on itself PI. If there are not 2 faces on the edge, the angle will be 0. For valid edges, the angle is the same as the 'edge angle' overlay. For the Face and Point domain, the node uses simple interpolation to calculate a value. Differential Revision: https://developer.blender.org/D13366
2022-01-03Allow overrides for cloth, collision and force field properties.Alexander Gavrilov
Allow overriding simple properties of cloth simulations, colliders and force fields. Vertex group and shape key selectors in cloth are still not overridable since they are tied to mesh data. Force fields have a number of physical fields shared between multiple RNA fields. Until they are decoupled, they will produce redundant overrides, and cannot have different hard range limits. Differential Revision: https://developer.blender.org/D13710
2022-01-03Fix T94392: 3D Cursor surface projection onto hidden geometryGermano Cavalcante
Regression introduced in rB098008f42d8127d9b60717c7059d3c55a3bfada7 Previously the selected geometry was ignored along with the hidden one. The mentioned commit caused neither the hidden nor the selected one to be ignored. But hidden geometry needs to be ignored.
2022-01-03Depsgraph: Remove object-level visibility from geometry buildersSergey Sharybin
Continuation of the D13404 which finished the design of not having geometry-level nodes dependent on object-level. Differential Revision: https://developer.blender.org/D13405
2022-01-03Cleanup: Renamed to_object_value to to_dictionary_value.Jeroen Bakker
2022-01-03Cleanup: rename ValueType.Object to ValueType.Dictionary.Jeroen Bakker
2022-01-03Cleanup: Rename ObjectValue to DictionaryValue (Serialization).Jeroen Bakker
ObjectValue was to confusing as it is the term from JSON.
2022-01-03UDIM: Support virtual filenamesJesse Yurkovich
This implements the design detailed in T92696 to support virtual filenames for UDIM textures. Currently, the following 2 substitution tokens are supported: | Token | Meaning | | ----- | ---- | | <UDIM> | 1001 + u-tile + v-tile * 10 | | <UVTILE> | Equivalent to u<u-tile + 1>_v<v-tile + 1> | Example for u-tile of 3 and v-tile of 1: filename.<UDIM>_ver0023.png --> filename.1014_ver0023.png filename.<UVTILE>_ver0023.png --> filename.u4_v2_ver0023.png For image loading, the existing workflow is unchanged. A user can select one or more image files, belonging to one or more UDIM tile sets, and have Blender load them all as it does today. Now the <UVTILE> format is "guessed" just as the <UDIM> format was guessed before. If guessing fails, the user can simply go into the Image Editor and type the proper substitution in the filename. Once typing is complete, Blender will reload the files and correctly fill the tiles. This workflow is new as attempting to fix the guessing in current versions did not really work, and the user was often stuck with a confusing situation. For image saving, the existing workflow is changed slightly. Currently, when saving, a user has to be sure to type the filename of the first tile (e.g. filename.1001.png) to save the entire UDIM set. The number could differ if they start at a different tile etc. This is confusing. Now, the user should type a filename containing the appropriate substitution token. By default Blender will fill in a default name using the <UDIM> token but the user is free to save out images using <UVTILE> if they wish. Differential Revision: https://developer.blender.org/D13057
2022-01-03Nodes: Convert several shader nodes to c++Aaron Carlisle
Also add file namespace This is needed to use new node APIs Differential Revision: https://developer.blender.org/D13690
2022-01-02Geometry Nodes: add field node type for constantsJacques Lucke
It is common to have fields that contain a constant value. Before this commit, such constants were represented by operation nodes which don't have inputs. Having a special node type for constants makes working with them a bit cheaper. It also allows skipping some unnecessary processing when evaluating fields, because constant fields can be detected more easily. This commit also generalizes the concept of field node types a bit.
2022-01-01Geometry Nodes: small refactor towards supporting partially lazy nodesJacques Lucke
Currently, a node either supports lazyness during execution (like the Switch node), or it doesn't. If it does support lazyness, then every input is computed lazily. However, usually not all inputs actually have to be computed lazily. E.g. the boolean switch input is always required, while the other inputs should be computed lazily. Better support for such sockets can avoid unnecessary round trips through the node execution function.
2021-12-31Nodes: Add Compare node operations to link drag search menuCharlie Jolly
Exposes compare operations via rna emums. This uses the rna enum to build the search list using named operations linked to socket A. This also weights the Math Node comparison operations lower for geometry node trees. Differential Revision: https://developer.blender.org/D13695
2021-12-31LineArt: Correct collection intersection mask logic.YimingWu
The logic used to be: "if collection doesn't have child collection, check if ob is from this one" The correct logic should be: "if collection child does not have this ob, then check this collection".
2021-12-31LineArt: Correct clamping of out of bound isect indexYimingWu
Handles rare cases where line doesn't intersect the triangle correctly.
2021-12-31Fix T94464: video texture is not refreshingJacques Lucke
In the past that worked because the `GPUMaterial` referenced the `ImageUser` from the image node. However, that design was incompatible with the recent node tree update refactor (rB7e712b2d6a0d257d272e). Also, in general it is a bad idea to have references between data that is owned by two different data blocks. This incompatibility was resolved by copying the image user from the node to the `GPUMaterial` (rB28df0107d4a8). Unfortunately, eevee depended on this reference, because the image user on the node was update when the frame changed. Because the image user was copied, the image user in the `GPUMaterial` did not receive the frame update anymore. This frame update is added back by this commit. The main change is that the image user iterator now also iterates over image users in `GPUMaterial`s on material and world data blocks. An issue is that these materials don't exist on the original data blocks and that caused the check in `build_animation_images` in the depsgraph to give the wrong answer. Therefore the check is extended. Right now the check is not optimal, because it results in more depsgraph nodes than are necessary. This can be improved when it becomes cheaper to check if a node tree contains any references to a video texture. The node tree update refactor mentioned before makes it much easier to construct this kind of run-time data from the bottom up, instead of scanning the entire node tree recursively every time some information is needed.
2021-12-31Cleanup: Silence warning for wrong const char comparisonCharlie Jolly
Incorrectly used comparison for empty string. Reported in chat by @jacqueslucke.
2021-12-31Fix T94416: incorrect handling when nodes are linked in a loopJacques Lucke
This just skips the entire algorithm when there are cycles. In the future, cycles could be handled more gracefully in the algorithm, but for now that's not worth it and is not necessary to fix the bug.
2021-12-31Nodes: Weight drag link search for Math nodesCharlie Jolly
As @hooglyboogly suggested in D13680, this patch adds weighting to the search results. Dragging from a vector/rgba socket weights the Vector Math node higher than a float Math node, and vice versa. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D13691
2021-12-31Fix (unreported): remove menu separators from drag link searchCharlie Jolly
Search was picking up the menu separator entries. Add check for these which are defined by empty identifier strings.
2021-12-31Cleanup: Use switch to get gpu shader nameAaron Carlisle
Rather than using the array syntax that doesnt work in C++, use a switch state which is also much easier to read.
2021-12-30Nodes: Convert several shader nodes to c++Aaron Carlisle
Also add file namespace This is needed to use new node APIs Differential Revision: https://developer.blender.org/D13690
2021-12-30Fix T93868: GPencil material filter does not work with instancesAntonio Vazquez
When the material is used in several objects, the filter by material is not working as expected because the internal pointers are different due eval version. Now, the original version of the material is compared to keep same address.
2021-12-30Fix T93134: Set origin broken for curve edit modeShen Ciao
Bug: Set Origin causes unexpected offset on Grease Pencil strokes when Curve Editing is enabled. Fix: Add transformation of editcurve points in `object_origin_set_exec`. Reviewed By: #grease_pencil, antoniov Maniphest Tasks: T93134 Differential Revision: https://developer.blender.org/D13273