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
2019-12-16Mantaflow [Part 6]: Updates in /blender/sourceSebastián Barschkis
A collection of smaller changes that are required in the /blender/source files. A lot of them are also due to variable renaming. Reviewed By: sergey Maniphest Tasks: T59995 Differential Revision: https://developer.blender.org/D3855
2019-12-16Mantaflow [Part 11]: Updated entire smoke.c codeSebastián Barschkis
Probably the most significant changes are in smoke.c. New functionality includes: - support for adative time steps (substeps) - write flow objects to grid structure so that Mantaflow can generate levelsets - no more distinction between FLUID_3D and WTURBULENCE objects. Everthing that communicates with Mantaflow now lives in a FLUID object. Reviewed By: sergey Maniphest Tasks: T59995 Differential Revision: https://developer.blender.org/D3861
2019-12-16Mantaflow [Part 9]: Updated rna smoke codeSebastián Barschkis
All new simulation parameters need to be registered in the RNA. Especially for liquids a lot of new ones need to be added. Reviewed By: sergey Maniphest Tasks: T59995 Differential Revision: https://developer.blender.org/D3858
2019-12-16Mantaflow [Part 7]: Added bake configurationSebastián Barschkis
Similarly to physics_fluid.c (in same directory) which handled the baking process for Elbeem, there is now physics_manta.c which handles it for Mantaflow. There are two types of jobs: one for baking and another for freeing. The generic jobs will be used to bake / free specific parts of the simulation (e.g. bake mesh, free particles, etc.). The jobs are only being used in the "modular" cache mode where the simulation has to be baked in parts. Reviewed By: sergey Maniphest Tasks: T59995 Differential Revision: https://developer.blender.org/D3856
2019-12-16Mantaflow [Part 10]: Updated fluid modifier settingsSebastián Barschkis
All the new fluid simulation parameters need to be added the according structs (i.e. domain settings, flow settings). Reviewed By: sergey Maniphest Tasks: T59995 Differential Revision: https://developer.blender.org/D3860
2019-12-16Fix T72467: Crash when using many (>64) images in a shaderLukas Stockner
Previously this limit was rather high, but with UDIMs it's fairly easy to reach this many images. Even though this exceeds the texture limit on most hardware as far as I can tell, it should at least not crash. The old code uses a fixed array which overflows eventually, this fix replaces the array with a GSet. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6416
2019-12-16Fix T72440: Dragging & dropping color in the Image Editor crashesLukas Stockner
This was caused by a call to paint_2d_bucket_fill that I missed in the UDIM changes. Now, this feature does not only not crash, but it even works with tiled images!
2019-12-16Fix typo in UDIM operator (always capitalize UI labels)Dalai Felinto
2019-12-16Cleanup: whitespaceCampbell Barton
2019-12-14UI: Brush Settings overhaulWilliam Reynish
This makes a number of changes to the tool settings brush UI: - All brush-related controls are now grouped together, so you can see which items are brush settings are which are not. Previously it was all jumbled together. - The brush picker is in a separate panel, so that you can switch brushes without worrying about the settings, or vice versa. - Custom Icon settings moved from the Display settings(now known as Cursor) to the Brushes panel. - UnifiedPaintSettings panels are removed and the contained options are now next to their relevant setting with a globe icon toggle. This is not displayed in the header. - 2D Falloff and Absolute Jitter toggles were changed into enums, to make it clearer what happens when they are on or off. - Adjust Strength for Spacing option was in the Options panel in some modes, but in the Stroke panel in others. It is now always under Stroke. - Display (now Cursor) panel was reorganized, settings renamed. - 2-option enums are annoying as a drop-down menu, so they are now drawn with expand=True. - Smooth Stroke and Stabilizer options in grease pencil and other paint modes are now both called "Stabilize Stroke", for consistency and clarity. - De-duplicated some drawing code between various painting modes' brush options. I tried to keep de-duplication reasonable and easy to follow. - A few more tweaks - see D5928 for the extensive list. Most of the patch is written by Demeter Dzadik, with some additions by myself Differential Revision: https://developer.blender.org/D5928 Reviewers: Pablo Dobarro, Bastien Montagne, Matias Mendiola
2019-12-14Fix T72412: Weld Modifier: Merged edges not displayed in wireframemano-wii
2019-12-13Image Editor: Increase size of Add Tile popupLukas Stockner
2019-12-13USD: more efficient mesh & curve writingSybren A. Stüvel
- The default value of USD attributes is now only set on the first sample. Previously this was done for every sample (so the final default was the last value, rather than the first value). - More use of the sparse value writer, now also for UV coordinates, mesh normals, and curve points.
2019-12-13Gizmo: add gizmos for UV transform translate/rotate/scaleCampbell Barton
2019-12-13USD: Introducing a simple USD ExporterSybren A. Stüvel
This commit introduces the first version of an exporter to Pixar's Universal Scene Description (USD) format. Reviewed By: sergey, LazyDodo Differential Revision: https://developer.blender.org/D6287 - The USD libraries are built by `make deps`, but not yet built by install_deps.sh. - Only experimental support for instancing; by default all duplicated objects are made real in the USD file. This is fine for exporting a linked-in posed character, not so much for thousands of pebbles etc. - The way materials and UV coordinates and Normals are exported is going to change soon. - This patch contains LazyDodo's fixes for building on Windows in D5359. == Meshes == USD seems to support neither per-material nor per-face-group double-sidedness, so we just use the flag from the first non-empty material slot. If there is no material we default to double-sidedness. Each UV map is stored on the mesh in a separate primvar. Materials can refer to these UV maps, but this is not yet exported by Blender. The primvar name is the same as the UV Map name. This is to allow the standard name "st" for texture coordinates by naming the UV Map as such, without having to guess which UV Map is the "standard" one. Face-varying mesh normals are written to USD. When the mesh has custom loop normals those are written. Otherwise the poly flag `ME_SMOOTH` is inspected to determine the normals. The UV maps and mesh normals take up a significant amount of space, so exporting them is optional. They're still enabled by default, though. For comparison: a shot of Spring (03_035_A) is 1.2 GiB when exported with UVs and normals, and 262 MiB without. We probably have room for optimisation of written UVs and normals. The mesh subdivision scheme isn't using the default value 'Catmull Clark', but uses 'None', indicating we're exporting a polygonal mesh. This is necessary for USD to understand our normals; otherwise the mesh is always rendered smooth. In the future we may want to expose this choice of subdivision scheme to the user, or auto-detect it when we actually support exporting pre-subdivision meshes. A possible optimisation could be to inspect whether all polygons are smooth or flat, and mark the USD mesh as such. This can be added when needed. == Animation == Mesh and transform animation are now written when passing `animation=True` to the export operator. There is no inspection of whether an object is actually animated or not; USD can handle deduplication of static values for us. The administration of which timecode to use for the export is left to the file-format-specific concrete subclasses of `AbstractHierarchyIterator`; the abstract iterator itself doesn't know anything about the passage of time. This will allow subclasses for the frame-based USD format and time-based Alembic format. == Support for simple preview materials == Very simple versions of the materials are now exported, using only the viewport diffuse RGB, metallic, and roughness. When there are multiple materials, the mesh faces are stored as geometry subset and each material is assigned to the appropriate subset. If there is only one material this is skipped. The first material if any) is always applied to the mesh itself (regardless of the existence of geometry subsets), because the Hydra viewport doesn't support materials on subsets. See https://github.com/PixarAnimationStudios/USD/issues/542 for more info. Note that the geometry subsets are not yet time-sampled, so it may break when an animated mesh changes topology. Materials are exported as a flat list under a top-level '/_materials' namespace. This inhibits instancing of the objects using those materials, so this is subject to change. == Hair == Only the parent strands are exported, and only with a constant colour. No UV coordinates, no information about the normals. == Camera == Only perspective cameras are supported for now. == Particles == Particles are only written when they are alive, which means that they are always visible (there is currently no code that deals with marking them as invisible outside their lifespan). Particle-system-instanced objects are exported by suffixing the object name with the particle's persistent ID, giving each particle XForm a unique name. == Instancing/referencing == This exporter has experimental support for instancing/referencing. Dupli-object meshes are now written to USD as references to the original mesh. This is still very limited in correctness, as there are issues referencing to materials from a referenced mesh. I am still committing this, as it gives us a place to start when continuing the quest for proper instancing in USD. == Lights == USD does not directly support spot lights, so those aren't exported yet. It's possible to add this in the future via the UsdLuxShapingAPI. The units used for the light intensity are also still a bit of a mystery. == Fluid vertex velocities == Currently only fluid simulations (not meshes in general) have explicit vertex velocities. This is the most important case for exporting velocities, though, as the baked mesh changes topology all the time, and thus computing the velocities at import time in a post-processing step is hard. == The Building Process == - USD is built as monolithic library, instead of 25 smaller libraries. We were linking all of them as 'whole archive' anyway, so this doesn't affect the final file size. It does, however, make life easier with respect to linking order, and handling upstream changes. - The JSON files required by USD are installed into datafiles/usd; they are required on every platform. Set the `PXR_PATH_DEBUG` to any value to have the USD library print the paths it uses to find those files. - USD is patched so that it finds the aforementioned JSON files in a path that we pass to it from Blender. - USD is patched to have a `PXR_BUILD_USD_TOOLS` CMake option to disable building the tools in its `bin` directory. This is sent as a pull request at https://github.com/PixarAnimationStudios/USD/pull/1048
2019-12-13Gizmo: fix button 2D hotspot sizeCampbell Barton
Happened when used in 2D view.
2019-12-13Cleanup: unused function, spellingCampbell Barton
2019-12-13Cleanup: clang-formatCampbell Barton
2019-12-12Add support for tiled images and the UDIM naming schemeLukas Stockner
This patch contains the work that I did during my week at the Code Quest - adding support for tiled images to Blender. With this patch, images now contain a list of tiles. By default, this just contains one tile, but if the source type is set to Tiled, the user can add additional tiles. When acquiring an ImBuf, the tile to be loaded is specified in the ImageUser. Therefore, code that is not yet aware of tiles will just access the default tile as usual. The filenames of the additional tiles are derived from the original filename according to the UDIM naming scheme - the filename contains an index that is calculated as (1001 + 10*<y coordinate of the tile> + <x coordinate of the tile>), where the x coordinate never goes above 9. Internally, the various tiles are stored in a cache just like sequences. When acquired for the first time, the code will try to load the corresponding file from disk. Alternatively, a new operator can be used to initialize the tile similar to the New Image operator. The following features are supported so far: - Automatic detection and loading of all tiles when opening the first tile (1001) - Saving all tiles - Adding and removing tiles - Filling tiles with generated images - Drawing all tiles in the Image Editor - Viewing a tiled grid even if no image is selected - Rendering tiled images in Eevee - Rendering tiled images in Cycles (in SVM mode) - Automatically skipping loading of unused tiles in Cycles - 2D texture painting (also across tiles) - 3D texture painting (also across tiles, only limitation: individual faces can not cross tile borders) - Assigning custom labels to individual tiles (drawn in the Image Editor instead of the ID) - Different resolutions between tiles There still are some missing features that will be added later (see T72390): - Workbench engine support - Packing/Unpacking support - Baking support - Cycles OSL support - many other Blender features that rely on images Thanks to Brecht for the review and to all who tested the intermediate versions! Differential Revision: https://developer.blender.org/D3509
2019-12-12Cleanup: Typomano-wii
2019-12-12Cleanup: Follow the commenting conventionmano-wii
Capital letter and full stop.
2019-12-12Cleanup: Rename variables (_tot -> _len)mano-wii
2019-12-12UI: Remove User Preference "Enable All Experimental Features"Dalai Felinto
Users should be able to know explicitly what they are testing. By having them all enabled we run into a scenario where a new experimental feature may have been introduced, and the user is now using it without being even aware of that. Differential Revision: https://developer.blender.org/D6404
2019-12-12Cleanup: Fix typo in user preference codeDalai Felinto
2019-12-12Fix T72380: New Weld Modifier is crashing when used after a Vertex Weight ↵mano-wii
Modifier It happened when the vertex group was empty.
2019-12-12Cleanup: redundant NULL checks, simplify tool fallback arg checksCampbell Barton
2019-12-12Fix fallback tool for tools that don't define their own keymapsCampbell Barton
Needed for UV editor transform tool.
2019-12-12Fix tool fallback being ignored with transform gizmosCampbell Barton
This only worked once the gizmo was displayed.
2019-12-12Modifier: New Weld Modifiermano-wii
Part of T70240 This is the initial implementation of Weld Modifier. New features will be added later. ToDo: - Seams: restrict welding to vertices along boundary edges. - Edge Collapse: collapse edges below the length threshold. - New icon. - Some customdata are not being correctly interpolated. Differential Revision: https://developer.blender.org/D6383
2019-12-12BLI_bvhtree_overlap_ex: add 'max_interactions' parametermano-wii
No functional changes. Allows more performance control and is important for Weld Modifier.
2019-12-11Cleanup: disable debug print define in override code.Bastien Montagne
Thanks to Blazej Floch (@bfloch) for the head-up.
2019-12-11DrawManager: Disable Clipping in material/rendered modeJeroen Bakker
Viewport: Disable Clipping For EEVEE and External Renderers Currently it is possible that, when using viewport clipping, the display and tools communicate different information to the user then the renderer does. The reason is that the renderer does not support viewport clipping. Both EEVEE and Cycles do not support it. This patch will disable the clipping in all the tools and drawing code when the viewport drawing mode is `Material Preview` or `Rendered`. This patch introduces a `RV3D_CLIPPING_ENABLED` util that checks if clipping is enabled for the given `rv3d` and `v3d`. Also in places where it was needed we added the `ViewContext` as a carrier for the `View3D` and `RegionView3D`. There are a few areas in the tooling (select, projection painting) that still needs to be tackled after this patch. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6047
2019-12-11Add missing draw state check to OVERLAY_edit_mesh_drawRobert Guetzkow
Fix for T72309. The crash was caused by a missing check of the draw state, which resulted in dereferencing of a null pointer. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6380
2019-12-11Depsgraph: add missing #include to DEG_depsgraph_query.hSybren A. Stüvel
The `DEG_depsgraph_query.h` file uses the `ITER_BEGIN` and `ITER_END` macros defined in `BLI_iterator.h` without including that header. No functional changes.
2019-12-11CMake: recent removal of linked libs gave errors in some casesCampbell Barton
While I can't redo the error, it looks to be related to tbb & mkldnn. Adding back in this case for now.
2019-12-11UI: show tool cycling shortcuts in the toolbarCampbell Barton
2019-12-11PyAPI: add utility functions get the size from an evaluated stringCampbell Barton
Allows including null bytes in the resulting string.
2019-12-11Docs: expand comments in versioning codeCampbell Barton
Help ensure we update all necessary areas when version bumping.
2019-12-11Fix T72340: Version bump for recent Userdef changesHarley Acheson
Updates blender subversion in order to properly handle recent userdef theme changes. Differential Revision: https://developer.blender.org/D6388 Reviewed by Campbell Barton
2019-12-11Cleanup: spellingCampbell Barton
2019-12-11Overlay Engine: Armature: Fix bones disapearing with custom bone colorClément Foucault
This seems to only affect some drivers. Rendering to multiple targets without all output variables defined seems to be undefined behavior. Thanks to gaiaclary for reporting on blendercoders.
2019-12-10Cycles: support for custom shader AOVsLukas Stockner
Custom render passes are added in the Shader AOVs panel in the view layer settings, with a name and data type. In shader nodes, an AOV Output node is then used to output either a value or color to the pass. Arbitrary names can be used for these passes, as long as they don't conflict with built-in passes that are enabled. The AOV Output node can be used in both material and world shader nodes. Implemented by Lukas, with tweaks by Brecht. Differential Revision: https://developer.blender.org/D4837
2019-12-10Fix menu buttons not displaying down arrow with emboss=FalseBrecht Van Lommel
2019-12-10Fix: Fullscreen File Browser showing override warning on file openJulian Eisel
Steps to reproduce were: * Change File Browser display mode to fullscreen in Preferences * File > Save As (make sure existing .blend is selected) * File > Open The file name would still be shown in red and the + and - icons would be visible, which should only be the case for saving files, not opening. Note that this change makes all `FileSelectParams.flag` values be reset on re-opening a File Browser, which *may* in fact cause other issues. It's easy to fix those though, and I'd prefer properly resetting the flags and only keeping specific ones in that case.
2019-12-10Fix T71995: Texture Paint workspace crash with new sceneJulian Eisel
Issue likely caused by 8b31f6fb2169. With this, initializing the toolsystem (e.g. for a new workspace-scene combination) would skip the entire create->initialize routine for image/texture painting settings. Reason being that these are not allocated, unlike other paint settings. So while correctly skipping the create part, it also skipped the initialization, which was still needed. This does further changes in related code to avoid NULL pointer accesses.
2019-12-10GPencil: Invert Simplify optionsAntonio Vazquez
To follow the standard conventions, the simplify options for grease pencil are inverted now, so to disable the file, uncheck the fill option and not as before that must be checked.. Before it was confusing because the simplify was activated checking the option and this was opposite to the mesh simplify options.
2019-12-10Fix T71609: Resizing bone length to 0 gets it stuck to that sizeSybren A. Stüvel
The result of normalising the bone vector wasn't checked, so it resulted in a zero-length vector being multiplied with the desired length. Choosing an arbitrary vector prevents the bone being 'stuck' at zero length. Thanks @mano-wii for the patch.
2019-12-10CMake: fix linking Blender as a Python moduleCampbell Barton
Remove direct links to Blender binary, only link to the window manager and rely on indirect links for everything else.
2019-12-10Fix T72220: Hide Edit OverlaysJeroen Bakker
The edit overlays were drawn dispite of the global hide overlays toggle. This patch checks the global hide overlay toggle to see if it needs to draw these overlays. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6371
2019-12-10GHOST: add support for application/menu keyHarley Acheson
Support the application key on Linux & Windows.