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-03Extracted remap to separate function.temp-T94185-id_remapping-experiment-aJeroen Bakker
2022-01-03Changed enum values and names.Jeroen Bakker
2022-01-03Merge branch 'master' into temp-T94185-id_remapping-experiment-aJeroen Bakker
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
2021-12-30Fix T93163: GPencil scale thickness fails in negative scalesAntonio Vazquez
Before the negative scales produced a thickness invalid. Now, the value is used in absolute value to avoid this situation.
2021-12-30Nodes: Improve link drag search for Math and Vector Math nodesCharlie Jolly
Exposes math operations via rna emums. This uses the rna enum to build the search list. Differential Revision: https://developer.blender.org/D13680
2021-12-30Point Cloud: Optimize bounding box calculationHans Goudey
This is analagous to 6a71b2af66cf10556b21 which did the same thing for mesh data. Two differences are that here the coordinates are simply `float3`, and we account for the radius if it's available. Here I observed a similar performance increase, from 50ms average to 10ms average, with 16 million points, a 5x speedup. The calculation is about 1.4 times faster when no radius is used, down to 7.3ms average. Before, the calculation was only 1.2 times faster.
2021-12-30Cleanup: clang-tidy modernize-redundant-void-argAaron Carlisle
2021-12-30Nodes: Convert shader, texture category nodes to c++Aaron Carlisle
Also add/correct file namespace This is needed to use new node APIs Differential Revision: https://developer.blender.org/D13688
2021-12-30Fix T94454: Python API curve to mesh use after free without depsgraphHans Goudey
This was caused by a mistake in eb0eb54d9644c5139, which removed the clearing of the curve edit mode pointers that are set when creating the temporary data for the conversion. If they are not cleared, the generic ID free function will also free the edit mode data, which is wrong when the source curve is in edit mode.
2021-12-29Modifiers: decrease maximum allocation size for Weld verticesGermano Cavalcante
At the time of allocating the buffer with vertices in context, we don't know exactly how many vertices are affected, but we do know that it is less than or equal to twice the number of vertices killed.
2021-12-29Fix (unreported): missing relations update after adding scene time nodeJacques Lucke
This just moves the relations update to a lower level function that is used by other functions. Eventually, the special case for this node should be generalized.
2021-12-29Cleanup: Remove unused DerivedMesh functionsHans Goudey
2021-12-29Geometry Nodes: Support instances in the delete geometry nodeHans Goudey
Ever since the instance domain was added, this was exposed, it just didn't do anything. This patch implements the instances domain in the delete and separate geometry nodes, where it acts on the top-level instances. We act on a mutable instances input, with the idea that eventually copy on write attribute layers will make this less expensive. It also allows us to keep the instance references in place and to do less work in some situations. Ref T93554 Differential Revision: https://developer.blender.org/D13565
2021-12-29Geometry Nodes: Accumulate Fields NodeJohnny Matthews
This function node creates a running total of a given Vector, Float, or Int field. Inputs: - Value: The field to be accumulated - Group Index: The values of this input are used to aggregate the input into separate 'bins', creating multiple accumulations. Outputs: - Leading and Trailing: Returns the running totals starting at either the first value of each accumulations or 0 respectively. - Total: Returns the total accumulation at all positions of the field. There's currently plenty of duplicate work happening when multiple outputs are used that could be optimized by a future refactor to field inputs. Differential Revision: https://developer.blender.org/D12743
2021-12-29Fix: Issues with attribute comparison in geometry nodes testsHans Goudey
A few typos in 17770192fb0c5fddda lead to an incorrect count of custom data layers in the test meshes. We only want to consider layers that are not anonymous, and there was a copy and paste mistake.
2021-12-29Nodes: Composite: UI fixes to time nodeAaron Carlisle
- Use default size consistent with other curve nodes - Use column instead of row for properties
2021-12-29Fix T94113: Local view + Geometry Nodes is broken for instancesGermano Cavalcante
`GeometrySet::compute_boundbox_without_instances` may not initialize min max in some cases such as meshes without vertices. This can result in a Bounding Box with impossible dimensions (min=FLT_MAX, max=-FLT_MAX). So repeat the same solution seen in `BKE_object_boundbox_calc_from_mesh` and set boundbox values to zero. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D13664
2021-12-29Cleanup: Remove dead codeAaron Carlisle
2021-12-29Nodes: Cleanup: Remove no op registration functionsAaron Carlisle
All these function paramaters are set to NULL so they arent necessary. Reviewed By: HooglyBoogly, JacquesLucke Differential Revision: https://developer.blender.org/D13686
2021-12-29gpu.types.GPUOffScreen: accept format argument for color textureGermano Cavalcante
Some projects need more than 8-bit RGBA off-screen, so add the ability to accept color format and defaults to RGBA8 so existing code should not be affected. Currently supported formats: - RGBA8 (default) - RGBA16 - RGBA16F - RGBA32F Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D13650
2021-12-29Fix: VSE colormix blend factor not workingRichard Antalik
Blend factor was used to adjust alpha of background image, which is not correct. This was done in fdee84fd567a where another change was, that background alpha is copied into result, which is correct. Apply blend factor to foreground image alpha channel.
2021-12-29Fix T94422: Shading/Normals break on array modifier capsPhilipp Oeser
The array modifier does not necessarily tag normals dirty. If it doesnt, normals are recalculated "internally" using the offset ob transform. This was happening for the array items, but not for the caps. Now do the same thing for caps. Maniphest Tasks: T94422 Differential Revision: https://developer.blender.org/D13681
2021-12-29Fix T94453: Weld modifier crash after recent cleanupHans Goudey
I had assumed that the span's size was the same as the length variable. In the future, separate lengths could be removed in favor of using lengths directly from spans.
2021-12-29Nodes: Convert shader, shader category nodes to c++Aaron Carlisle
Also add file namespace This is needed to use new node APIs Differential Revision: https://developer.blender.org/D13684
2021-12-29Cleanup: clang-tidyAaron Carlisle
Fixes two instances of `-Wunused-but-set-variable` There are several more of these but these were low hanging and noisy with one being in a header functions.
2021-12-29Cleanup: clang-tidyAaron Carlisle
- modernize-deprecated-headers - modernize-redundant-void-arg Missed in rB11ac276caaa6e6d42176452526af97cf972abb5f
2021-12-29Cleanup: Remove unused node tree "local sync" functionsHans Goudey
2021-12-29Cleanup: Use indices instead of pointersGermano Cavalcante
This improves code readability. Take the opportunity and improve the comments too.
2021-12-29Cleanup: Return early, organize variable declarationsHans Goudey
2021-12-28Nodes: Enable unity build for function nodesAaron Carlisle
Unity build saves 5 seconds off the total build time when compiling `bf_nodes_function`. Total build times went from 25s to 20s (20% reduction), tested with ninja on linux running i5 8250U.
2021-12-28Nodes: Add bf_nodes_function moduleAaron Carlisle
In the future this will be used to support unity builds for function nodes Differential Revision: https://developer.blender.org/D13682