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-02-03Fix T66913: undo after frame-change doesn't refresh properlyCampbell Barton
Use the ID.recalc flag to detect when updates after frame-change is needed. Since comparing the last calculated frame doesn't take undo into account (see code-comment for details). `ID_RECALC_AUDIO_SEEK` has been renamed to `ID_RECALC_FRAME_CHANGE` since this is not only related to audio however internally this flag is still categorized in `NodeType::AUDIO`. Reviewed By: sergey Ref D13942
2022-02-03Merge branch 'blender-v3.1-release'Sergey Sharybin
2022-02-03Fix assert in original modifiers pointer update functionSergey Sharybin
The issue was happening with a specific file where the ID management code was not fully copying all modifiers because of the extra check in the `BKE_object_support_modifier_type_check()`. While it is arguable that copy-on-write should be a 1:1 copy there is no real need to maintain the per-modifier pointer to its original. Use its SessionUUID to perform lookup in the original datablock. Downside of this approach is that it is a linear lookup instead of direct pointer access, but the upside is that there is less pointers to manage and that the file with unsupported modifiers does behave correct without any asserts. Differential Revision: https://developer.blender.org/D13993
2022-02-02LibOverride: Move proxy conversion code in its own file.Bastien Montagne
This will allow to keep the access to deprecated DNA proxy data in that specific file, instead of allowing deprecated accesses in the whole override kernel code. Part of T91671.
2022-02-02Merge branch 'blender-v3.1-release'Bastien Montagne
2022-02-02Fix (unreported) bug in liboverride resync code.Bastien Montagne
Part of the resynching code would access collections' objects base cache, which can be invalid at that point (due to previous ID remapping and/or deletion). Use a custom recursive iterator over collections' objects instead, since those 'raw' data like collection's objects list, and collection's children lists, should always be valid. Found while investigating a studio production file.
2022-02-02Merge branch 'blender-v3.1-release'Sergey Sharybin
2022-02-02Fix T95288: Shrinkwrap selection broken in edit modeSergey Sharybin
Mistake in the 974981a63704: f the edit data is not present then the origindex codepath is to be used. Added a brief note about it on the top of the file. More ideally would be to remove edit mesh from non-bmesh-wrappers but this would require changes in the draw manager to make a proper decision about drawing edit mode overlays.
2022-02-02Remove option to not auto-convert proxies on file load.Bastien Montagne
Now all proxies will always be converted to library overrides. If conversion fails, they are simply 'disabled'. This should be the last 'user-visible' step of proxies removal. Remaining upcoming commits will remove internal ID management, depsgraph and evaluation code related to proxies. Also bump the blendfile subversion. Part of T91671.
2022-02-02Proxies Removal: Handle conversion to liboverrides also for linked data.Bastien Montagne
So far linked proxies were just kept as-is, this is no longer an option. Attempt to convert them into liboverrides as much as possible, though some cases won't be supported: - Appending proxies is broken since a long time, so conversion will fail here as well. - When linking data, some cases will fail to convert properly. in particular, if the linked proxy object is not instanced in a scene (e.g. when linking a collection containing a proxy as an epty-instanced collection instead of a view-layer-instanced collection). NOTE: converion when linking/appending is done unconditionnaly, option to not convert on file load will be removed in next commit anyway. Part of T91671.
2022-02-02LibOverride: Add 'owner library' info to some liboverride code.Bastien Montagne
This will help when dealing with liboverrides from other library files, e.g for resync or proxies conversion. This commit only affects proxy conversion. Part of T91671.
2022-02-02Cleanup: spelling in commentsCampbell Barton
2022-02-02Compositor: Combine and Separate XYZ NodeAaron Carlisle
We have this node for shader and geometry nodes. Compositor can also work with vectors, and this can help with that. Reviewed By: manzanilla Maniphest Tasks: T95385 Differential Revision: https://developer.blender.org/D12919
2022-02-02Cleanup: Use C++ typesHans Goudey
2022-02-01Merge branch 'blender-v3.1-release'Jacques Lucke
2022-02-01Fix T95262: instances ignored in Frame Selected operatorJacques Lucke
The issue was that the code only looked at `dob->ob` instead of `dob->ob_data` which is necessary since rB5a9a16334c573c4566dc9b2a314cf0d0ccdcb54f. This now uses the same pattern that is used in other places where `BKE_object_replace_data_on_shallow_copy` is used.
2022-02-01Merge branch 'blender-v3.1-release'Campbell Barton
2022-02-01Merge branch 'blender-v3.1-release'Campbell Barton
2022-02-01Fix T95185: Invalid normals after undo in sculpt modeCampbell Barton
Since d9c6ceb3b88b6db87490b08e0089f9a18e6c52d6 partial updates to normals in sculpt-mode were accumulating into the current normal instead of a zeroed value. Zero vertex normal values tagged for calculation before accumulation. Reviewed By: HooglyBoogly Ref D13975
2022-02-01Cleanup: remove duplicate vertex normal array in SculptSessionCampbell Barton
From investigating T95185, it's important the normal returned by SCULPT_vertex_normal_get always match the PBVH normal array. Since this is always initialized in the PBVH, there is no advantage in storing the normal array in two places, it only adds the possibility that changes in the future causing different meshes normals to be used. Split out from D13975.
2022-02-01Merge branch 'blender-v3.1-release'Richard Antalik
2022-02-01Fix T93856: VP9 lossless render missing alphaRichard Antalik
Since 0ea0ccc4ffd5, `AV_PIX_FMT_YUV444P` pixel format was used for lossless renders, which did override `AV_PIX_FMT_YUVA420P` format when "RGBA" output is chosen. VP9 encoder doesn't seem to support `AV_PIX_FMT_YUVA444P` pixel format, so use `AV_PIX_FMT_YUVA420P` for lossless RGBA ouput instead. Reviewed By: sergey Differential Revision: https://developer.blender.org/D13947
2022-01-31Cleanup: Remove unused "_ex" version of functionHans Goudey
2022-01-31Cleanup: Remove unused DerivedMesh flagHans Goudey
The value of this flag was never used.
2022-01-31Cleanup: Remove unused DerivedMesh functionsHans Goudey
Remove functions and function pointers that were never set or never used at all. The "tessface" original index handling in `subsurf_ccg.c` can be removed because the data was never used.
2022-01-31Cleanup: spelling in commentsCampbell Barton
2022-01-31Cleanup: use our own conventions for tags in commentsCampbell Barton
2022-01-31Cleanup: Remove unused DerivedMesh normal handlingHans Goudey
This function and flags weren't used outside of DerivedMesh code, and since the plan is to remove the data structure, it makes sense to remove complexity where possible.
2022-01-30Cleanup: Remove modifier type hair callbackHans Goudey
This is similar to e032ca2e25bf2e305b66 which removed the callback for volumes. Now that we have geometry sets, there is no need to define a callback for every data type, and this wasn't used. Procedural curves/hair editing will use nodes rather than new modifier types anyway.
2022-01-30Cleanup: Cmake: remove unnecessary definitions for internationalizationAaron Carlisle
Previously, macros were ifdefed using the cmake option `WITH_INTERNATIONAL` However, the is unnecessary as withen the functions themselves have checks for building without internationalization. This also means that many `add_definitions(-DWITH_INTERNATIONAL)` are also unnecessary. Reviewed By: mont29, LazyDodo Differential Revision: https://developer.blender.org/D13929
2022-01-29Cleanup: Remove mesh vertex "temp tag" flagHans Goudey
As part of the project of converting `MVert` into `float3` (more details in T93602), this is an easy step, since it is only locally used runtime data. In the six places it was used, the flag was replaced by a local bitmap. By itself this change has no benefits other than making some code slightly simpler. It only really matters when the other flags are removed and it can be removed from `MVert` along with the bevel weight. Differential Revision: https://developer.blender.org/D13878
2022-01-28Merge branch 'blender-v3.1-release'Sergey Sharybin
2022-01-28Remove compilation warnings TexResult.Jeroen Bakker
2022-01-28Revert "Blender 3.1 bcon3 (beta)"Thomas Dinges
This reverts commit d45098024ea5b533a406c2a2352b35e49a5e72af.
2022-01-28Merge remote-tracking branch 'origin/blender-v3.1-release'Dalai Felinto
2022-01-28Blender 3.1 Beta- subversion bumpDalai Felinto
2022-01-28Blender 3.1 bcon3 (beta)Thomas Dinges
2022-01-28Blender 3.2 bcon1 - alphaThomas Dinges
Bump the version number for the new release cycle.
2022-01-28DrawManager: Image engine support huge images.Jeroen Bakker
Adding better support for drawing huge images in the image/uv editor. Also solved tearing artifacts. The approach is that for each image/uv editor a screen space gpu texture is created that only contains the visible pixels. When zooming or panning the gpu texture is rebuild. Although the solution isn't memory intensive other parts of blender memory usage scales together with the image size. * Due to complexity we didn't implement partial updates when drawing images tiled (wrap repeat). This could be added, but is complicated as a change in the source could mean many different changes on the GPU texture. The work around for now is to tag all gpu textures to be dirty when changes are detected. Original plan was to have 4 screen space images to support panning without gpu texture creation. For now we don't see the need to implement it as the solution is already fast. Especially when GPU memory is shared with CPU ram. Reviewed By: fclem Maniphest Tasks: T92525, T92903 Differential Revision: https://developer.blender.org/D13424
2022-01-28Image: Partial Update Redesign.Jeroen Bakker
This patch reimplements the image partial updates. Biggest design motivation for the redesign is that currently GPUTextures must be owned by the image. This reduces flexibility and adds complexity to a single component especially when we want to have different structures. The new design is not limited to GPUTextures and can also be used by reducing overhead in image operations like scaling. Or partial image updating in Cycles. The usecase in hand is that we want to support virtual images in the image editor so we can work with images that don't fit in a single GPUTexture. Using `BKE_image_partial_update_mark_region` or `BKE_image_partial_update_mark_full_update` a part of an image can be marked as dirty. These regions are stored per ImageTile (UDIM). When a part of the code wants to receive partial changes it needs to construct a `PartialUpdateUser` by calling `BKE_image_partial_update_create`. As long as this instance is kept alive the changes can be received. When a user wants to update its own data it will call `BKE_image_partial_update_collect_changes` This will collect the changes since the last time the user called this function. When the partial changes are available the partial change can be read by calling `BKE_image_partial_update_get_next_change` It can happen that the introduced mechanism doesn't have the data anymore to construct the changes since the last time a PartialUpdateUser requested it. In this case it will get a request to perform a full update. Maniphest Tasks: T92613 Differential Revision: https://developer.blender.org/D13238
2022-01-27Fix T95202: Curve to mesh node inconsistent edge vertex orderHans Goudey
Though the edge vertices aren't really meant to have an order, it can make a difference in operations when there isn't any other information to make decisions from, like etruding a circle of loose edges (the situation in the report). This commit changes the order of the vertices in the final cyclic edge to go in the same direction as all of the other edges.
2022-01-27Fix T95212: Mirror modifier normals crashHans Goudey
The vertex and face normals from the input mesh were used to calculate the normals on the result, which could cause a crash because the result should be about twice as large. Also remove an unnecessary dirty tag, since it is handled automatically when creating a new mesh or in the case of the mirror modifier, when calculating the new custom face corner normals.
2022-01-27USD Preview Surface material export.Michael Kowalski
Add `USD Preview Surface From Nodes` export option, to convert a Principled BSDF material node network to an approximate USD Preview Surface shader representation. If this option is disabled, the original material export behavior is maintained, where viewport setting are saved to the Preview Surface shader. Also added the following options for texture export. - `Export Textures`: If converting Preview Surface, export textures referenced by shader nodes to a 'textures' directory which is a sibling of the USD file. - `Overwrite Textures`: Allow overwriting existing texture files when exporting textures (this option is off by default). - `Relative Texture Paths`: Make texture asset paths relative to the USD. The entry point for the new functionality is `create_usd_preview_surface_material()`, called from `USDAbstractWriter::ensure_usd_material()`. The material conversion currently handles a small subset of Blender shading nodes, `BSDF_DIFFUSE`, `BSDF_PRINCIPLED`, `TEX_IMAGE` and `UVMAP`. Texture export is handled by copying texture files from their original location to a `textures` folder in the same directory as the USD. In-memory and packed textures are saved directly to the textures folder. This patch is based, in part, on code in Tangent Animation's USD exporter branch. Reviewed By: sybren, HooglyBoogly Differential Revision: https://developer.blender.org/D13647
2022-01-27Cleanup: Add more const correctness to some functionsClément Foucault
These are functions that are used by eevee-rewrite which has more strict const correctness.
2022-01-26Fix T95222: Crash selecting vertices with modifier applied on cageSergey Sharybin
Caused by 0f89bcdbebf where it was needed for cage and evaluated mesh to have same behavior in respect of having edit_mesh pointer assigned. This change makes it so that edit_data is not implied to exist when the edit_mesh pointer is not null. This was already the case in some other code.
2022-01-26LibOverride: Resync: Do not process overrides that should already have been ↵Bastien Montagne
resynced. Those cases are almost always synptoms of either bug in code, or broken files. Re-doin resync on them only costs time and causes extra trash data as a result, without really helping in any way.
2022-01-26Performance: Remap multiple items in UIJeroen Bakker
During sprite fright loading of complex scenes would spend a long time in remapping ID's The remapping process is done on a per ID instance that resulted in a very time consuming process that goes over every possible ID reference to find out if it needs to be updated. If there are N of references to ID blocks and there are M ID blocks that needed to be remapped it would take N*M checks. These checks are scattered around the place and memory. Each reference would only be updated at most once, but most of the time no update is needed at all. Idea: By grouping the changes together will reduce the number of checks resulting in improved performance. This would only require N checks. Additional benefits is improved data locality as data is only loaded once in the L2 cache. It has be implemented for the resyncing process and UI editors. On an Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 16Gig the resyncing process went from 170 seconds to 145 seconds (during hotspot recording). After this patch has been applied we could add similar approach to references (references between data blocks) and functionality (tagged deletion). In my understanding this could reduce the resyncing process to less than a second. Opening the village production file between 10 and 20 seconds. Flame graphs showing that UI remapping isn't visible anymore (`WM_main_remap_editor_id_reference`) * Master {F12769210 size=full} * This patch {F12769211 size=full} Reviewed By: mont29 Maniphest Tasks: T94185 Differential Revision: https://developer.blender.org/D13615
2022-01-26Revert "CMake: include BROTLI_LIBRARIES in FREETYPE_LIBRARIES on UNIX"Campbell Barton
This reverts commit 086f1911698154edd4cc19dc966e966bb0060917. There was apparently a problem using APPEND which wasn't referenced in the commit log. Added comment noting the reason for the discrepancy.
2022-01-26Cleanup: spelling in commentsCampbell Barton
2022-01-26CMake: include BROTLI_LIBRARIES in FREETYPE_LIBRARIES on UNIXCampbell Barton
This was already done for APPLE & WIN32, which would reference these libraries twice. Now append BROTLI_LIBRARIES to FREETYPE_LIBRARIES when they're required for linking. No functional changes as all references to FREETYPE_LIBRARIES also used BROTLI_LIBRARIES.