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-10-24Merge branch 'master' into bevelv2Howard Trickey
2022-10-22Video rendering: FFMpeg AV1 codec encoding supportStephen Seo
Previously, the Blender video renderer did not have support for encoding video to AV1 (not to be confused with the container AVI). The proposed solution is to leverage the existing FFMpeg renderer to encode to AV1. Note that avcodec_find_encoder(AV_CODEC_ID_AV1) usually returns "libaom-av1" which is the "reference implementation" for AV1 encoding (the default for FFMpeg, and is slow). "libsvtav1" is faster and preferred so there is extra handling when fetching the AV1 codec for encoding such that "libsvtav1" is used when possible. This commit should only affect the options available for video rendering, which includes the additional AV1 codec to choose from, and setting "-crf". Also note that the current release of FFMpeg for ArchLinux does not support "-crf" for "libsvtav1", but the equivalent option "-qp" is supported and used as a fallback when "libsvtav1" is used (as mentioned here: https://trac.ffmpeg.org/wiki/Encode/AV1#SVT-AV1 ). (Actually, both "-crf" and "-qp" is specified with the same value in the code. When a release of FFMpeg obtains support for "-crf" for "libsvtav1" is released, the code shouldn't be needed to change.) The usage of the AV1 codec should be very similar to the usage of the H264 codec, but is limited to the "mp4" and "mkv" containers. This patch pertains to the "VFX & Video" module, as its main purpose is to supplement the Video Sequencer tool with the additional AV1 codec for encoded video output. Differential Revision: https://developer.blender.org/D14920 Reviewed By: sergey , ISS, zeddb
2022-10-21Fix T101244: Empty point list in shader batch creation cause errorGermano Cavalcante
Allow empty VBOs in Python GPUBatch creation.
2022-10-21SystemInfo: Add active GPU backend.Jeroen Bakker
For debugging it is useful to known the active GPU backend. Although it could be determined from looking at the extensions, this is easier to understand when not activly working in this area.
2022-10-19Curves: make the "surface_uv_map" a searchable dropdownPhilipp Oeser
The users had to type in a name here, but we can also make it a dropdown choice with existing UV Maps for convenience: - dont have to remember a name or copy paste obviously - shows in red if it was removed / invalid Came up in T101028 Maniphest Tasks: T101028 Differential Revision: https://developer.blender.org/D15956
2022-10-19Curves sculptmode: fix missing mode and tool in Brush SpecialsPhilipp Oeser
For consistency with other brush based (paint) systems we should add these entries in the brushes context menu. For this, expose the brushes `ob_mode` to RNA and show this (along with the tool choice) to the appropriate menus. Differential Revision: https://developer.blender.org/D16287
2022-10-19Cleanup: remove unused 'VIEW3D_MT_brush_context_menu_paint_modes'Philipp Oeser
This was added in rB4c9fe657458f, however that new code never used this menu (but the existing `VIEW3D_MT_brush_paint_modes` instead). Differential Revision: https://developer.blender.org/D16285
2022-10-17Sculpt: Auto-masking UI improvementsPablo Vazquez
Add auto-masking as a popover in the header while in Sculpt mode, following the design in T101593. These properties were present in the Options panel (and popover), they have been removed from there. Moreover, this commit makes the auto-masking section in Brush settings match the new popover. In the future this popover can be used for other modes that support auto-masking such as Grease Pencil. See D16145 for details and screenshots. Reviewed By: JulienKaspar Differential Revision: https://developer.blender.org/D16145
2022-10-13Nodes: Duplicate Linked operator + User Preference option for Node TreeDalai Felinto
This operator (Alt + D) allows users to explicitly create a linked copy of a group node (same current behaviour for the Duplicate operator). The duplicate operator (Shift + D) now takes the new User Preference duplicate data option for Node Tree into account. It is by default disabled, leading to no functional change for users. Although we could make in the future make this option "on" by default, to make it consistent with the rest of Blender we do not at the time. Differential Revision: https://developer.blender.org/D16210
2022-10-13Fix T100699: Older preferences from 2.93 wont loadCampbell Barton
Even though this was intentionally removed in [0], loading data from older startup files is supported. So show them when available. [0]: 45439dfe4c05eabaa83d0c1b75463966b5ba896d
2022-10-12Cleanup: use function style casts for C++, format & spellingCampbell Barton
2022-10-12UV: add grid shape source to the uv editor, and add new "pixel" optionChris Blackbourn
This change is part of a wider set of changes to implement Grid and Pixel snapping in the UV Editor. This particular change adds a new third option, `pixel grid`, to the previous grid options, `dynamic grid` and `fixed grid`. Maniphest Tasks : T78391 Differential Revision: https://developer.blender.org/D16197
2022-10-11Sculpt: Fix T101694: Change operator for unhide face setsPratik Borhade
In 22c3db72ca2f `SHOW_ALL` has been removed from `face_set_change_visibility`. Instead `SCULPT_OT_reveal_all` is now used for unhiding all face sets. Reviewed By: Joseph Eagar & Julian Kaspar Differential Revision: https://developer.blender.org/D16199 Ref D16199
2022-10-10I18n: disambiguate or extract a few messagesDamien Picard
Disambiguate: - "Active Only" (GPencil copy material and layer, add NLA modifier) - "Clip" (movie clip, image extension mode) - "Emission" (particles) - "New" (scene) - "Tracking" (movie clip) Extract: - "ViewLayer", the default view layer name when creating new scene Ref T43295 Reviewed By: mont29 Maniphest Tasks: T43295 Differential Revision: https://developer.blender.org/D16196
2022-10-10Fix typos & co in UI messages.Bastien Montagne
2022-10-10UI: show the windowing environment in the "About" splashCampbell Barton
Show the windowing environment on non MS-Windows/Apple systems, since X11/WAYLAND are selected startup there was no convenient way for users to know which back-end was being used. Include the windowing environment in the About splash & system-info.txt since it will be useful for handling bug reports. This commit adds a private API call not intended for general use as I would like to be able to remove this later and it's only needed in the specific case of testing if Blender is using WAYLAND or X11 (which maybe be used via XWayland). Python scripts can already inspect the system to check which windowing environment used, the API call is mainly useful for troubleshooting.
2022-10-09Merge branch 'master' into bevelv2Howard Trickey
2022-10-07Preferences: support loading factory settings only for app-templatesCampbell Barton
When app-templates are enabled, support resetting defaults only for the app-templates. Without this, it's not possible to reset app-template preferences without also resetting the default preferences for all settings the app-template does not override (used when there is no application template loaded, and other app-templates). These additional menu items are shown in menus when an app-template has been loaded. Address issue raised by T96427. Reviewed By: mont29, brecht Ref D16150
2022-10-06UI: New modifier Icons Envelope and OutlineAntonio Vazquez
Task: T101155 Designed by: Matias Mendiola Reviewed by : Pablo Vazquez
2022-10-06Fix addons submodule refSebastian Parborg
Was downgraded to a version from 2019 by mistake
2022-10-06I18n: ignore user-installed add-ons when extracting bl_infoDamien Picard
Since add-on info was made translatable in D15747, user-installed add-ons could also get their info extracted. This led to having different messages depending on the environment of the Blender doing the I18n messages update. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15963
2022-10-06UI Translations: Add context to 'New' menu entries for files.Bastien Montagne
Aftermath of rBf5d67f3fdf2d and rBa096248d1253, from D16159 (did not apply direclty).
2022-10-06Fix exception in bpy_extras.object_utils.object_data_add(..)Campbell Barton
Adding object-data that doesn't support edit-mode would raise an exception when the "Enter Edit Mode" preferences was enabled. Other changes: - Don't attempt to enter edit-mode for library-data. - Support entering edit-mode for grease-pencil objects. Alternate fix for the issue raised by D15999.
2022-10-06Fix: File context menu broken after recent commitCampbell Barton
layout.menu does not have a text_context argument. f5d67f3fdf2ddec073898bc60feeb2440f2c1b30
2022-10-05Fix: File menu broken after recent commitHans Goudey
layout.menu does not have a text_context argument. f5d67f3fdf2ddec073898bc60feeb2440f2c1b30
2022-10-05DRW: Split ViewProjectionMatrix in order to increase precisionClément Foucault
This also removes the need to compute the persmat and saves some memory from the `ViewInfos` struct. This is needed to allow multiview support. Initial testing found no major performance regression during vertex heavy workload. Test file: {F13610017} Results: | Platform | Master | Split Matrix| | Linux + Mesa + AMD W6600 | 48 fps | 47 fps | | Macbook Pro M1 | 50 fps | 51 fps | | Linux + NVidia 1080Ti | 51 fps | 52 fps | | Linux + Radeon Vega 64 | 25.6 fps | 26.7 fps | Increased precision when far from origin: {F13610024} {F13610025} Reviewed By: jbakker Differential Revision: https://developer.blender.org/D16125
2022-10-05Revert "Geometry Nodes: Add index input to Edge Vertices node"Hans Goudey
Unfortunately this commit changed behavior in a fundamental way that can't be addressed without larger changes. Previously the position outputs were evaluated on the edge domain and then interpolated to the context domain, which could be useful for some rudimentary mesh smoothing. After the commit they were just evaluated at the specified index, which looks practically random when evaluated on a different domain. We may need a new node that doesn't have the implicit behavior in the future. This reverts commit 4ddc5a936e07129aaf94ed7d188b8f5f5ea14085.
2022-10-05Fix T101610: UV Sphere missing from geometry nodes menuHans Goudey
Caused by 837144b4577f161baf1625f8a5478c83a088ea0f
2022-10-05I18n: improve unit extraction regexDamien Picard
There were two issues with the unit extraction regex: - it didn't take the inches, feet, arcminutes and arcseconds symbols into accounts, which aren’t letters but ' and "; - some units have more than one B_UNIT_DEF_* flag. This allows extracting feet, inches, square millimeters, cubic millimeters, arcminutes, and arcseconds. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D16144
2022-10-05I18n: disambiguate a few messagesDamien Picard
- Active Track (NLA vs movie clip) - New (file) - Object Index (loop cut) - Object Index (render pass) - Proxy Storage (sequence) - Rim (Solidify modifier) - Roughness (particle children) - Spaces (text whitespace) - Out (sequencer wipe transition) Also make new asset tag name translatable. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D16067
2022-10-05Fix T101334: Paint Texture Slots appear greyed outPhilipp Oeser
To the user, this looks like a disfunctional thing (usually greying out is used for props having no effect). The greying out is caused by {rB8b7cd1ed2a17e40661101eea4adae99e8e3d02e9}. Above commit disabled the direct renaming of images in the `TEXTURE_UL_texpaintslots` UIList (and instead displays the texture slot directly as a prop -- which has its `PROP_EDITABLE` flag cleared) (from the commit message): > A limitation of this patch is that is isn't possible anymore to rename images directly from > the selection panel. This is currently allowed in master. But as CustomDataLayers > aren't ID fields and not owned by the material supporting this wouldn't be easy. To work around the UI confusion (but still keep the non-editable nature of the property), now just display this as a label. Maniphest Tasks: T101334 Differential Revision: https://developer.blender.org/D16138
2022-10-04Sculpt: Visibility bugfixesJoseph Eagar
* Unhide all is no longer part of face_set_change_visibility. * Implemented a few visibility API methods for PBVH_BMESH * Fixed bug with unhide all not freeing all multires grid_hidden bitmaps.
2022-10-04Geometry Nodes: Add index input to Edge Vertices nodeHans Goudey
Previously the edge index was always determined by the field context, and the node didn't work when the context was in any other domain. Adding an index input makes it work much more nicely with the other topology nodes. It's now in the topology submenu too. I also reimplemented the edge positions input to use the field at index node internally. That will probably make it slower for now, but we need to optimize that to do nothing in some special cases anyway. Differential Revision: https://developer.blender.org/D16105
2022-10-04Geometry Nodes: Rename Control Point Neighbors NodeHans Goudey
Rename the node to "Offset Point in Curve" Since this was committed, more mesh and curve topology nodes have been committed with a different naming scheme (482d431bb6735e82069). Change the name of this node to match "Offset Corner in Face". Because the node was only added recently, it's a full rename, including the ID, so forward compatibility is broken.
2022-10-03Geometry Nodes: Set Curve NormalJohnny Matthews
This node allows for curves to have their evaluated normal mode changed between MINIMUM_TWIST and Z_UP. A selection input allows for choosing which spline in the curves object will be affected. Differential Revision: D16118
2022-10-03Geometry Nodes: new Sample UV Surface nodeJacques Lucke
This node allows sampling an attribute on a mesh surface based on a UV coordinate. Internally, this has to do a "reverse uv lookup", i.e. the node has to find the polygon that corresponds to the uv coordinate. Therefore, the uv map of the mesh should not have overlapping faces. Differential Revision: https://developer.blender.org/D15440
2022-10-01Merge branch 'master' into bevelv2Howard Trickey
Had to fix a conflict with the way the bevel node is added to the menu, and deal with some deprecated MVert and MEdge data members.
2022-09-30Cleanup: formatPhilipp Oeser
2022-09-29Fix: Order of node mixins in custom nodes python templateHans Goudey
See T101259. This order makes the poll not work, even when called from Python. The bundled template shouldn't be a source of errors for node addons.
2022-09-29GPencil: Remove Fill `use_collide_only` optionAntonio Vazquez
After a lot of testing, this option is not required and now this is managed by stroke_collsion. If the stroke_collision is enabled, only collide strokes are used.
2022-09-29UI: Nodes re-organize the nodes in alphabetical orderDalai Felinto
This was a regression introduced after the 3.3 release. This fix T101452
2022-09-29Fix bpy.utils.script_paths() ignoring environment variablesCampbell Barton
When check_all=True was passed, - `os.path.join(bpy.utils.resource_path('USER'), "scripts")` was used instead of BLENDER_USER_SCRIPTS. - `os.path.join(bpy.utils.resource_path('SYSTEM'), "scripts")` was used instead of BLENDER_SYSTEM_SCRIPTS. Other minor changes: - Simplify collecting paths. - Don't add user-directories multiple times when check_all=True. - Normalize paths before before checking duplicates to reduce the change the same path is added multiple times. Found these issues while investigating T101389.
2022-09-29Sculpt: Normal-based automasking modesJoseph Eagar
Two new normal-based automasking modes. The first mode, "brush", compares vertex normals with the initial normal at the beginning of the brush stroke. The second, "view", compares vertex normals with the view normal. If "occlusion" is on then rays will be shot from each vertex to test if it is occluded by other geometry (note: this can be very slow).\ Only geometry inside the sculpt mesh is considered. Each mode has an associated angular limit and a falloff. Reviewed by: Julien Kaspar and Jeroen Bakker Differential Revision: https://developer.blender.org/D15297 Ref D15297
2022-09-29Cleanup: formatCampbell Barton
2022-09-29Sculpt: New Cavity Automasking ModeJoseph Eagar
Add new cavity automasking mode based on local mesh curvature. Cavity masking is a great way to quickly add detail in crevices and the like. It's meant to be used with the Paint brush in color attribute mode. It does work with other brushes but the results can be unpredictable. {F13131497} The old "dirty mask" operator has been replace with a new "mask from cavity" operator that shares the same code with cavity automasking. Differences from the sculpt-dev implementation: * It uses the word "cavity." When I first implemented this I wasn't aware this feature existed in other software (and other paint modes in Blender), and for reasons that escape me today I initially decided to call it a concave or concavity mask. * The cavity factor works a bit differently. It's no longer non-linear and functions as a simple scale around 0.5f. * Supports custom curves. * Supports blurring. Reviewed By: Julian Kaspar, Jeroen Bakker and Campbell Barton Differential Revision: https://developer.blender.org/D15122 Ref D15122
2022-09-28Geometry Nodes: Curve and mesh topology access nodesHans Goudey
This patch contains an initial set of nodes to access basic mesh topology information, as explored in T100020. The nodes allow six direct topology mappings for meshes: - **Corner -> Face** The face a corner is in, the index in the face - **Vertex -> Edge** Choose an edge attached to the vertex - **Vertex -> Corner** Choose a corner attached to the vertex - **Corner -> Edge** The next and previous edge at each face corner - **Corner -> Vertex** The vertex associated with a corner - **Corner -> Corner** Offset a corner index within a face And two new topology mappings for curves: - **Curve -> Points** Choose a point within a curve - **Point -> Curve** The curve a point is in, the index in the curve The idea is that some of the 16 possible mesh mappings are more important, and that this is a useful set of nodes to start exploring this area. For mappings with an arbitrary number of connections, we must sort them and use an index to choose a single element, because geometry nodes does not support list fields. Note that the sort index has repeating behavior as it goes over the "Total" number of connections, and negative sort indices choose from the end. Currently which of the "start" elements is used is determined by the field context, so the "Field at Index" and "Interpolate Domain" nodes will be quite important. Also, currently the "Sort Index" inputs are clamped to the number of connections. One important feature that isn't implemented here is using the winding order for the output elements. This can be a separate mode for some of these nodes. It will be optional because of the performance impact. There are several todos for separate commits after this: - Rename "Control Point Neighbors" to be consistent with this naming - Version away the "Vertex Neighbors" node which is fully redundant now - Implement a special case for when no weights are used for performance - De-duplicating some of the sorting logic between the nodes - Improve performance and memory use of topology mappings - Look into caching some of the mappings on meshes Differential Revision: https://developer.blender.org/D16029
2022-09-28Geometry Nodes: viewport previewJacques Lucke
This adds support for showing geometry passed to the Viewer in the 3d viewport (instead of just in the spreadsheet). The "viewer geometry" bypasses the group output. So it is not necessary to change the final output of the node group to be able to see the intermediate geometry. **Activation and deactivation of a viewer node** * A viewer node is activated by clicking on it. * Ctrl+shift+click on any node/socket connects it to the viewer and makes it active. * Ctrl+shift+click in empty space deactivates the active viewer. * When the active viewer is not visible anymore (e.g. another object is selected, or the current node group is exit), it is deactivated. * Clicking on the icon in the header of the Viewer node toggles whether its active or not. **Pinning** * The spreadsheet still allows pinning the active viewer as before. When pinned, the spreadsheet still references the viewer node even when it becomes inactive. * The viewport does not support pinning at the moment. It always shows the active viewer. **Attribute** * When a field is linked to the second input of the viewer node it is displayed as an overlay in the viewport. * When possible the correct domain for the attribute is determined automatically. This does not work in all cases. It falls back to the face corner domain on meshes and the point domain on curves. When necessary, the domain can be picked manually. * The spreadsheet now only shows the "Viewer" column for the domain that is selected in the Viewer node. * Instance attributes are visualized as a constant color per instance. **Viewport Options** * The attribute overlay opacity can be controlled with the "Viewer Node" setting in the overlays popover. * A viewport can be configured not to show intermediate viewer-geometry by disabling the "Viewer Node" option in the "View" menu. **Implementation Details** * The "spreadsheet context path" was generalized to a "viewer path" that is used in more places now. * The viewer node itself determines the attribute domain, evaluates the field and stores the result in a `.viewer` attribute. * A new "viewer attribute' overlay displays the data from the `.viewer` attribute. * The ground truth for the active viewer node is stored in the workspace now. Node editors, spreadsheets and viewports retrieve the active viewer from there unless they are pinned. * The depsgraph object iterator has a new "viewer path" setting. When set, the viewed geometry of the corresponding object is part of the iterator instead of the final evaluated geometry. * To support the instance attribute overlay `DupliObject` was extended to contain the information necessary for drawing the overlay. * The ctrl+shift+click operator has been refactored so that it can make existing links to viewers active again. * The auto-domain-detection in the Viewer node works by checking the "preferred domain" for every field input. If there is not exactly one preferred domain, the fallback is used. Known limitations: * Loose edges of meshes don't have the attribute overlay. This could be added separately if necessary. * Some attributes are hard to visualize as a color directly. For example, the values might have to be normalized or some should be drawn as arrays. For now, we encourage users to build node groups that generate appropriate viewer-geometry. We might include some of that functionality in future versions. Support for displaying attribute values as text in the viewport is planned as well. * There seems to be an issue with the attribute overlay for pointclouds on nvidia gpus, to be investigated. Differential Revision: https://developer.blender.org/D15954
2022-09-28GPencil: Fill Tool - Check if extensions collide with real strokesAntonio Vazquez
This commit is an improvement in the previous fill tool changes in order to improve how the extended strokes are managed. * Now, the algorithm checks if the extend cross a standard stroke, not only extend strokes. * Option to enable or disable the stroke cross checking because this can be slow in very complex scenes. * Added `D` key to toggle stroke cross option. * Option to use only collide strokes to be used as fill limit. If the option to use only collide strokes is enabled, the open extensions are in different color. * Status text now shows mode and the actual extend factor. This commits also contains a refactor of the loops to use arrays as much as possible. Reviewed By: mendio, pepeland Differential Revision: https://developer.blender.org/D16052
2022-09-28Bump submodule versionsSebastian Parborg
2022-09-27Fix T101398: Transfer Attribute node still defined in menuHans Goudey
Removing this item was missed in 837144b4577f161baf1625.