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
path: root/source
AgeCommit message (Collapse)Author
2021-05-28DrawManager: Early return for buffer cache creationGermano Cavalcante
No real functional changes. This is useful for benchmark cases when `cache->uv_cage` is passed but has no buffers are requested.
2021-05-28Geometry Nodes: Add Mesh to Curve NodeHans Goudey
This node creates poly curve splines from mesh edges. A selection attribute input allows only using some of the edges from the mesh. The node builds cyclic splines from branchless groups of edges where possible, but when there is a three-way intersection, the spline stops. The node also transfers all attributes from the mesh to the resulting control points. In the future we could add a way to limit that to a subset of the attributes to improve performance. The algorithm is from Animation Nodes, written by @OmarSquircleArt. I added the ability to use a selection, attribute transferring, and used different variable names, etc, but other than that the algorithm is the same. Differential Revision: https://developer.blender.org/D11265
2021-05-28Fix incorrect Denoise node SSE 4.1 warning on macOS IntelBrecht Van Lommel
2021-05-28MSVC: Fix build error with 16.10/11Ray Molenkamp
Not entirely sure why this was not an issue for 16.9 but TBB includes the Windows.h header which by default will define min and max macro's These collide with the stl versions in <algorithm> This patch requests Windows.h not to define the problematic macro's, resolving the conflict.
2021-05-28Merge branch 'blender-v2.93-release'Philipp Oeser
2021-05-28Fix T88635: VSE: Select Linked gives unpredictable resultsPhilipp Oeser
Caused by {rB66923031e6f2}. Code would process unselected sequences and skip selected, needs to be the other way around. Maniphest Tasks: T88635 Differential Revision: https://developer.blender.org/D11424
2021-05-28Fix crash in liboverride resync.Bastien Montagne
Reported by studio (@andy), thanks.
2021-05-28Fix T88499: Copy data path operator does not consider library affiliationPhilipp Oeser
When using the operator `ui.copy_data_path_button(full_path=True)` ({key ctrl shift Alt C} on hover) the copied path does not consider the library origin. That means that when there is a name clash the data path is not accurate and refers to the local item instead. This patch adds the library (if the ID is linked) of the returned string from RNA_path_full_ID_py. bpy.data.objects["Cube", "//library.blend"] instead of bpy.data.objects["Cube"] note: parsing this happens in pyrna_prop_collection_subscript_str_lib_pair_ptr Maniphest Tasks: T88499 Differential Revision: https://developer.blender.org/D11412
2021-05-28Cleanup: use static set syntaxCampbell Barton
2021-05-28DrawManager: Use Compute Shader to Update Hair.Jeroen Bakker
This patch will use compute shaders to create the VBO for hair. The previous implementation uses transform feedback. Timings before: between 0.000069s and 0.000362s. Timings after: between 0.000032s and 0.000092s. Speedup isn't noticeable by end-users. The patch is used to test the new compute shader pipeline and integrate it with the draw manager. Allowing EEVEE, Workbench and other draw engines to use compute shaders with the introduction of `DRW_shgroup_call_compute` and `DRW_shgroup_vertex_buffer`. Future improvements are possible by generating the index buffer of hair directly on the GPU. NOTE: that compute shaders aren't supported by Apple and still use the transform feedback workaround. Reviewed By: fclem Differential Revision: https://developer.blender.org/D11057
2021-05-27Fix own crash in today's rBf68288a8746f.Bastien Montagne
2021-05-27LibOverride: refactor recursive resync.Bastien Montagne
We need to re-evaluate what needs to be resynced after each step of processing overrides from a given 'indirect level' of libraries. Otherwise, recusrive overrides (overrides of linked overrides) won't work. Note that this should not change too much in practice currently, since there are other issues with recursive overrides yet. Also, checks (CLOG errors) added show that some ID (node trees) seem to be detected as needing resynced even after beig just resynced, this needs further investigation still. Could be though that it is due to limit currently set on nodetrees, those are always complicated snowflakes to deal with...
2021-05-27Fix T88625: Multiobject UV hiding/unhiding does not work with UV_SYNC_SELECTIONPhilipp Oeser
Oversight in {rB470f17f21c06}. Hiding was only done for the first mesh, then the operator finished (in case of UV_SYNC_SELECTION). Now just continue to the next. Maniphest Tasks: T88625 Differential Revision: https://developer.blender.org/D11413
2021-05-27Merge branch 'blender-v2.93-release'Clément Foucault
2021-05-27Revert "EEVEE: Ensure Reflection: Use new implementation"Clément Foucault
Both before and after can have artifacts with some normal maps, but this seems to give worse artifacts on average which are not worth the minor performance increase. This reverts commit 5c4d24e1fd752a8a89d44d05e8e3f9b31f2d7db0. Ref T88368, D10084
2021-05-27Geometry Nodes: Expose texture and material inputs to modifierHans Goudey
This allows choosing material and texture sockets for the group input node in the modifier. Note that currently grease pencil materials are displayed in the list, even though grease pencil data is not supported yet by geometry nodes. That is more complicated to fix in this case, since we use IDProperties to store the dynamic exposed inputs. Differential Revision: https://developer.blender.org/D11393
2021-05-27Cleanup: Fix forward declaring class with "struct"Hans Goudey
2021-05-27Fix build error: Make CurveEval a structHans Goudey
We need a pointer to this in DNA, which means it cannot be a class.
2021-05-27Cleanup: rename blender-launcher source file.Ray Molenkamp
blender-laucher.c was not an ideal name for this file since it's not directly clear it is windows only. This change renames it to blender_launcher_win32.c to be more in line with other win32 specific files we have.
2021-05-27Geometry Nodes: Draw curve data in the viewportHans Goudey
This patch adds relatively small changes to the curve draw cache implementation in order to draw the curve data in the viewport. The dependency graph iterator is also modified so that it iterates over the curve geometry component, which is presented to users as `Curve` data with a pointer to the `CurveEval` The idea with the spline data type in geometry nodes is that curve data itself is only the control points, and any evaluated data with faces is a mesh. That is mostly expected elsewhere in Blender anyway. This means it's only necessary to implement wire edge drawing of `CurveEval` data. Adding a `CurveEval` pointer to `Curve` is in line with changes I'd like to make in the future like using `CurveEval` in more places such as edit mode. An alternate solution involves converting the curve wire data to a mesh, however, that requires copying all of the data, and since avoiding it is rather simple and is in-line with future plans anyway, I think doing it this way is better. Differential Revision: https://developer.blender.org/D11351
2021-05-27Fix T88452: Point Separate crash on curve componentHans Goudey
The point separate node should create a point cloud from control points in this case, but for now disable the node on curves to avoid the crash.
2021-05-27Cleanup: Use consistent variable namesHans Goudey
2021-05-27Cleanup: rename BKE_main_id_{clear_newpoins => newptr_and_tag_clear}Campbell Barton
It wasn't obvious this function cleared the tag as well.
2021-05-27Cleanup: remove duplicate LIB_TAG_NEW untag codeErik Abrahamsson
This patch removes unnecessary calls to `BKE_main_id_tag_all` where the same job is done by `BKE_main_id_clear_newpoins` on the following line. Reviewed By: campbellbarton, mont29 Ref D11379
2021-05-27LineArt: List Optimization for tile linked data.YimingWu
Use array instead of ListBase for line art bounding area linked triangles and edges. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D11302
2021-05-27Cleanup: Line art variable naming.YimingWu
Change `reln` to `eln`. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D11411
2021-05-27LibOverride: Add heuristic protection against infinite loop due to libraries ↵Bastien Montagne
inter-dependencies. This is not supposed to happen, but better be safe than sorry, and assume it is beyond unlikely that someone would use chains of over 10k linked libraries.
2021-05-27Fix (studio-reported) infinite loop in resync code.Bastien Montagne
Very stupid mistake in libraries indirect-level building code, was not skipping 'loop-back' ID pointers. Note that we also need some level of checks for the case where there would be an actual dependency loop between libraries, this is not supposed to be possible, but better be safe than sorry. Will add in next commit.
2021-05-27Cleanup: inconsistent parameter nameJacques Lucke
2021-05-27Cleanup: inconsistent parameter nameJacques Lucke
2021-05-27Cleanup: simplify logic for copying vector button as textCampbell Barton
An arbitrary size offsets was used in float_array_to_string, simplify the loop, use exact size limits. Also rename variables so it's clear which array the length apply to.
2021-05-27Fix incorrect BLI_snprintf usageCampbell Barton
Event though in practice this wasn't causing problems as the fixed size buffers are generally large enough not to truncate text. Using the result from `snprint` or `BLI_snprintf` to step over a fixed size buffer allows for buffer overruns as the returned value is the size needed to copy the entire string, not the number of bytes copied. Building strings using this convention with multiple calls: ofs += BLI_snprintf(str + ofs, str_len_max - ofs); .. caused the size argument to become negative, wrapping it to a large value when cast to the unsigned argument.
2021-05-27Cleanup: specify array sizes, remove warnings in commentsCampbell Barton
2021-05-27Cleanup: spellingCampbell Barton
2021-05-27Nodes: fix material node copied over when socket is copiedJacques Lucke
This was missing from rB207472930834a2916cf18bbdff51bcd77c6dd0c0.
2021-05-27Geometry Nodes: disable multi-threading in evaluator for nowJacques Lucke
A deadlock could happen under certain circumstances when geometry nodes is used on multiple objects. Once T88598 is resolved, multi-threading can be enabled again. Differential Revision: https://developer.blender.org/D11405
2021-05-27Cleanup: use UndoMesh as links instead of allocating LinkDataCampbell Barton
While the advantage isn't large, it's simpler to skip the intermediate link. Also remove unused next and previous struct members from MeshUndoStep_Elem.
2021-05-27Undo: resolve inefficient edit-mesh memory use with multiple objectsCampbell Barton
When editing more than 1 object at a time, complete copies of each mesh were being stored. Now the most recent undo-data for each mesh is used (when available).
2021-05-27Cleanup: Remove completed "TODO" commentHans Goudey
Since rBb67fe05d4bea, the dependency graph supports relations on collection geometry, and the nodes modifier uses that.
2021-05-27Cleanup: Simplify spline point attribute materialize functionsHans Goudey
- Iterate over the mask directly instead of using an index. - Use Span slice and copy_from instead of a lower level function.
2021-05-27Geometry Nodes: Support interpolation between curve domainsHans Goudey
This commit adds interpolation from the point domain to the spline domain and the other way around. Before this, spline domain attributes were basically useless, but now they are quite helpful as a way to use a shared value in a contiguous group of points. I implementented a special virtual array for the spline to points conversion, so that conversion should be close to the ideal performance level, but there are a few ways we could optimize the point to spline conversion in the future: - Use a function virtual array to mix the point values for each spline on demand. - Implement a special case for when the input virtual array is one of the virtual arrays from the spline point attributes. In other words, decrease curve attribute access overhead. Differential Revision: https://developer.blender.org/D11376
2021-05-27Win: Add launcher to hide the console window flashRay Molenkamp
This patch fixes a long-standing complaint from users: the console window shortly flashing when they start blender. This is done by adding a new executable called blender-launcher.exe which starts blender.exe while hiding the console. Any command line parameters given to blender-launcher will be passed on to blender.exe so it'll be a drop in replacement. Starting blender.exe on its own will still function as a proper console app so no changes required here for users that use blender for batch processing. Notable changes: Registering blender (-R switch) will now register blender-launcher as the preferred executable. This patch updates the installer and updates the shortcuts to start blender-launcher.exe rather than blender.exe Differential Revision: https://developer.blender.org/D11094 Reviewed by: brecht, harley
2021-05-27Cleanup: Specify amount of buffers through preprocessor directivesGermano Cavalcante
2021-05-27Fix T88603: Crash with spline attributes after curve resampleHans Goudey
The output curve's spline attribute domain custom data needs to be reallocated with the correct length after adding the splines.
2021-05-26Revert "DrawManager: Use Compute Shader to Update Hair."Jeroen Bakker
This reverts commit 8f9599d17e80254928d2d72081a4c7e0dee64038. Mac seems to have an error with this change. ``` ERROR: /Users/blender/git/blender-vdev/blender.git/source/blender/draw/intern/draw_hair.c:115:44: error: use of undeclared identifier 'shader_src' ERROR: /Users/blender/git/blender-vdev/blender.git/source/blender/draw/intern/draw_hair.c:123:13: error: use of undeclared identifier 'shader_src' ERROR: make[2]: *** [source/blender/draw/CMakeFiles/bf_draw.dir/intern/draw_hair.c.o] Error 1 ERROR: make[1]: *** [source/blender/draw/CMakeFiles/bf_draw.dir/all] Error 2 ERROR: make: *** [all] Error 2 ```
2021-05-26Cleanup: array-parameter warning with GCC 11Campbell Barton
Pass the string size as this is less error prone in general.
2021-05-26GPencil: Cleanup - Conform with RNA naming schemeFalk David
The newly added `disable_masks_viewlayer` RNA property did not conform with the RNA naming scheme. This renames it to `use_viewlayer_masks`.
2021-05-26Fix T88111: Skin modifier assets within invalid face normalsCampbell Barton
The skin modifier was moving vertices without updating normals for the connected faces, this happened when smoothing and welding vertices. Reviewed By: mont29 Ref D11397
2021-05-26Cleanup: shadow warningCampbell Barton
Move reproject_type into an extern, to avoid declaring multiple times.
2021-05-26LibOverride: add recursive resync.Bastien Montagne
Recursive resync means also resyncing overrides that are linked from other library files into current working file. Note that this allows to get 'working' files even when their dependencies are out of sync. However, since linked data is never written/saved, this has to be re-done every time the working file is loaded, until said dependencies are updated properly. NOTE: This is still missing the 'report' side of things, which is part of a larger task to enhance reports regarding both linking, and liboverrides (see T88393). ---------- Technical notes: Implementing this proved to be slightly more challenging than expected, mainly because one of the key aspects of the feature was never done in Blender before: manipulating, re-creating linked data. This ended up moving the whole resync code to use temp IDs out of bmain, which is better in the long run anyway (and more aligned with what we generally want to do when manipulating temp ID data). It should also give a marginal improvement in performances for regular resync. This commit also had to carefully 'sort' libraries by level of indirect usage, as we want to resync first the libraries that are the least directly used, i.e. libraries that are most used by other libraries.