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-09-23Geometry Nodes: Split transfer attribute nodeHans Goudey
This patch replaces the existing transfer attribute node with three nodes, "Sample Nearest Surface", "Sample Index", and "Sample Nearest". This follows the design in T100010, allowing for new nodes like UV sampling in the future. There is versioning so the new nodes replace the old ones and are relinked as necessary. The "Sample Nearest Surface" node is meant for the more complex sampling algorithms that only work on meshes and interpolate values inside of faces. The new "Sample Index" just retrieves attributes from a geometry at specific indices. It doesn't have implicit behavior like the old transfer mode, which should make it more predictable. In order to not change the behavior from existing files, the node has a has a "Clamp", which is off by default for consistency with the "Field at Index" node. The "Sample Nearest" node returns the index of the nearest element on a geometry. It can be combined with the "Sample Index" node for the same functionality as the old transfer node. This node can support curves in the future. Backwards compatibility is handled by versioning, but old versions can not understand these nodes. The warning from 680fa8a523e0 should make this explicit in 3.3 and earlier. Differential Revision: https://developer.blender.org/D15909
2022-09-23GPencil: Improve Fill Tool Extend linesAntonio Vazquez
* Improve how the extend lines collision is calculated. * Added `S` key to switch between modes. * Now extend factor does not disable visual aids (thi sis done with checkbox). * Reduce the use of linked list and now memory array is used. * Refactor Radius functions. * Fixed bug of Radius mode when object is rotated. * Cleanup code. Differential Revision: https://developer.blender.org/D16022
2022-09-23Mesh: Move edge crease out of MEdgeHans Goudey
This is very similar to D14077. There are two differences though. First is that vertex creases are already stored in a separate layer, and second is that we can now completely remove use of `Mesh.cd_flag`, since that information is now inherent to whether the layers exist. There are two functional differences here: * Operators are used to add and remove layers instead of a property. * The "crease" attribute can be created and removed by geometry nodes. The second change should make various geometry nodes slightly faster, since the "crease" attribute was always processed before. Creases are now interpolated generically in the CustomData API too, which should help maintain the values across edits better. Meshes get an `edge_creases` RNA property like the existing vertex property, to provide more efficient access to the data in Cycles. One test failure is expected, where different rounding between float the old char storage means that 5 additional points are scattered in a geometry nodes test. Differential Revision: https://developer.blender.org/D15927
2022-09-23Cleanup: avoid unnecessary access to context.space_dataCampbell Barton
2022-09-22UV: add toggle to show the grid over the imageChris Blackbourn
In UV editor, previously unable to see grid and image at same time. Maniphest Tasks: T78391 Differential Revision: https://developer.blender.org/D16038
2022-09-21Fix module search path for Python on initializationCampbell Barton
Initializing the sys.path on startup attempted to add subdirectories of {BLENDER_SYSTEM_SCRIPTS}: - ./modules/modules - ./modules/startup As the directories aren't expected to exist there is no need to add them. Also improved comments for path searching logic.
2022-09-21Fix T101138: remove console spam when hovering over toolbar in uv editorChris Blackbourn
Reviewers: Campbell Barton <ideasman42>, Ryan Inch <Imaginer> Differential Revision: https://developer.blender.org/D16015
2022-09-20Fix: Group input and output always show in node add menuMiguel Porces
In D10241, both NodeItems for NodeGroupInput and NodeGroupOutput in the were moved from their categories into the 'node_group_items' generator. As the NodeItem.poll() is called by the NodeCategory class and not by the NodeItem class, the poll functions associated with those NodeItems were never called. This should correct that. Differential Revision: https://developer.blender.org/D16013
2022-09-20Animation: Add redo panel to Dopesheet and NLARedMser
Add the Redo panel to the dopesheet & NLA editors. This also implicitly adds it to the timeline editor, since it's a kind of action editor internally. This feature is needed for changing advanced properties of animation operators, such as select grouped (see D14811). But it can also be useful for existing operators, like precise keyframe position tweaking. Changes are basically the same as in D6286 (which added the redo panel for Graph Editor). Some operators have internal properties that should be hidden. A full list can be found in T98195. These will be fixed in a follow-up patch. Reviewed By: sybren Differential Revision: https://developer.blender.org/D14960
2022-09-20Fix T101201: Missing filter from outliner headerPhilipp Oeser
This was missing in Blender File & Orphan Data view. Typo in rBb5fc8f611e39. Maniphest Tasks: T101201 Differential Revision: https://developer.blender.org/D16016
2022-09-20UV: extend custom grid sizes to set each axis separatelyChris Blackbourn
For example, allows a custom UV grid size of 4 x 12. TODO: Fix snapping with custom UV grid sizes. Manifest Tasks: T78391 Differential Revision: https://developer.blender.org/D16000
2022-09-19Nodes: Add node group assets to search menusHans Goudey
Currently node group assets are supported, but using them by dragging from the asset browser is cumbersome. This patch adds all node group assets from user asset libraries and the current file libraries to the add node search menu and the link drag search menu. Node groups added through the search will have their "options" hidden, meaning the data-block selector is displayed. This helps keep the UI clean, and the selector shouldn't be necessary anyway. To make that possible, metadata like the node tree type and its inputs and outputs has to be saved in the file. This requires re-saving the files that contain the assets with the patch applied. The node add search operator is moved from Python to C++ to ease development and allow more flexibility. It supports a tooltip that gives the description of assets. Currently the node groups are added with the asset system's existing "Append & Reuse" behavior. It's likely that linking should be possible in the future too, but for now the idea is to use the more foolproof option that doesn't create dependencies between files. Because loading assets can potentially take a long time, the search menu refreshes its items as new assets are loaded. However, changing the search field is necessary to see the update. Differential Revision: https://developer.blender.org/D15568
2022-09-19Geometry Nodes: Distribute Points in VolumeIyad Ahmed
This commit adds a node to distribute points inside of volume grids. The "Random" mode usese OpenVDB's "point scatter" implementation, and there is also a "Grid" mode for uniform distributions. Both methods operate on all of the float grids in the volume, using every voxel with a value higher than the threshold. The random method is not stable as the input volume deforms. Based on a patch by Angus Stanton (@abstanton), which was based on a patch by Kenzie (@kenziemac130). Differential Revision: https://developer.blender.org/D15375
2022-09-19PyGPU: call 'GPU_shader_bind' in 'GPUShader.uniform_' methodsGermano Cavalcante
This simplifies python code. When we call a method like shader.uniform_float("color", (1,1,1,1)), we expect the shader's uniform to be updated regardless of whether the shader is bound or not. And `batch.draw()` already calls `GPU_shader_bind` inside. Differential Revision: https://developer.blender.org/D15929
2022-09-19Cleanup: prefer 'arg' over 'params' for sphinx documentationCampbell Barton
While both are supported, 'arg' is in more common use so prefer it.
2022-09-18Geometry Nodes: New Face Set Boundaries nodeWannes Malfait
With the recent addition of the UV unwrapping node, there is a need to be able to create seams easily. This node does that by outputting a selection of the boundaries between different input face sets. In the context of UV mapping, one inputs the "patches" you want, and the node gives you the seams needed to make those patches. Differential Revision: https://developer.blender.org/D15423
2022-09-17GPencil: Move Gap Closure option to separated subpanelAntonio Vazquez
Also removed leak size
2022-09-17GPencil: Add more types of stroke extensions when fillingDave Pagurek
The motivation for this change: while working on an animation recently, I found that there are some gaps that won't close easily via stroke extension or leak size checking. In D14698, I attempted to address this by changing the algorithm of the raster-space flood fill. This patch attempts to address the same issue in vector space by adding two new cases where stroke extensions are added, as suggested by @frogstomp: # **Points of high curvature:** when the curvature at a point is high enough that it's hard to visually distinguish between it and an endpoint, add a stroke extension out along the normal (pointing in the opposite direction of the stroke's acceleration.) This addresses cases where technically the endpoint points up, but there's a sharp corner right below it that should extend to connect. # **Stroke endpoints within a radius**: when two endpoints are close together, regardless of the angle they make, connect them if they are within a radius. This addresses cases like where the two endpoints have effectively parallel tangents, so extensions won't close the gap. Reviewed By: antoniov, mendio, frogstomp Differential Revision: https://developer.blender.org/D14809
2022-09-15UV: rename "Pixel Snap Mode" to "Pixel Round Mode"Chris Blackbourn
Maniphest Tasks: T78391 Differential Revision: https://developer.blender.org/D15952
2022-09-14Fix T100977: Wrong native Ukrainian language name in UI.Bastien Montagne
2022-09-14Cleanup: remove redundant braces from assert & raiseCampbell Barton
autopep8 v1.7 added a space after assert & raise, remove the braces as they aren't needed.
2022-09-14UI: Add Mix Node to color section of add node menuCharlie Jolly
This adds back the new mix node to the Color sections of the add node menu. The add menu now contains two entries for the mix node. One under Utilites/Converter which defaults for float. One under Color which defaults to color with `Mix Color` label. This was moved as part of D13749. The issue was reported on BlenderArtists. Differential Revision: https://developer.blender.org/D15887
2022-09-13EEVEE-Next: Cryptomatte render passes.Jeroen Bakker
This change adds cryptomatte render passes to EEVEE-Next. Due to the upcoming viewport compositor we also improved cryptomatte so it will be real-time. This also allows viewing the cryptomatte passes in the viewport directly. {F13482749} A surface shader would store any active cryptomatte layer to a texture. Object hash is stored as R, Asset hash as G and Material hash as B. Hashes are only calculated when the cryptomatte layer is active to reduce any unneeded work. During film accumulation the hashes are separated and stored in a texture array that matches the cryptomatte standard. For the real-time use case sorting is skipped. For final rendering the samples are sorted and normalized. NOTE: Eventually we should also do sample normalization in the viewport in order to extract the correct mask when using the viewport compositor. Reviewed By: fclem Maniphest Tasks: T99390 Differential Revision: https://developer.blender.org/D15753
2022-09-13Update RNA to User manual mappingsAaron Carlisle
2022-09-12UI: Cleanup/Fixes of some UI messages.Bastien Montagne
2022-09-12UI: add a Custom Properties panel to the View Layer tab of properties.Alexander Gavrilov
Although view layers aren't ID, they do support custom properties, so not providing the UI to access them seems to be a simple oversight.
2022-09-10GPencil: Add new Set Start Point operator to context menuAntonio Vazquez
2022-09-10GPencil: New Set Start point operatorAntonio Vazquez
This operator allows to set the start point for any cyclic stroke. This is very handy to fit interpolation issues or use thickness modifier. Note: There is small change in this commit to fix a typo error in the name of the operator. Reviewed By: mendio, frogstomp Maniphest Tasks: T100827 Differential Revision: https://developer.blender.org/D15881
2022-09-10Cleanup: format, spellingCampbell Barton
2022-09-09Mesh: Move bevel weight out of MVert and MEdgeHans Goudey
As described in T95966, the goal is to move to a "struct of arrays" approach rather than gathering an arbitrary set of data in hard-coded structs. This has performance benefits, but also code complexity benefits (this patch removes plenty of code, though the boilerplate for the new operators outweighs that here). To mirror the internal change, the options for storing mesh bevel weights are converted into operators that add or remove the layer, like for some other layers. The most complex change is to the solidify modifier, where bevel weights had special handling. Other than that, most changes are removing clearing of the weights, boilerplate for the add/remove operators, and removing the manual transfer of bevel weights in bmesh - mesh conversion. Eventually bevel weights can become a fully generic attribute, but for now this patch aims to avoid most functional changes. Bevel weights are still written and read from the mesh in the old way, so neither forward nor backward compatibility are affected. As described in T95965, writing in the old format will be done until 4.0. Differential Revision: https://developer.blender.org/D14077
2022-09-09Outliner: Hide library overrdies context menu when no IDs are selectedJulian Eisel
The library overrides context menu operators only make sense when at least one ID is selected in the Outliner. So don't show them unless that's the case. This also means the menu items don't show up anymore for things like RNA properties, or the overridden properties in the Library Overrides Properties view. Also see 7eda9d8dda59 and the previous commit.
2022-09-09Outliner: Don't show asset context menu when no IDs are selectedJulian Eisel
The asset context menu operators only make sense when at least one ID is selected in the Outliner. So don't show them unless that's the case. This also means the menu items don't show up anymore for things like RNA properties, or the overridden properties in the Library Overrides Properties view. Also see 7eda9d8dda59.
2022-09-08Outliner: Hide ID type filter for library overridesJulian Eisel
a) There were two filter icons next to each other in the header which isn't exactly professional, b) the filter was redundant since IDs are now grouped under an ID type element ("Objects", "Collection", ...) anyway. In the hierarchies view it was already hidden (because the whole point of it is to show relationships between IDs, you wouldn't want to have any parts of the hierarchy hidden).
2022-09-08Outliner: Hide search options for library overrides hierarchies viewJulian Eisel
Searching isn't possible in the hierarchies view anymore, so the options for it shouldn't be displayed either. Followup to 21b92a5f31a4, forgot to remove these.
2022-09-08Outliner: Hide search button for library overrides hierarchies viewJulian Eisel
c9a996790307 added a workaround for performance issues in heavy production scenes in the library overrides hierarchies view, reducing the amounts of elements to be built. Searching for elements would still have to build the entire tree, so Blender would essentially freeze when searching in mentioned heavy scenes. Removing the search functionality works around this issue for now.
2022-09-07Cleanup: de-duplicate bounding box center calculationCampbell Barton
2022-09-07Cleanup: add sections, use float literalsCampbell Barton
2022-09-07Cleanup: formatCampbell Barton
2022-09-07UV: add new operator, uvcalc_align_rotationChris Blackbourn
Adds a new operator to automatically rotate UV Islands into alignment. Modes: * Auto (All edges) * Geometry (V direction will point in geometry direction) [1] * Edge (Rotate until selected edge is in V direction) Also adds uv_sync_selection support to UV Randomize Transform. Resolves: T78399 Differential Revision: https://developer.blender.org/D15820 [1] Listed as "World" in Task description.
2022-09-05Cleanup: make formatBrecht Van Lommel
2022-09-05I18n: extract keymap preferencesDamien Picard
The per-keymap user preferences messages were not extracted. This goes through the keymap preferences RNA, as well as Python files for UI. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15871
2022-09-05I18n: translate untitled file namesDamien Picard
When saving, the default file name is "untitled" regardless of selected language. This can be translated, like many graphical applications do. This applies to: - blend file - alembic file - collada file - obj file - usd file - rendered image - grease pencil export - subtitles export - other Python exports through ExportHelper Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15868
2022-09-05GPencil: Move Outline operator in menuAntonio Vazquez
Reviewed by: Matias Mendiola
2022-09-05GPencil: Move Scale Thickness option in menuAntonio Vazquez
The option is more logic in the Normalize group Reviewed by: Matias Mendiola
2022-09-02BLF: Replacement of Hebrew FontHarley Acheson
Replacement of our Hebrew font, which has bad variable weight default. See D15846 for more details. Differential Revision: https://developer.blender.org/D15846 Reviewed by Brecht Van Lommel
2022-09-02DRWManager: New implementation.Clément Foucault
This is a new implementation of the draw manager using modern rendering practices and GPU driven culling. This only ports features that are not considered deprecated or to be removed. The old DRW API is kept working along side this new one, and does not interfeer with it. However this needed some more hacking inside the draw_view_lib.glsl. At least the create info are well separated. The reviewer might start by looking at `draw_pass_test.cc` to see the API in usage. Important files are `draw_pass.hh`, `draw_command.hh`, `draw_command_shared.hh`. In a nutshell (for a developper used to old DRW API): - `DRWShadingGroups` are replaced by `Pass<T>::Sub`. - Contrary to DRWShadingGroups, all commands recorded inside a pass or sub-pass (even binds / push_constant / uniforms) will be executed in order. - All memory is managed per object (except for Sub-Pass which are managed by their parent pass) and not from draw manager pools. So passes "can" potentially be recorded once and submitted multiple time (but this is not really encouraged for now). The only implicit link is between resource lifetime and `ResourceHandles` - Sub passes can be any level deep. - IMPORTANT: All state propagate from sub pass to subpass. There is no state stack concept anymore. Ensure the correct render state is set before drawing anything using `Pass::state_set()`. - The drawcalls now needs a `ResourceHandle` instead of an `Object *`. This is to remove any implicit dependency between `Pass` and `Manager`. This was a huge problem in old implementation since the manager did not know what to pull from the object. Now it is explicitly requested by the engine. - The pases need to be submitted to a `draw::Manager` instance which can be retrieved using `DRW_manager_get()` (for now). Internally: - All object data are stored in contiguous storage buffers. Removing a lot of complexity in the pass submission. - Draw calls are sorted and visibility tested on GPU. Making more modern culling and better instancing usage possible in the future. - Unit Tests have been added for regression testing and avoid most API breakage. - `draw::View` now contains culling data for all objects in the scene allowing caching for multiple views. - Bounding box and sphere final setup is moved to GPU. - Some global resources locations have been hardcoded to reduce complexity. What is missing: - ~~Workaround for lack of gl_BaseInstanceARB.~~ Done - ~~Object Uniform Attributes.~~ Done (Not in this patch) - Workaround for hardware supporting a maximum of 8 SSBO. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15817
2022-09-02PyGPU: only use 3D shaders and rename string enumsGermano Cavalcante
Since rB6269d66da, creating formats no longer depends solely on the shader, but now depends on the dimensions used to fill the VBOs. This allows 3D shaders to work flawlessly when assigned dimensions are 2D. So there's no real benefit to us having shaders that are limited to 2D use anymore. This limitation makes it difficult to implement other builtin shaders as they indirectly require a 2D version. So this commit removes the 2D versions of the builtin sahders used in Python , renames the string enums but keeps the old enums working for backward compatibility. (This brings parts of the changes reviewed in D15836).
2022-09-01PyGPU: GPUShader: implementation of 'attrs_info_get' methodGermano Cavalcante
With the new `attrs_info_get` method, we can get information about the attributes used in a `GPUShader` and thus have more freedom in the automatic creation of `GPUVertFormat`s Reviewed By: fclem, campbellbarton Differential Revision: https://developer.blender.org/D15764
2022-08-31Fix submodule refsJoseph Eagar
2022-08-31Merge branch 'blender-v3.3-release'Joseph Eagar