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-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.
2021-12-10Added support for large images to openexr.Jeroen Bakker
2021-12-10Added support for large texture to OCIO.Jeroen Bakker
2021-12-10ImBuf: Use templating for IMB_transform.Jeroen Bakker
Reduce the inner loop of IMB_transform by extracting writing to an output buffer in a template. This reduces a branch in the inner loop and would allow different number of channels in the future.
2021-12-10Fix crash using 32k images.Jeroen Bakker
Use IMB_get_rect_len to solve overflow issues.
2021-12-10Cleanup: move public doc-strings into headers for various API'sCampbell Barton
Some doc-strings were skipped because of blank-lines between the doc-string and the symbol and needed to be moved manually. - Added space below non doc-string comments to make it clear these aren't comments for the symbols directly below them. - Use doxy sections for some headers. Ref T92709
2021-12-10Cleanup: move public doc-strings into headers for 'python/intern'Campbell Barton
Ref T92709
2021-12-10Cleanup: move public doc-strings into headers for 'nodes'Campbell Barton
Ref T92709
2021-12-10Cleanup: spelling in commentsCampbell Barton
2021-12-10Cleanup: doxygen comments for node_geo_dual_meshCampbell Barton
- Indent text after dot-points. - Use an unparsed code-block to display the text verbatim in doxygen.
2021-12-10Fix Crash: Loading Huge Images.Jeroen Bakker
When loading huge images (30k) blender crashed with a buffer overflow. The reason is that determine the length of a buffer was done in 32bit precision and afterwards stored in 64 bit precision. This patch adds a new function to do the correct calculation in 64bit. It should be added to other sections in blender as well. But that should be tested on a per case situation.
2021-12-10Fix T92036: `Magic Texture` in Volumetric World Shaders render differently ↵William Leeson
with the CPU and GPU When rendering volume surfaces in unbounded worlds the volume stepping can produce large values. If used with a magic texture node the values can results in a Inf float which when used in a sin or cos produces a NaN. To fix this the input values are mapped into the periodic range of the sin and cos functions (-2*PI 2*PI) this stops the possibility of a Inf occurring and thus the NaN. It also improves the accuracy and smoothness of the result due to loss of precision when large values are summed with smaller ones effectively removing the parts of the smaller number (i.e. those in the -2PI to 2PI range) that result in variation of the output of sin and cos. Reviewed By: brecht Maniphest Tasks: T92036 Differential Revision: https://developer.blender.org/D12821
2021-12-10Cleanup: move public doc-strings into headers for 'depsgraph'Campbell Barton
- Added space below non doc-string comments to make it clear these aren't comments for the symbols directly below them. - Use doxy sections for some headers. Ref T92709
2021-12-10Geometry Nodes: Remove unnecessary copy when replacing dataHans Goudey
In the `replace_mesh`/`replace_curve` etc. methods, the component was retrieved with write access. Retrieving with write access will duplicate the data if the component has another user. This means that the replaced geometry data was often duplicated just to be deleted a moment later. I expect this would have a large impact in performance in some specific situations when dealing with large geometry. In a scene with many small meshes though, I didn't observe a significant difference. This also makes replacing a geometry set's data with the same data that's already in the set safe. It would be valid to assert for that case instead, but this seems safer. Differential Revision: https://developer.blender.org/D13530
2021-12-10Fix T93687: Transform Gpencil vertices not working if scale is zeroGermano Cavalcante
Solution similar to rBd5cefc1844cf. Basically the problem occurs because `td->smtx` was set to zero matrix.
2021-12-09Cleanup: Return early in null checkHans Goudey
I'm planning to make these functions slightly more complicated, and it makes sense to return early when checking one of the parameters for null anyway.
2021-12-09Fix Cycles wrong adaptive sampling render when using sample offsetAndrii
Sample offset was not accounted for in the adaptive sampling code and caused issues, like immediately applied adaptive filtering, with non-zero values. Differential Revision: https://developer.blender.org/D13510
2021-12-09Cycles: support merging images rendered with adaptive samplingAndrii
This patch adds support for merging images rendered with adaptive sampling to the merge operator (which is currently only exposed in the Python API). To do this an sample count buffer is created for each render layer from the sample count pass if it exists, or from the metadata otherwise. This is then used for averaging passes. Differential Revision: https://developer.blender.org/D13457
2021-12-09Cleanup: use more modern C++ in Cycles merge operatorAndrii
Use structured binding and for-each loop, remove reduntant type casts, use find_if instead of loop. Differential Revision: https://developer.blender.org/D13456
2021-12-09Geometry Nodes: Scene Time NodeJohnny Matthews
This node outputs the current scene time in seconds or in frames. Use of this node eliminates the need to use drivers to control values in the node tree that are driven by the scene time. Frame is a float value to provide for subframe rendering for motion blur. Differential Revision: https://developer.blender.org/D13455