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
2020-12-08Cleanup: Correct an own earlier commit to use an existing utility functionJulian Eisel
Didn't know this function existed, better to use it then to avoid verbosity.
2020-12-08Cleanup: Use guarded allocator for data-block names returned from file readingJulian Eisel
Direcly using the C library allocator functions is usually avoided in favor of our guarded allocator. It's more useful when debugging.
2020-12-07Animation: Show Channel Group Colors is now off by defaultSybren A. Stüvel
Change the default for the Show Channel Group Colors preference to OFF. This option in the user preferences was introduced in rBad85256e7108. It moved a per-file-per-editor option to the user preferences. As this option would be frequently turned off by animators, this would now have to happen only once. This commit takes this one step further, and turns it off by default, as it can cause major readability issues of the animation channel list.
2020-12-07File Subversion Bump: 2.92.5Jeroen Bakker
2020-12-04Cleanup: Move Outliner runtime hash into internal runtime struct, out of DNAJulian Eisel
This way Outliner internal data stays internal, non-Outliner code will not be able to access and mess with this. Further it allows us to use the real type (rather than `void *`), change the type to a C++ container if needed and slightly reduces the size for every Outliner stored in files. Slightly changed how we set the `SO_TREESTORE_REBUILD` for this, but it should effectively behave the same way as before.
2020-12-04EEVEE CryptomatteJeroen Bakker
Cryptomatte is a standard to efficiently create mattes for compositing. The renderer outputs the required render passes, which can then be used in the compositor to create masks for specified objects. Unlike the Material and Object Index passes, the objects to isolate are selected in compositing, and mattes will be anti-aliased. Cryptomatte was already available in Cycles this patch adds it to the EEVEE render engine. Original specification can be found at https://raw.githubusercontent.com/Psyop/Cryptomatte/master/specification/IDmattes_poster.pdf **Accurate mode** Following Cycles, there are two accuracy modes. The difference between the two modes is the number of render samples they take into account to create the render passes. When accurate mode is off the number of levels is used. When accuracy mode is active, the number of render samples is used. **Deviation from standard** Cryptomatte specification is based on a path trace approach where samples and coverage are calculated at the same time. In EEVEE a sample is an exact match on top of a prepared depth buffer. Coverage is at that moment always 1. By sampling multiple times the number of surface hits decides the actual surface coverage for a matte per pixel. **Implementation Overview** When drawing to the cryptomatte GPU buffer the depth of the fragment is matched to the active depth buffer. The hashes of each cryptomatte layer is written in the GPU buffer. The exact layout depends on the active cryptomatte layers. The GPU buffer is downloaded and integrated into an accumulation buffer (stored in CPU RAM). The accumulation buffer stores the hashes + weights for a number of levels, layers per pixel. When a hash already exists the weight will be increased. When the hash doesn't exists it will be added to the buffer. After all the samples have been calculated the accumulation buffer is processed. During this phase the total pixel weights of each layer is mapped to be in a range between 0 and 1. The hashes are also sorted (highest weight first). Blender Kernel now has a `BKE_cryptomatte` header that access to common functions for cryptomatte. This will in the future be used by the API. * Alpha blended materials aren't supported. Alpha blended materials support in render passes needs research how to implement it in a maintainable way for any render pass. This is a list of tasks that needs to be done for the same release that this patch lands on (Blender 2.92) * T82571 Add render tests. * T82572 Documentation. * T82573 Store hashes + Object names in the render result header. * T82574 Use threading to increase performance in accumulation and post processing. * T82575 Merge the cycles and EEVEE settings as they are identical. * T82576 Add RNA to extract the cryptomatte hashes to use in python scripts. Reviewed By: Clément Foucault Maniphest Tasks: T81058 Differential Revision: https://developer.blender.org/D9165
2020-12-04EEVEE: Arbitrary Output VariablesJeroen Bakker
This patch adds support for AOVs in EEVEE. AOV Outputs can be defined in the render pass tab and used in shader materials. Both Object and World based shaders are supported. The AOV can be previewed in the viewport using the renderpass selector in the shading popover. AOV names that conflict with other AOVs are automatically corrected. AOV conflicts with render passes get a warning icon. The reason behind this is that changing render engines/passes can change the conflict, but you might not notice it. Changing this automatically would also make the materials incorrect, so best to leave this to the user. **Implementation** The patch adds a copies the AOV structures of Cycles into Blender. The goal is that the Cycles will use Blenders AOV defintions. In the Blender kernel (`layer.c`) the logic of these structures are implemented. The GLSL shader of any GPUMaterial can hold multiple outputs (the main output and the AOV outputs) based on the renderPassUBO the right output is selected. This selection uses an hash that encodes the AOV structure. The full AOV needed to be encoded when actually drawing the material pass as the AOV type changes the behavior of the AOV. This isn't known yet when the GLSL is compiled. **Future Developments** * The AOV definitions in the render layer panel isn't shared with Cycles. Cycles should be migrated to use the same viewlayer aovs. During a previous attempt this failed as the AOV validation in cycles and in Blender have implementation differences what made it crash when an aov name was invalid. This could be fixed by extending the external render engine API. * Add support to Cycles to render AOVs in the 3d viewport. * Use a drop down list for selecting AOVs in the AOV Output node. * Give user feedback when multiple AOV output nodes with the same AOV name exists in the same shader. * Fix viewing single channel images in the image editor [T83314] * Reduce viewport render time by only render needed draw passes. [T83316] Reviewed By: Brecht van Lommel, Clément Foucault Differential Revision: https://developer.blender.org/D7010
2020-12-04Sculpt: Wet paint area radiusPablo Dobarro
This adds a new property to the sculpt vertex color paint brush to limit the area of the brush that is going to be used to sample the wet paint color. This is exactly the same concept as normal radius and area radius that exist for sculpting brushes for sampling the surface depth and orientation. When working near color hard edges, this allows to prevent the color from the other side of the edge to blend into the wet paint. With 1.0 (the previous default) wet paint radius, as soon as the brush touches one vertex of the other color, the wet paint mix color changes, making it impossible to maintain the border between the two colors. Reviewed By: sergey, dbystedt, JulienKaspar Differential Revision: https://developer.blender.org/D9587
2020-12-02UI: Add new node colors for geometry nodesHans Goudey
During the development of the new nodes in the `geometry-nodes` branch the color of the new nodes wasn't considered, so all of the nodes ended up red, the color for "input" nodes. This patch introduces two new colors, one for "Geometry" and one for "Attributes". There are only two attribute nodes currently, but the next sprint will add two more, attribute mix, and sample from texture. The attribute nodes are conceptually different enough from the nodes that modify the geometry that they deserve their own color. Differential Revision: https://developer.blender.org/D9682
2020-12-02Geometry Nodes: initial scattering and geometry nodesJacques Lucke
This is the initial merge from the geometry-nodes branch. Nodes: * Attribute Math * Boolean * Edge Split * Float Compare * Object Info * Point Distribute * Point Instance * Random Attribute * Random Float * Subdivision Surface * Transform * Triangulate It includes the initial evaluation of geometry node groups in the Geometry Nodes modifier. Notes on the Generic attribute access API The API adds an indirection for attribute access. That has the following benefits: * Most code does not have to care about how an attribute is stored internally. This is mainly necessary, because we have to deal with "legacy" attributes such as vertex weights and attributes that are embedded into other structs such as vertex positions. * When reading from an attribute, we generally don't care what domain the attribute is stored on. So we want to abstract away the interpolation that that adapts attributes from one domain to another domain (this is not actually implemented yet). Other possible improvements for later iterations include: * Actually implement interpolation between domains. * Don't use inheritance for the different attribute types. A single class for read access and one for write access might be enough, because we know all the ways in which attributes are stored internally. We don't want more different internal structures in the future. On the contrary, ideally we can consolidate the different storage formats in the future to reduce the need for this indirection. * Remove the need for heap allocations when creating attribute accessors. It includes commits from: * Dalai Felinto * Hans Goudey * Jacques Lucke * Léo Depoix
2020-12-02Add Custom Falloff Curve to the Vertex Weight Proximity Modifier.Christian Friedrich
The Vertex Weight Edit Modifier already got the Custom Curve, there was no real reason for the proximity not to have it as well. With some fixes by Bastien Montagne (@mont29). Reviewed By: mont29 Differential Revision: https://developer.blender.org/D9594
2020-11-30Cleanup: Use "region" for ARegion variable namesHans Goudey
As proposed in T74432 and already implemented in several commits, "region" is the preferred name for `ARegion` variables, rather than any variant of "ar". This commit changes a few "ar" variables that have popped up over time and also adjusted names of variants like "arnew".
2020-11-27Fix T82758: Convert Proxy to Override: Local constraints aren't saved.Bastien Montagne
Ensure consistent order of pose bones. Now it should always match the one from bones in armature obdata (as exposed by e.g. RNA, i.e. children-first). Previously when some pose bones would need to be added or removed from a pose due to changes in the bone armature, or if bones in armature were re-ordered, the bones order in pose would not match anymore the one from armature, and could even become different between e.g. a proxy and its linked source. This was not really nice, but not a big issue before either. But with diffing process of override, consistent order of items between reference linked collection and local override one is crucial. Reviewed By: #animation_rigging, sybren Maniphest Tasks: T82758 Differential Revision: https://developer.blender.org/D9646
2020-11-26UI: Allow theming the alternate row color in the sequencerErik Abrahamsson
Previously, the alternate row color in the Video Sequence Editor was just a shaded version of the editor's background color. This makes it theme-able just like in the file browser and outliner, although the default color is very slightly different. Differential Revision: https://developer.blender.org/D9634
2020-11-20Outliner: Object state filter invert toggleNathan Craddock
This adds an invert toggle for the outliner object state filters. There are some cases where we want a filter for invertable states (Selected, Unselected) and having a single toggle to invert the filter reduces the number of separate filter types needed. This removes the "Hidden" filter which can now be replicated with an inverted "Visible" filter. Differential Revision: https://developer.blender.org/D9598
2020-11-17Merge branch 'blender-v2.91-release'Nathan Craddock
2020-11-16Outliner: Collection icon color tweaksNathan Craddock
The icons originally chosen for the collection colors were selected during development and had a few issues with contrast in the light theme, and the gray color was not a good choice against the default gray backgrounds. The new colors are more readable in both default Blender themes. Gray was replaced with pink. Differential Revision: https://developer.blender.org/D9504
2020-11-13GPencil: Merge GSoC curve edit modeFalk David
Differential Revision: https://developer.blender.org/D8660 This patch is the result of the GSoC 2020 "Editing Grease Pencil Strokes Using Curves" project. It adds a submode to greasepencil edit mode that allows for the transformation of greasepencil strokes using bezier curves. More information about the project can be found here: https://wiki.blender.org/wiki/User:Filedescriptor/GSoC_2020.
2020-11-13Add An Opacity Slider to Overlay WireframeJun Mizutani
This patch adds an opacity slider to the wireframe overlay. The previous wireframe in dense geometry scenes could be too dark and sometimes the user just wants an impression of the geometry during modelling. Reviewed By: Jeroen Bakker Differential Revision: https://developer.blender.org/D7622
2020-11-12Cleanup: spellingCampbell Barton
2020-11-09Animation: move group colors switch to user preferencesSybren A. Stüvel
Move the "Show Group Colors" toggle from a per-editor option to a single user preference in the Animation preferences. The Grease Pencil animation channel side panel allows picking a channel color; this now shows a message when channel colors are disabled. The old "Show Group Colors" toggle had to be set per editor, and was on by default. This meant that disabling group colors would require an action for every file, for every editor. It is very hard to select a color that works both as bone color in the 3D Viewport (needs to be bright there) as well as the channel list (needs to be dark there), most animators turn channel list colors off. Differential Revision: https://developer.blender.org/D9391
2020-11-06Cleanup: remove unused includes in readfile.c and writefile.cJacques Lucke
2020-11-06Cleanup: fix naming and remove unnecessary codeJacques Lucke
2020-11-06Refactor: move Screen .blend data read to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move Ipo .blend I/O to IDTypeInfo callbacksJacques Lucke
2020-11-06Refactor: move Object .blend I/O to IDTypeInfo callbacksJacques Lucke
2020-11-06Cleanup: Clang-Tidy modernize-use-nullptrSybren A. Stüvel
Replace `NULL` with `nullptr` in C++ code. No functional changes.
2020-11-06Refactor: move Pose .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move Constraint .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move MotionPath .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move gpencil modifier .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move modifier .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move ShaderFx .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Cleanup: Render Module: move header files to main directoryAaron Carlisle
Move headers files from `render/extern/` to `render/` Part of T73586
2020-11-06Refactor: move ParticleSystem .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move Scene .blend expand to IDTypeInfo callbackJacques Lucke
2020-11-06Refactor: move Scene .blend lib reading to IDTypeInfo callbackJacques Lucke
2020-11-06Blenloader: access report list via apiJacques Lucke
2020-11-06Blenloader: expose BLO_reportf_wrap in apiJacques Lucke
This function is used by a couple of functions that are moved out of blenloader.
2020-11-06Refactor: move Scene .blend data reading to IDTypeInfo callbackJacques Lucke
2020-11-06Refactor: move Scene .blend writing to IDTypeInfo callbackJacques Lucke
2020-11-06Refactor: move PointCache .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move sequencer modifier .blend I/O to sequencer moduleJacques Lucke
Ref T76372.
2020-11-06Refactor: move Paint lib linking to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move color settings .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move LightCache .blend I/O to eevee_lightcache.cJacques Lucke
Ref T76372.
2020-11-06Refactor: move remaining ViewLayer .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Cleanup: remove unnecessary functionJacques Lucke
2020-11-06Refactor: move Paint .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-11-06Refactor: move wmWindowManager .blend I/O to IDTypeInfo callbacksJacques Lucke