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-12-14Geometry Nodes: support instance attributes when realizing instancesJacques Lucke
This patch refactors the instance-realization code and adds new functionality. * Named and anonymous attributes are propagated from instances to the realized geometry. If the same attribute exists on the geometry and on an instance, the attribute on the geometry has precedence. * The id attribute has special handling to avoid creating the same id on many output points. This is necessary to make e.g. the Random Value node work as expected afterwards. Realizing instance attributes has an effect on existing files, especially due to the id attribute. To avoid breaking existing files, the Realize Instances node now has a legacy option that is enabled for all already existing Realize Instances nodes. Removing this legacy behavior does affect some existing files (although not many). We can decide whether it's worth to remove the old behavior as a separate step. This refactor also improves performance when realizing instances. That is mainly due to multi-threading. See D13446 to get the file used for benchmarking. The curve code is not as optimized as it could be yet. That's mainly because the storage for these attributes might change soonish and it wasn't worth optimizing for the current storage format right now. ``` 1,000,000 x mesh vertex: 530 ms -> 130 ms 1,000,000 x simple cube: 1290 ms -> 190 ms 1,000,000 x point: 1000 ms -> 150 ms 1,000,000 x curve spiral: 1740 ms -> 330 ms 1,000,000 x curve line: 1110 ms -> 210 ms 10,000 x subdivided cylinder: 170 ms -> 40 ms 10 x subdivided spiral: 180 ms -> 180 ms ``` Differential Revision: https://developer.blender.org/D13446
2021-12-14Geometry Nodes: simplify using selection when evaluating fieldsJacques Lucke
We often had to use two `FieldEvaluator` instances to first evaluate the selection and then the remaining fields. Now both can be done with a single `FieldEvaluator`. This results in less boilerplate code in many cases. Performance is not affected by this change. In a separate patch we could improve performance by reusing evaluated sub-fields that are used by the selection and the other fields. Differential Revision: https://developer.blender.org/D13571
2021-12-14Fix T93920: Wrong field inferencing state with unavailable socketHans Goudey
This commit ignores unavailable sockets in one more place, to fix the case in T93920. Differential Revision: https://developer.blender.org/D13562
2021-12-14Fix T93649: Blender freezes when saving with active VR sessionJulian Eisel
Dead-lock when VR viewport drawing and depsgraph updates would fight for the draw-manager GL lock. This didn't usually cause issues because the depsgraph would be evaluated at this point already, except in rare exceptions like after file writing. Fix this by ensuring the XR surface gets its depsgraph updated after handling notifiers, which is where regular windows also do the depsgraph updating.
2021-12-14Cleanup: consistent naming for the blender file nameCampbell Barton
2021-12-14Cleanup: remove oudated comment from early COW developmentCampbell Barton
Added in 161ab6109e265ea906e0308ab404f95282534770
2021-12-14Cleanup: use typed enum for wmDrag.flagsCampbell Barton
Also use 'e' prefix for enum type name.
2021-12-14Cleanup: reorganize doxygen modulesCampbell Barton
- Nest compositor pages under the compositor module - Nest GUI, DNA/RNA & externformats modules under Blender. - Remove modules from intern which no longer exist. - Add intern modules (atomic, eigen, glew-mx, libc_compat, locale, numaapi, rigidbody, sky, utfconv). - Use 'intern_' prefix for intern modules since some of the modules use generic terms such as locale & atomic.
2021-12-14Cleanup: resolve parameter mis-matches in doc-stringsCampbell Barton
Renamed or removed parameters which no longer exist.
2021-12-14Cleanup: correct unbalanced doxygen groupsCampbell Barton
Also add groups in some files.
2021-12-14Fix T91005: Autosplit produces unusable filesRichard Antalik
Audio PTS was reset for each new file. This caused misalignment of video and audio streams. In Blender, these files can't be loaded, other players will fail to align audio and video. Since timestamps are reset intentionally, reset also video stream timestamps. There were other bugs: After timestamp was reset for audio, write_audio_frames started encoding from timeline start until target frame, so each split video had more audio than it should. Also audio for last frame before splitting was written into new file. Differential Revision: https://developer.blender.org/D13280
2021-12-14Fix T93844: High memory usage during VSE previewRichard Antalik
Since 88c02bf826df FFmpeg handles are freed if image is not displayed. This change did not work correctly if strips are inside meta strip, because overlap did not consider meta strip boundary, only strips inside of meta strip. Pass frame range to `sequencer_all_free_anim_ibufs`, if strip is inside of meta strip, frame range is reduced to fit meta strip boundary, but if meta strip is being edited, range must be set to +/-`MAXFRAME`, otherwise playback performance would be too bad.
2021-12-14Remove G.save_overCampbell Barton
The difference between G.save_over and G.relbase_valid was minor. There is one change in functionality. When saving the default-startup file from an already loaded blend file - future save actions will continue to write to the originally loaded file instead of prompting the user to select a location to save the file. This change makes saving the startup file behave the same way "Save a Copy" does. Reviewed By: brecht Ref D13556
2021-12-14Cleanup: clang-formatCampbell Barton
2021-12-14Fix T94022: Both options GPU/CPU checked under preferences cause viewport ↵Michael Jones
render crash. (ARM/Metal) This fixes crash T94022 when selecting live viewport render with both GPU & CPU devices selected. It is caused by incorrect `KernelBVHLayout` assignment. Similar to `BVH_LAYOUT_MULTI_OPTIX` for Optix, this patch adds a `BVH_LAYOUT_MULTI_METAL` to correctly redirect to the correct Metal BVH layout type. Reviewed By: brecht Differential Revision: https://developer.blender.org/D13561
2021-12-14Cleanup: Remove unused curve types from enumPiotr Makal
There were a few unused enum values: `CU_CARDINAL` and `CU_BSPLINE` This commit cleans them up from code as they were not used for anything meaningful. Differential Revision: https://developer.blender.org/D13554
2021-12-13UI: String Search: Add an optional weight parameterHans Goudey
This builds off of rBf951aa063f7, adding a weight parameter which can be used to change the order of items when they have the same match score. In the future, if string searching gets a C++ API, we could use an optional parameter for the weight, since it is not used yet. This will be used for the node link drag search menu (D8286). Differential Revision: https://developer.blender.org/D13559
2021-12-13GPencil: Add randomize options to Length modifierCody Winchester
This patch adds a randomize factor for the start/end lengths in the Length modifier. Reviewed By: #grease_pencil, antoniov, pepeland, HooglyBoogly Differential Revision: https://developer.blender.org/D12928
2021-12-13GPencil: New Shrinkwrap modifierAntonio Vazquez
his new modifier is equals to the existing mesh modifier but adapted to grease pencil. The underlying functions used to calculate the shrink are the same used in meshes. {F11794101} Reviewed By: pepeland, HooglyBoogly Differential Revision: https://developer.blender.org/D13192
2021-12-13Cycles: add text explaining minimum requirements for Metal when no device foundBrecht Van Lommel
2021-12-13Cycles: enable Metal GPU renderingBrecht Van Lommel
This adds the remaining bits to enable Metal on macOS. There are still performance optimizations and other improvements planned, but it should now be ready for early testing. This is currently only enabled on in Arm builds for M1 GPUs. It is not yet working on AMD or Intel GPUs. Ref T92212 Differential Revision: https://developer.blender.org/D13503
2021-12-13Geometry Nodes: fix combining field inputsJacques Lucke
This was an oversight in rB7b88a4a3ba7eb9b839afa6c42d070812a3af7997.
2021-12-13Fix T93704: StructRNA.path_resolve fails silently with missing keysCampbell Barton
Resolving the path to a missing pose-bone (for example), was not raising an error as it should have. Regression introduced in f9ccd26b037d43f2490d1f0263e45e775d30473d, which didn't update collection lookup logic to fail in the case the key of a collection wasn't found.
2021-12-13Geometry Nodes: move up destruct instructions in procedureJacques Lucke
This implements an optimization pass for multi-function procedures. It optimizes memory reuse by moving destruct instructions up. For more details see the in-code comment. In very large fields with many short lived intermediate values, this change can improve performance 3-4x. Furthermore, in such cases, peak memory consumption is reduced significantly (e.g. 100x lower peak memory usage). Differential Revision: https://developer.blender.org/D13548
2021-12-13Fix T93169: Weightpaint falloff popover drawn twicePhilipp Oeser
This came with {rBf8a0e102cf5e}. The panel was meant specifically for the gradient tool, but since it was given the ".weighpaint" context, it would also draw as part of generic header toolsettings drawing. Now remove this context on purpose and only draw this specifically from the gradient tools ToolDef. Maniphest Tasks: T93169 Differential Revision: https://developer.blender.org/D13268
2021-12-13Cleanup: clang-formatCampbell Barton
2021-12-13Cleanup: spelling in commentsCampbell Barton
Also move notes about where noise functions come from into the function body as it's not relavant to the public doc-string.
2021-12-13Cleanup: use "filepath" term for Main, BlendFileData & FileGlobalCampbell Barton
Use "filepath" which is the current convention for naming full paths. - Main use "name" which isn't obviously a file path. - BlendFileData & FileGlobal used "filename" which is often used for the name component of a path (without the directory).
2021-12-13Cleanup: remove checks for invalid input for Python Run utilitiesCampbell Barton
These arguments must be non-null for useful functionality, there is no need for paranoid checks. The return value in case of invalid input for BPY_run_string_as_number was also wrong (casting -1 to a bool, when false was expected).
2021-12-13Cleanup: Point cloud vs point-cloud in commentsHans Goudey
Point cloud is two separate words, this just changes comments in a few places where we were inconsistent. A small wording change to another comment is also included.
2021-12-13Cleanup: Remove includes in node_util.h headerHans Goudey
This ends up including the removed headers in many unnecessary places. Also, remove unnecessary extern from function definitions.
2021-12-13Docs: document all Global (G) struct membersCampbell Barton
2021-12-13Docs: improve on doc-strings for BPY_extern_run.hCampbell Barton
Also add ATTR_NONNULL function attributes.
2021-12-13Cleanup/docs: Add comment to spline lookup factor methodHans Goudey
2021-12-12Geometry Nodes: improve memory reuse in procedure executorJacques Lucke
This reduces the number of separate memory allocations done by the multi-function procedure executor (which is used by the field evaluation). Now a linear memory allocator is used to allocate all intermediate values. Furthermore, more buffers are reused when possible. This reduces the total amount of allocated memory and improves cache efficiency because the values are more likely to be in cache already. The performance improvement of this patch are most noticable when few elements are processed by many functions. The situation will improve even more with D13548, because then buffers can actually be reused in practice. I measured up to 20% faster field evaluation in extreme cases with this change.
2021-12-12Cleanup: use struct instead of classJacques Lucke
Using `class` and `struct` for the same type can cause issues on windows.
2021-12-12UI: Add curve handle buttons to CurveMap interfaceCharlie Jolly
This patch exposes the vector handle options as buttons and aligns the UI between CurveMap and CurveProfile more closely. - CurveMap point editing is on a single row like CurveProfile - Tools menu is moved to the right hand side on both widgets - Emboss curve map buttons Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D10980
2021-12-11macOS: add tilde-based path expanderAnkit Meel
Replaces `HOME` environment variable usage for user directories like in D12802. Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D13212
2021-12-11Cleanup: Use const argumentsHans Goudey
Also remove unnecessary function to set a node type's label function that duplicated its definition, and make another function static.
2021-12-11Cleanup: const, autoreleasepool, remove unneeded cast.Ankit Meel
Early return in some places also. De-duplicate getSystemDir and getUserDir also. Reviewed By: #platform_macos, brecht Differential Revision: https://developer.blender.org/D13211
2021-12-11Geometry Nodes: remove accidental exponential time algorithmJacques Lucke
Calling `foreach_field_input` on a highly nested field (we do that often) has an exponential running time in the number of nodes. That is because the same node may be visited many times. This made Blender freeze on some setups that should work just fine. Now every field keeps track of its inputs all the time. That replaces the exponential algorithm with constant time access.
2021-12-11Fix compilation error on Windows platform.Jeroen Bakker
2021-12-11Sky: Use Gauss-Laguerre quadrature for optical depth calculationLukas Stockner
This allows to use fewer evaluations (30 msec down to 23 for me) while giving more accurate results (3x-10x less relative absolute error) compared to classic ray marching. Not a massive difference, but meh, it's better. For Cycles the speedup doesn't really matter much, but I also have a patch for Eevee support. I've also tried Gauss-Legendre and Gauss-Lobatto - the latter was always worse, while the former was slightly better at 2deg elevation but notably worse on 15deg. Unfortunately the same approach can't be used for the integration along the primary ray, since there we also need the accumulated transmission so far at every integration point, not just the total result. Differential Revision: https://developer.blender.org/D13521
2021-12-11Cleanup: Return early for null checkHans Goudey
2021-12-10Cleanup: Use const argument, rename variablesHans Goudey
The const argument makes sense because these are the "source" sockets, even though a const cast is necessary at one point. The name "interface_socket" is an improvement over "stemp" because the latter sounds like "temporary", or it confuses the old socket template system with a node group's interface.
2021-12-10Cleanup: Remove unnecessary runtime rectangle from nodes in DNAHans Goudey
I assume this `butr` rectangle was used more in the past, but currently its value is set and used less than 10 lines apart, so it's trivial to remove 16 bytes from every node. The other rectangles are also runtime data and could be removed, but they are more difficult.
2021-12-10Revert recent changes to ImBuf transformHans Goudey
This reverts commit 943aed0de35621e328 and f76e04bf4d7cdce8 The latter caused a test failure: `sequencer_render_transform` Reverting since the fix is not obvious (to me), and people are away for the weekend.
2021-12-10Cleanup/Docs: Add comments to Mesh header, rearrange fieldsHans Goudey
Most of the fields in Mesh had no comments, or outdated misleading comments. For example, "BMESH ONLY" referred to the BMesh project, not the data structure. Given how much these structs are used, it should save a lot of time to have proper comments. I also rearranged the fields in mesh to have a more logical order. Now the most important fields come first. In the process I was able to remove 19 bytes of unnecessary padding (31->12). I just had to change a `short` flag to `char`. Differential Revision: https://developer.blender.org/D13454
2021-12-10Fix T93591: Random Value node first and last value proportionMoritz Röhrich
This patch replaces `round_fl_to_int` with `floor` and adjusts the maximum value accordingly. The call to `round_fl_to_int` is problematic here because it messes with the probability distribution at the edges of the value range, meaning the first and last values were only half as common as all other values. Since `round_fl_to_int` does `floor(val + 0.5)`, it will not introduce misbehavior in edge cases. Differential Revision: https://developer.blender.org/D13474
2021-12-10ImBuf: Extracted UV Wrapping from the Interpolation functions.Jeroen Bakker
Improvement of the IMB_transform function by separating the UVWrapping method from the color interpolation function. This would allow us to perform uv wrapping operations separate from the interpolation function. Currently this wrapping is only supported when interpolating colors. This change would allow us to perform it on non-color image buffers.