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-02Merge branch 'blender-v3.3-release'Clément Foucault
# Conflicts: # release/scripts/addons
2022-09-02Cleanup: Use NODE_STORAGE_FUNCS for compositor nodesOmar Emara
This patches replaces the custom node storage acessor functions from the viewport compositor code and replaces it with NODE_STORAGE_FUNCS.
2022-09-02Fix T99528: EEVEE: Regression: Faulty shaders when using Volume Info nodeClément Foucault
Workaround the issue by adding an intermediate function. This is usually the case when working with attributes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15860
2022-09-02Realtime Compositor: Implement dilate erode nodeOmar Emara
This patch implements the dilate/erode node for the realtime compositor. Differential Revision: https://developer.blender.org/D15790 Reviewed By: Clement Foucault
2022-09-02Fix T98190: EEVEE: Very slow rendering on Intel HD Graphics 4400Clément Foucault
This particular GPU driver does not constant fold all the way in order to discard the unused branches. To workaround that, we introduce a series of material flag that generates defines that only keep used branches. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15852
2022-09-01Cleanup: Remove/replace View Layer macros.Monique Dewanchand
This patch is a cleanup required before refactoring the view layer syncing process {T73411}. * Remove FIRSTBASE. * Remove LASTBASE. * Remove BASACT. * Remove OBEDIT_FROM_WORKSPACE. * Replace OBACT with BKE_view_layer_active_object. * Replace OBEDIT_FROM_VIEW_LAYER with BKE_view_layer_edit_object. Reviewed By: mont29 Maniphest Tasks: T73411 Differential Revision: https://developer.blender.org/D15799
2022-08-31Cleanup: Use const for node data in compositorHans Goudey
Push the const usage a bit further for compositor nodes, so that they are more explicit about not modifying original nodes from the editor. Differential Revision: https://developer.blender.org/D15822
2022-08-31Merge branch 'blender-v3.3-release'Joseph Eagar
2022-08-31UI: Fix Geometry Nodes "Is Face Planar" nameDalai Felinto
Old name: "Face is Planar" New name: "Is Face Planar" This follows the current convention (Is Shade Smooth, Is Viewport, ...).
2022-08-31UI: Fix Geometry Nodes "Mesh to Volume" name (typo)Dalai Felinto
Old name: "Mesh To Volume" New name: "Mesh to Volume" This is consistent with what we do for the other nodes (Mesh to Curve, Mesh to Points).
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-31Cleanup: Resolve unused-lambda-capture warningSergey Sharybin
2022-08-31Nodes: move NodeTreeRef functionality into node runtime dataJacques Lucke
The purpose of `NodeTreeRef` was to speed up various queries on a read-only `bNodeTree`. Not that we have runtime data in nodes and sockets, we can also store the result of some queries there. This has some benefits: * No need for a read-only separate node tree data structure which increased complexity. * Makes it easier to reuse cached queries in more parts of Blender that can benefit from it. A downside is that we loose some type safety that we got by having different types for input and output sockets, as well as internal and non-internal links. This patch also refactors `DerivedNodeTree` so that it does not use `NodeTreeRef` anymore, but uses `bNodeTree` directly instead. To provide a convenient API (that is also close to what `NodeTreeRef` has), a new approach is implemented: `bNodeTree`, `bNode`, `bNodeSocket` and `bNodeLink` now have C++ methods declared in `DNA_node_types.h` which are implemented in `BKE_node_runtime.hh`. To make this work, `makesdna` now skips c++ sections when parsing dna header files. No user visible changes are expected. Differential Revision: https://developer.blender.org/D15491
2022-08-31Node: Mix nodeCharlie Jolly
This patch is a response to T92588 and is implemented as a Function/Shader node. This node has support for Float, Vector and Color data types. For Vector it supports uniform and non-uniform mixing. For Color it now has the option to remove factor clamping. It replaces the Mix RGB for Shader and Geometry node trees. As discussed in T96219, this patch converts existing nodes in .blend files. The old node is still available in the Python API but hidden from the menus. Reviewed By: HooglyBoogly, JacquesLucke, simonthommes, brecht Maniphest Tasks: T92588 Differential Revision: https://developer.blender.org/D13749
2022-08-31Cleanup: Avoid using geometry component unnecessarilyHans Goudey
2022-08-31Mesh: Avoid redundant custom data layer initializationHans Goudey
In all these cases, it was clear that the layer values were set right after the layer was created anyway. So there's no point in using calloc or setting the values to zero first. See 25237d2625078c6d for more info.
2022-08-30Cleanup: Use standard variable name for curve pointsHans Goudey
2022-08-30Attributes: Improve custom data initialization optionsHans Goudey
When allocating new `CustomData` layers, often we do redundant initialization of arrays. For example, it's common that values are allocated, set to their default value, and then set to some other value. This is wasteful, and it negates the benefits of optimizations to the allocator like D15082. There are two reasons for this. The first is array-of-structs storage that makes it annoying to initialize values manually, and the second is confusing options in the Custom Data API. This patch addresses the latter. The `CustomData` "alloc type" options are rearranged. Now, besides the options that use existing layers, there are two remaining: * `CD_SET_DEFAULT` sets the default value. * Usually zeroes, but for colors this is white (how it was before). * Should be used when you add the layer but don't set all values. * `CD_CONSTRUCT` refers to the "default construct" C++ term. * Only necessary or defined for non-trivial types like vertex groups. * Doesn't do anything for trivial types like `int` or `float3`. * Should be used every other time, when all values will be set. The attribute API's `AttributeInit` types are updated as well. To update code, replace `CD_CALLOC` with `CD_SET_DEFAULT` and `CD_DEFAULT` with `CD_CONSTRUCT`. This doesn't cause any functional changes yet. Follow-up commits will change to avoid initializing new layers where the correctness is clear. Differential Revision: https://developer.blender.org/D15617
2022-08-30Geometry Nodes: Use separate field context for each geometry typeHans Goudey
Using the same `GeometryComponentFieldContext` for all situations, even when only one geometry type is supported is misleading, and mixes too many different abstraction levels into code that could be simpler. With the attribute API moved out of geometry components recently, the "component" system is just getting in the way here. This commit adds specific field contexts for geometry types: meshes, curves, point clouds, and instances. There are also separate field input helper classes, to help reduce boilerplate for fields that only support specific geometry types. Another benefit of this change is that it separates geometry components from fields, which makes it easier to see the purpose of the two concepts, and how they relate. Because we want to be able to evaluate a field on just `CurvesGeometry` rather than the full `Curves` data-block, the generic "geometry context" had to be changed to avoid using `GeometryComponent`, since there is no corresponding geometry component type. The resulting void pointer is ugly, but only turns up in three places in practice. When Apple clang supports `std::variant`, that could be used instead. Differential Revision: https://developer.blender.org/D15519
2022-08-29Fix: Broken build with OpenVDB turned offHans Goudey
Problem with e3a6a2f41284f90b010.
2022-08-29Fix: Broken build with OpenVDB turned offHans Goudey
Problem with e3a6a2f41284f90b010.
2022-08-29Merge branch 'blender-v3.3-release'Jacques Lucke
2022-08-29Fix T99004: scaling volume down results in crashJacques Lucke
OpenVDB crashes when the determinant of the grid transformation is too small. The solution is too detect when the determinant is too small and to replace the grid with an empty one. If possible the translation and rotation of the grid remains unchanged. Differential Revision: https://developer.blender.org/D15806
2022-08-28Cleanup: replace NULL with nullptr for C++ filesCampbell Barton
2022-08-23Merge branch 'blender-v3.3-release'Richard Antalik
2022-08-23Cleanup: formatCampbell Barton
2022-08-23Fix: Missing compositor domain priority for filter nodesOmar Emara
Domain priorities were accidentally left out of the patches for the filter nodes. This patch adds them appropriately.
2022-08-23Cleanup: Turn filter node methods into an EnumOmar Emara
This patch turns the filter node methods into an enum and renames the members from FILT into FILTER for easier writing.
2022-08-22Merge branch 'blender-v3.3-release'Jacques Lucke
2022-08-22Fix T100568: triangulate node resets vertices to rest positionJacques Lucke
The triangulate node is not supposed to take shape keys into account. This was likely a mistake in rBabf30007abdac2a5bf3a1.
2022-08-22Merge branch 'blender-v3.3-release'Jacques Lucke
2022-08-22Fix T100258: wrong spline length used in Spline Parameter nodeIliya Katueshenock
Differential Revision: https://developer.blender.org/D15705
2022-08-22Merge branch 'blender-v3.3-release'Bastien Montagne
Conflicts: release/scripts/startup/bl_ui/space_userpref.py
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-19Cleanup: spelling in commentsCampbell Barton
2022-08-18Fix build error when not using unity buildBrecht Van Lommel
2022-08-18Realtime Compositor: Implement bilateral blur nodeOmar Emara
This patch implements the bilateral blur node for the realtime compositor. Differential Revision: https://developer.blender.org/D15674 Reviewed By: Clement Foucault
2022-08-18Realtime Compositor: Implement despeckle nodeOmar Emara
This patch implements the despeckle node for the realtime compositor. Differential Revision: https://developer.blender.org/D15673 Reviewed By: Clement Foucault
2022-08-18Realtime Compositor: Implement directional blur nodeOmar Emara
This patch implements the directional blur node for the realtime compositor. Differential Revision: https://developer.blender.org/D15672 Reviewed By: Clement Foucault
2022-08-18Realtime Compositor: Implement filter nodeOmar Emara
This patch implements the filter node for the realtime compositor. Differential Revision: https://developer.blender.org/D15661 Reviewed By: Clement Foucault
2022-08-18Realtime Compositor: Implement bokeh image nodeOmar Emara
This patch implements the bokeh image node for the realtime compositor. Differential Revision: https://developer.blender.org/D15660 Reviewed By: Clement Foucault
2022-08-17Fix: Crash if Movie Clip node has an empty movieOmar Emara
The movie clip GPU texture free function doesn't do null checks, so make sure the movie clip is not null before freeing.
2022-08-15GPU: replace GLEW with libepoxyChristian Rauch
With libepoxy we can choose between EGL and GLX at runtime, as well as dynamically open EGL and GLX libraries without linking to them. This will make it possible to build with Wayland, EGL, GLVND support while still running on systems that only have X11, GLX and libGL. It also paves the way for headless rendering through EGL. libepoxy is a new library dependency, and is included in the precompiled libraries. GLEW is no longer a dependency, and WITH_SYSTEM_GLEW was removed. Includes contributions by Brecht Van Lommel, Ray Molenkamp, Campbell Barton and Sergey Sharybin. Ref T76428 Differential Revision: https://developer.blender.org/D15291
2022-08-12Cleanup: repeated words in commentsCampbell Barton
2022-08-10Compositor: Limit C linkage of cryptomatte functionsOmar Emara
Most of the functions in the compositor cryptomatte file are declared with extern "C" linkage, which can cause symbol conflict even when functions exist in separate namespaces. This is not actually necessary, as the declaration of the few functions that require C linkage are already declared as such in the header file, so this patch removes the extern C scope from that file. Differential Revision: https://developer.blender.org/D15656 Reviewed By: Clement Foucault
2022-08-10Realtime Compositor: Fix missing include in Displace nodeOmar Emara
The displace node was missing an include, which sometimes compiled fine due to unity builds. This patch adds that missing include.
2022-08-10Realtime Compositor: Fix clang tidy warningsOmar Emara
Fix a number of warnings reported by Clang Tidy in the realtime compositor's code. Differential Revision: https://developer.blender.org/D15654 Reviewed By: Clement Foucault
2022-08-10Realtime Compositor: Add stub unsupported nodesOmar Emara
This patch adds a stub implementation for all unsupported nodes. The inputs are passed through to the outputs where it make sense, while other outputs will be allocated a single zero value. This seems to be preferred by users as opposed to stopping execution and displaying an error message. Differential Revision: https://developer.blender.org/D15464 Reviewed By: Clement Foucault
2022-08-10Realtime Compositor: Add basic distort nodesOmar Emara
This patch implements the following nodes for the realtime compositor: - Crop node. - Flip node. - Lens distort node. - Rotate node. - Transform node. - Translate node. Differential Revision: https://developer.blender.org/D15231 Reviewed By: Clement Foucault
2022-08-10Realtime Compositor: Add basic matte nodesOmar Emara
This patch implements the following nodes for the realtime compositor: - Box mask node. - Channel matte node. - Chroma matte node. - Color matte node. - Color spill node. - Difference matte node. - Distance matte node. - Ellipse matte node. - Luminance matte node. Differential Revision: https://developer.blender.org/D15230 Reviewed By: Clement Foucault