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-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-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-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-08-31GPencil: Apply Brush Size to Outline thickness while drawingAntonio Vazquez
The new factor allows to apply the current brush size to the external stroke perimeter conversion done in draw mode.
2022-08-31Mesh: Move material indices to a generic attributeHans Goudey
This patch moves material indices from the mesh `MPoly` struct to a generic integer attribute. The builtin material index was already exposed in geometry nodes, but this makes it a "proper" attribute accessible with Python and visible in the "Attributes" panel. The goals of the refactor are code simplification and memory and performance improvements, mainly because the attribute doesn't have to be stored and processed if there are no materials. However, until 4.0, material indices will still be read and written in the old format, meaning there may be a temporary increase in memory usage. Further notes: * Completely removing the `MPoly.mat_nr` after 4.0 may require changes to DNA or introducing a new `MPoly` type. * Geometry nodes regression tests didn't look at material indices, so the change reveals a bug in the realize instances node that I fixed. * Access to material indices from the RNA `MeshPolygon` type is slower with this patch. The `material_index` attribute can be used instead. * Cycles is changed to read from the attribute instead. * BMesh isn't changed in this patch. Theoretically it could be though, to save 2 bytes per face when less than two materials are used. * Eventually we could use a 16 bit integer attribute type instead. Ref T95967 Differential Revision: https://developer.blender.org/D15675
2022-08-30Merge branch 'blender-v3.3-release'Hans Goudey
2022-08-30Fix: Alphabetical order in duplicate data preferences panelHans Goudey
2022-08-30Cleanup: formatCampbell Barton
2022-08-29I18n: disambiguate and make a few more strings translatableDamien Picard
Those strings were at least partly disambiguated: - Area - Zone - Measurement - Ease - BBone Ease In / Out - Back - Camera BG image depth - GP interpolate sequence - Edge Crease - Theme - Jitter - Brush - GPencil - Lens distorsion compositing node - Cineon color management - Black - Gamma - White Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15791
2022-08-29I18n: make add-ons' info translatableDamien Picard
The info provided by add-ons is very valuable to users, yet it wasn’t translatable yet. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15747
2022-08-29GPencil: New conversion to outline in draw modeAntonio Vazquez
This new option converts the stroke to outline perimeter as soon as is drawn. If no alternative material is set, the actual material is used. The algorithm is similar to the new operator in D15664 Reviewed By: pepeland Differential Revision: https://developer.blender.org/D15738
2022-08-25Fix T78406: create uv randomize islands operatorChris Blackbourn
Implement a new operator to randomize the scale, rotation and offset of selected UV islands.
2022-08-23Merge branch 'blender-v3.3-release'Richard Antalik
2022-08-23Cleanup: formatCampbell Barton
2022-08-22Merge branch 'blender-v3.3-release'Bastien Montagne
Conflicts: release/scripts/startup/bl_ui/space_userpref.py
2022-08-22I18n: Fix lighting preferences error messagesDamien Picard
While the current situation sort of works, a proper translation cannot be achieved in every language. Separate messages for each lighting type.
2022-08-22I18n: systematically tag all messages in `RNA_ENUM_ITEM_HEADING`.Bastien Montagne
Add missing labels, and also add tooltips. Unfortunately there is no way currently to extract two messages from a single 'function' call, so unless those type of macros become very widely used, would keep it as manual tagging. Also disambiguate `case` in text context, pretty sure English is one of the very rare languages to use this word for character case too.
2022-08-22I18n: disambiguate a few translationsDamien Picard
- Keying (keyframe insertion) - Roughness (particle children) - New image, collection, text (in menus) - Parents (particles) - Wrap (text) - Light (add menu) - Empty (volume add menu) - Empty (empty add menu) - Cycles (f-curve modifier) - Drag (workspace tool type) - Power (light intensity) - Power (math nodes) This last change also moves all math operations in nodes to the ID_nodetree context. It's needed only for some operations, but we can't be more granular here. Also... - Fix context extraction for interpolation mode headers in F-Curves and GPencil interpolation operator - Enable new translation: "Slot %d" in image editor - Fix an English message in the node editor: "Replace the input image's alpha channels by..." -> channel Ref. T43295 Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15694
2022-08-18GPencil: New operator to convert strokes to perimeter.Antonio Vazquez
This operator converts any stroke of gpencil with a center line into a stroke with the perimeter. It's possible to assign the active material, keep current or create a new material for all perimeters. The conversion is only done for strokes with a material using `Stroke`. Only `Fill` strokes are not converted. Known issues: As the perimter has not boolean implementation, some perimeters can be overlaped. This could be solved in the future when a new 2D boolean library will be developed. Reviewed By: mendio, pepeland, frogstomp Differential Revision: https://developer.blender.org/D15664
2022-08-18Merge branch 'blender-v3.3-release'Luca Rood
2022-08-18Fix T100423: Addon's custom context menu entries get overridden by other addonsLuca Rood
This introduces a new `UI_MT_button_context_menu` class which is registered at startup. Addons can append/prepend draw functions to this class, in order to add their custom context menu entries. The new class replaces the old `WM_MT_button_context` class, thus requiring a small change in addons using this feature. This is done because addons were previously required to register the class themselves, which caused addons to override each other's context menu entries. Now the class registration is handled by Blender, and addons need only append their draw functions. The new class name ensures that addons using the old method don't override menu entries made using the new class. Menu entries added with the legacy `WM_MT_button_context` class are still drawn for backwards compatibility, but this class must not be used going forward, as any addon using it still runs the risk of having its menu entries overridden, and support for the legacy class is subject to removal in a future version. Reviewed By: campbellbarton Maniphest Tasks: T100423 Differential Revision: https://developer.blender.org/D15702
2022-08-17UI: Fix inconsistency use of uppercase/capitalizationPablo Vazquez
Since VBO stands for vertex buffer object it should always be uppercase. "Vertex" in "vertex buffer object" should only be capitalized at the beginning of a sentence.
2022-08-17UI: Avoid the word "Use" in checkbox labelsPablo Vazquez
As per the writing styles guidelines. https://wiki.blender.org/wiki/Human_Interface_Guidelines/Writing_Style
2022-08-17Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-17LibOverride: Remove the 'make all editable' user preferences.Bastien Montagne
This behavior is now implicitely controlled by the 'Make' operations, based either on context or selected items.
2022-08-16UI: Add View pie to File BrowserFynn Grotehans
Adds a pie menu to the File Browser for convenient switching between vertical list, horizontal list and thumbnail view. Uses the same shortcut as other View pie menus (`ACCENT_GRAVE`). {F12811673} Reviewed By: #user_interface, pablovazquez, Severin Differential Revision: https://developer.blender.org/D13874
2022-08-16Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-16LibOverride: Refactor of menu entries in the View3D.Bastien Montagne
Move override creation into their own menu, add entries for reset and clear operations.
2022-08-16Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-16LibOverride: Tweaks to new menus in Outliner.Bastien Montagne
Also add new outliner liboverride operators mapping to the manual, though this is useless currently as this feature is not working in many part of the UI, including the Outliner contextual menu.
2022-08-15Merge branch 'blender-v3.3-release'Brecht Van Lommel
2022-08-15Cleanup: make formatBrecht Van Lommel
2022-08-14EEVEE-Next: Light: New light moduleClément Foucault
Compared to the previous implementation this has a limit of 65536 lights per scene. Lights exceeding this limit will be ignored. This also introduce fine grained GPU light culling, making rendering many lights in a scene more efficient as long they don't overlap much. Compatible light panels have been unhidden. Note: This commit does not include surface evaluation, only light culling.
2022-08-12Merge branch 'blender-v3.3-release'Bastien Montagne
Conflicts: source/blender/editors/space_outliner/outliner_tools.cc
2022-08-12LibOverride: Rework Outliner contextual menu.Bastien Montagne
Follow-up to design discussions here at the studio, add liboverride operations into their own sub-menu, with three main entries: - Create: Create, or enable for user editing, override hierarchies. - Reset: Keep overrides data, but reset all local changes to the reference linked data values. - Clear: like reset, but also turn editable overrides back to system overrides (aka non user editable). Those three options can all operate either on the selected items, their content only, or both. Advanced operations are moved into a "Troubleshoot Hierarchy" sub-menu, where one can resync, resync enforced, and fully delete library overrides. Those operations always affect a whole override hierarchy, regardless of which items are selected or not.
2022-08-12Merge branch 'blender-v3.3-release'Campbell Barton
2022-08-12Fix T96885: Drag Fallback on Tweak is using Move insteadCampbell Barton
Since [0] (fix for T95591), the tweak tools fallback action used tweak instead of press. This was enabled so tools such as "Measure" & "Add Cube" could use fallback tools (otherwise is wasn't possible to add a new ruler without also selecting for e.g.), however this is of limited use since both tools support dragging anywhere to activate, making them less useful with other selection tools beside tweak (box/lasso for e.g.). Resolve by disabling the fallback option for tools where using the tweak tool to select is undesirable. Selection by clicking with "Measure" & "Add Cube" is still supported as this is also set in the 3D view's key-map. [0]: 0e51defcf42e1cb231d36da9ecc2cc0fbe6ae505
2022-08-12Cleanup: group translation importsCampbell Barton
2022-08-12Cleanup: remove unnecessary icon assignmentCampbell Barton
2022-08-11Cleanup: doxy parameters, use static set instead of tupleCampbell Barton
2022-08-10Realtime Compositor: Add evaluator and engineOmar Emara
This patch adds the core realtime compositor evaluator as well as a compositor draw engine powered by the evaluator that operates in the viewport. The realtime compositor is a new GPU accelerated compositor that will be used to power the viewport compositor imminently as well as the existing compositor in the future. This patch only adds the evaluator and engine as an experimental feature, the implementation of the nodes themselves will be committed separately. See T99210. Differential Revision: https://developer.blender.org/D15206 Reviewed By: Clement Foucault
2022-08-10Merge branch 'blender-v3.3-release'Campbell Barton
2022-08-10Fix T99963: Fallback actions are used in RCS on left clickCampbell Barton
Regression in [0]. Disable fallback tools for the 3D cursor so other shortcuts are available such as lasso-select. [0]: b0847eff2a29b0f2ba3263afc3f367011703df84
2022-08-09I18n: make more parts of the UI translatableDamien Picard
- "Name collisions" label in mesh properties - "Threshold" labels in Vertex Weight Edit modifier - "Particle System" label in Particle Instance modifier - Slot number in the Shader Editor - Status bar keymap items during modal operations: add TIP_() macro to status bar interface template - On dumping messages, sort preset files so their messages are stable between runs Ref. T43295 Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15607
2022-08-09I18n: make more parts of the UI translatableDamien Picard
- "Name collisions" label in mesh properties - "Threshold" labels in Vertex Weight Edit modifier - "Particle System" label in Particle Instance modifier - Slot number in the Shader Editor - Status bar keymap items during modal operations: add TIP_() macro to status bar interface template - On dumping messages, sort preset files so their messages are stable between runs Ref. T43295 Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15607
2022-08-05EEVEE-Next: Depth Of Field: Use random sampling in slight focus gatherClément Foucault
This replace the previous square rings approach by sampling a disk the footprint of the search area. This avoids sampling in areas in corners where there isn't any weight. This results in much less samples needed to acheive a good enough result. The max number of samples for an area of 11x11 px is hard coded to 16 and still gives good results with the final clamp. The number of samples is adaptative and is scaled by the search area (max CoC). The High Quality Slight Defocus is not required anymore. If there is a quality parameter to add, it would be sample count option. But I consider the temporal stability enough for viewport work and render can still render many full scene samples. So I don't see a need for that yet.
2022-08-05EEVEE-Next: Depth Of Field: Improve Temporal stabilityClément Foucault
This implement a full TAA pass on the depth of field input. An history buffer is kept for each view needing Depth of field. This uses a swap with a `TextureFromPool` in order to not always 2 textures allocated. Since this uses luma weighting without any input, the firefly parameter is now obsolete and has been removed. There is some tiny difference with the Film TAA so the implementation is mostly copy pasted. Also this implementation uses a LDS cache to speedup the TAA computations.
2022-08-04Merge branch 'blender-v3.3-release'Bastien Montagne
2022-08-04I18n: make several parts of the UI translatableDamien Picard
- batch rename - keyframe settings - tool name in Tool properties header - tool name in Tool properties Drag (fake) enum - new file templates - new preset - new text datablock - new collection datablock - new geometry nodes (modifier and node group) - new grease pencil data (layers and materials) Ref. T43295 Reviewed By: mont29 Differential Revision: https://developer.blender.org/D15533