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
2021-02-16Cleanup: spellingCampbell Barton
2021-02-16Fix add-on & app-template installation logic for overwriting modulesCampbell Barton
The logic to remove one Python module before installing another only worked in simple cases where a file replaced a file. - Installing a single file add-on over a Python package with the same name caused an error as the directory isn't empty. - Removing existing module directories from the zip-file did nothing as the directories from the zip-file that end with a slash were compared with directories from `os.listdir` that don't. - `module_filesystem_remove` assumed ZipFile.namelist() was a list of files in the root of the zip-file when it's a list of all files. While I couldn't find any bugs caused by this, it performed checks that don't make sense, comparing files at different depths of the file-system.
2021-02-16Fix reloading preferences ignoring 'script_directory'Campbell Barton
Reloading preferences didn't update Python's `sys.path` to account for the modified `script_directory`. This meant the operator to load settings from a previous version required a restart to initialize Python when this directory was set.
2021-02-16Cleanup: remove local copy of shutil.copytree from Python 3.8Campbell Barton
2021-02-16UI: Clarify descriptions in properties popoverNathan Craddock
Updates the descriptions and labels for outliner sync in the properties editor popover to be more clear. Differential Revision: https://developer.blender.org/D10010
2021-02-14Cleanup: Source Code Typosluzpaz
Corrects approximately 36 spelling errors in source variable names. Differential Revision: https://developer.blender.org/D10347 Reviewed by Hans Goudey
2021-02-13Merge branch 'blender-v2.92-release'Campbell Barton
2021-02-13RNA Manual Reference: Update mappingsAaron Carlisle
2021-02-13EEVEE: Depth of field: New implementationClément Foucault
This is a complete refactor over the old system. The goal was to increase quality first and then have something more flexible and optimised. |{F9603145} | {F9603142}|{F9603147}| This fixes issues we had with the old system which were: - Too much overdraw (low performance). - Not enough precision in render targets (hugly color banding/drifting). - Poor resolution near in-focus regions. - Wrong support of orthographic views. - Missing alpha support in viewport. - Missing bokeh shape inversion on foreground field. - Issues on some GPUs. (see T72489) (But I'm sure this one will have other issues as well heh...) - Fix T81092 I chose Unreal's Diaphragm DOF as a reference / goal implementation. It is well described in the presentation "A Life of a Bokeh" by Guillaume Abadie. You can check about it here https://epicgames.ent.box.com/s/s86j70iamxvsuu6j35pilypficznec04 Along side the main implementation we provide a way to increase the quality by jittering the camera position for each sample (the ones specified under the Sampling tab). The jittering is dividing the actual post processing dof radius so that it fills the undersampling. The user can still add more overblur to have a noiseless image, but reducing bokeh shape sharpness. Effect of overblur (left without, right with): | {F9603122} | {F9603123}| The actual implementation differs a bit: - Foreground gather implementation uses the same "ring binning" accumulator as background but uses a custom occlusion method. This gives the problem of inflating the foreground elements when they are over background or in-focus regions. This is was a hard decision but this was preferable to the other method that was giving poor opacity masks for foreground and had other more noticeable issues. Do note it is possible to improve this part in the future if a better alternative is found. - Use occlusion texture for foreground. Presentation says it wasn't really needed for them. - The TAA stabilisation pass is replace by a simple neighborhood clamping at the reduce copy stage for simplicity. - We don't do a brute-force in-focus separate gather pass. Instead we just do the brute force pass during resolve. Using the separate pass could be a future optimization if needed but might give less precise results. - We don't use compute shaders at all so shader branching might not be optimal. But performance is still way better than our previous implementation. - We mainly rely on density change to fix all undersampling issues even for foreground (which is something the reference implementation is not doing strangely). Remaining issues (not considered blocking for me): - Slight defocus stability: Due to slight defocus bruteforce gather using the bare scene color, highlights are dilated and make convergence quite slow or imposible when using jittered DOF (or gives ) - ~~Slight defocus inflating: There seems to be a 1px inflation discontinuity of the slight focus convolution compared to the half resolution. This is not really noticeable if using jittered camera.~~ Fixed - Foreground occlusion approximation is a bit glitchy and gives incorrect result if the a defocus foreground element overlaps a farther foreground element. Note that this is easily mitigated using the jittered camera position. |{F9603114}|{F9603115}|{F9603116}| - Foreground is inflating, not revealing background. However this avoids some other bugs too as discussed previously. Also mitigated with jittered camera position. |{F9603130}|{F9603129}| - Sensor vertical fit is still broken (does not match cycles). - Scattred bokeh shapes can be a bit strange at polygon vertices. This is due to the distance field stored in the Bokeh LUT which is not rounded at the edges. This is barely noticeable if the shape does not rotate. - ~~Sampling pattern of the jittered camera position is suboptimal. Could try something like hammersley or poisson disc distribution.~~Used hexaweb sampling pattern which is not random but has better stability and overall coverage. - Very large bokeh (> 300 px) can exhibit undersampling artifact in gather pass and quite a bit of bleeding. But at this size it is preferable to use jittered camera position. Codewise the changes are pretty much self contained and each pass are well documented. However the whole pipeline is quite complex to understand from bird's-eye view. Notes: - There is the possibility of using arbitrary bokeh texture with this implementation. However implementation is a bit involved. - Gathering max sample count is hardcoded to avoid to deal with shader variations. The actual max sample count is already quite high but samples are not evenly distributed due to the ring binning method. - While this implementation does not need 32bit/channel textures to render correctly it does use many other textures so actual VRAM usage is higher than previous method for viewport but less for render. Textures are reused to avoid many allocations. - Bokeh LUT computation is fast and done for each redraw because it can be animated. Also the texture can be shared with other viewport with different camera settings.
2021-02-12OpenColorIO: upgrade to version 2.0.0Brecht Van Lommel
Ref T84819 Build System ============ This is an API breaking new version, and the updated code only builds with OpenColorIO 2.0 and later. Adding backwards compatibility was too complicated. * Tinyxml was replaced with Expat, adding a new dependency. * Yaml-cpp is now built as a dependency on Unix, as was already done on Windows. * Removed currently unused LCMS code. * Pystring remains built as part of OCIO itself, since it has no good build system. * Linux and macOS check for the OpenColorIO verison, and disable it if too old. Ref D10270 Processors and Transforms ========================= CPU processors now need to be created to do CPU processing. These are cached internally, but the cache lookup is not fast enough to execute per pixel or texture sample, so for performance these are now also exposed in the C API. The C API for transforms will no longer be needed afer all changes, so remove it to simplify the API and fallback implementation. Ref D10271 Display Transforms ================== Needs a bit more manual work constructing the transform. LegacyViewingPipeline could also have been used, but isn't really any simpler and since it's legacy we better not rely on it. We moved more logic into the opencolorio module, to simplify the API. There is no need to wrap a dozen functions just to be able to do this in C rather than C++. It's also tightly coupled to the GPU shader logic, and so should be in the same module. Ref D10271 GPU Display Shader ================== To avoid baking exposure and gamma into the GLSL shader and requiring slow recompiles when tweaking, we manually apply them in the shader. This leads to some logic duplicaton between the CPU and GPU display processor, but it seems unavoidable. Caching was also changed. Previously this was done both on the imbuf and opencolorio module levels. Now it's all done in the opencolorio module by simply matching color space names. We no longer use cacheIDs from OpenColorIO since computing them is expensive, and they are unlikely to match now that more is baked into the shader code. Shaders can now use multiple 2D textures, 3D textures and uniforms, rather than a single 3D texture. So allocating and binding those adds some code. Color space conversions for blending with overlays is now hardcoded in the shader. This was using harcoded numbers anyway, if this every becomes a general OpenColorIO transform it can be changed, but for now there is no point to add code complexity. Ref D10273 CIE XYZ ======= We need standard CIE XYZ values for rendering effects like blackbody emission. The relation to the scene linear role is based on OpenColorIO configuration. In OpenColorIO 2.0 configs roles can no longer have the same name as color spaces, which means our XYZ role and colorspace in the configuration give an error. Instead use the new standard aces_interchange role, which relates scene linear to a known scene referred color space. Compatibility with the old XYZ role is preserved, if the configuration file has no conflicting names. Also includes a non-functional change to the configuraton file to use an XYZ-to-ACES matrix instead of REC709-to-ACES, makes debugging a little easier since the matrix is the same one we have in the code now and that is also found easily in the ACES specs. Ref D10274
2021-02-12Merge branch 'blender-v2.92-release'Jeroen Bakker
2021-02-12Cycles: Use Blender Settings For AOVJeroen Bakker
This patch will share the AOV settings between Cycles and Eevee. It enable using the AOV name conflict detection of Blender. This means that unlike how Cycles used to work it isn't possible to add an AOV with a similar name. Conflicts with internal render pass names will be indicated with an Warning icon. Reviewed By: Brecht van Lommel Differential Revision: https://developer.blender.org/D9774
2021-02-12Cleanup: use the assignment operator with list-comprehensionCampbell Barton
2021-02-12Cleanup: don't subclass 'Panel' for mix-in classesCampbell Barton
This reports warnings with `--debug-python` since all panel sub-classes are expected to be registered.
2021-02-12Cleanup: remove unused panel SEQUENCER_PT_soundCampbell Barton
These have since been moved to SEQUENCER_PT_source.
2021-02-11GPencil: Move Autofit parameter from topbar to advanced panelAntonio Vazquez
As this is used only in corner cases, it is better keep in advanced panel. Also renamed to "Limit to Viewport"
2021-02-10Merge branch 'blender-v2.92-release'Pablo Dobarro
2021-02-10Fix T83047: Texture paint symmetry options not in topbarPablo Dobarro
The texture paint mode was accidentally removed from the list Reviewed By: JacquesLucke Maniphest Tasks: T83047 Differential Revision: https://developer.blender.org/D10216
2021-02-09Geometry Nodes: Add Combine and Separate XYZ nodes for attributesWannes Malfait
These are similar to the regular "Combine XYZ" and "Separate XYZ" nodes, but they work on attributes. They will make it easier to switch between vector attributes and float attributes. Differential Revision: https://developer.blender.org/D10308
2021-02-09Transform: Expose the hardcoded Precision KeyGermano Cavalcante
As shown on the T85383, attempts are made to edit the precision mode key. But that key was hardcoded. That key now appears among the custom modal keymap items.
2021-02-09GPencil: Fill tool refactor and Multiframe in Draw modeAntonio Vazquez
This commit is a refactor of the fill tool to solve several problems we had since the first version of the tool. Changes: * The filling speed has been improved for each step of the process with the optimization of each algorithm/function. * New `AutoFit` option to fill areas outside of the viewport. When enable, the total size of the frame is calculated to fit the filling area. * New support multiframe filling. Now it is possible to fill multiple similar frames in one go. * New `Stroke Extension` option to create temporary closing strokes. These strokes can be displayed and adjusted dynamically using wheel mouse or PageUp/Down keys. * Parameter `Resolution` now is named `Precision` and has been moved to topbar. * `Resolution` now has decimals and can be lower than 1 to allow quick filling in storyboarding workflows. Maximum value has been set as 5. * Parameter `Simplify` has been moved to Advanced panel. * Improved fill outline detection. In some cases, the outline penetrated the area to be filled with unexpected results. * Fixes some corner case bugs with infinite loops. As a result of this refactor, also these new functionalities has been added. * New support for multiframe in `Draw` mode. Any drawing in active frame is duplicated to all selected frame. * New multiframe display mode. Keyframes before or after of the active frame are displayed using onion colors. This can be disable using Onion overlay options.
2021-02-08Fix for T84038: Improved Report WarningsHarley Acheson
Improved contrast for Status Bar report warning messages. Differential Revision: https://developer.blender.org/D10242 Reviewed by Hans Goudey
2021-02-05Image: Flip image operatorPablo Dobarro
This implements an operator to flip the contents of an image buffer. It supports flipping the image horizontally and vertically. Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D10310
2021-02-05Geometry Nodes: add Volume to Mesh nodeJacques Lucke
This node takes a volume and generates a mesh on it's "surface". The surface is defined by a threshold value. Currently, the node only works on volumes generated by the Points to Volume node. This limitation will be resolved soonish. Ref T84605. Differential Revision: https://developer.blender.org/D10243
2021-02-05Geometry Nodes: Add Attribute Proximity NodeVictor-Louis De Gusseme
This node calculates a distance from each point to the closest position on a target geometry, similar to the vertex weight proximity modifier. Mapping the output distance to a different range can be done with an attribute math node after this node. A drop-down changes whether to calculate distances from points, edges, or faces. In points mode, the node also calculates distances from point cloud points. Design task and use cases: T84842 Differential Revision: https://developer.blender.org/D10154
2021-02-04Merge branch 'blender-v2.92-release'Nathan Craddock
2021-02-04Fix T85357: Setting collection color restricted to View Layer modeNathan Craddock
Allow setting collection color in Scenes and Blender File outliner display modes in addition to View Layer mode.
2021-02-04Geometry Nodes: new Is Viewport nodeJacques Lucke
This node outputs true when geometry nodes is currently evaluated for the viewport and false for final renders. Ref T85277. Differential Revision: https://developer.blender.org/D10302
2021-02-04Merge branch 'blender-v2.92-release'Germano Cavalcante
2021-02-04Fix T85363: Cmd + Tab shortcut overridden on macOSJohannes Jakob
Adds an exception so that the key-binding `control + Tab` does not get duplicated as `command + Tab` on macOS because this is a global system shortcut for the app switcher. The key-binding `command + Tab` was shown for the operators “Toggle Graph Editor“ and “Toggle Dope Sheet” in Dope Sheet and Graph Editor, but only `control + Tab` actually worked. Differential Revision: https://developer.blender.org/D10304
2021-02-04Fix T79822: Custom preset casing not preservedAnkur Deria
When adding a new preset the name would be converted to lower case and then displayed in the interface in title case. This was confusing because the name didn't reflect what was typed, and there are many cases when the name shouldn't be forced into title case (like 8K UHDTV for example). This commit leaves the custom preset names in the original casing, and removes the conversion of filenames to title case for preset lists. Differential Revision: https://developer.blender.org/D10224
2021-02-04Presets: Cleanup preset namingNathan Craddock
Before committing D10224, bundled preset names that are lowercase need updating to title case for display in the UI. This changes several of the preset file names to title case, and fixes a couple of other naming issues in the preset names. A few strings in the code are also changed to reflect the new filename of the Blender keymap.
2021-02-03Geometry Nodes: Add Collection Info NodeSebastian Parborg
Implements a node to get collection objects. These objects are then passed along as instances in the node tree. Follow up tasks: Multiple nodes does not support instancing yet: T85159 Changing collection offset does not trigger a refresh: T85274 Reviewed By: Jacques, Dalai, Hans Differential Revision: http://developer.blender.org/D10151
2021-02-03UI: use system generated document icon on macOSJohannes Jakob
Adds Document Type Identifier configuration to use a system generated document icon for Blender files on macOS. The system composites the app’s icon and the extension name onto the document sheet icon (new style on macOS 11 Big Sur and old style on macOS 10.15 Catalina and earlier). This is in line with Apple’s Human Interface Guidelines. Removes the previously used file icon because it is no longer needed. Differential Revision: https://developer.blender.org/D10267
2021-02-02Force Fields: implement early filtering by the Affect flags.Alexander Gavrilov
Most fields have Affect Location and Rotation options that switch off their effect, but they are only checked as the last step after the force is already computed. It is more efficient to check it when building the list of field objects, just like zero weight. It is also possible to check the strength-related fields for 0. As an aside, this adds Location to Texture fields (they don't handle rotation) and both Location & Rotation checkboxes to Fluid Flow. Boid and Curve Guide remain without options for now as they are completely different from others. Differential Revision: https://developer.blender.org/D10087
2021-01-31Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-31Add Object Tool: make automatic axis selection an optionCampbell Barton
While useful in some cases, this meant it wasn't possible to use the "Floor" for object placement without looking top-down or bottom up.
2021-01-29Merge branch 'blender-v2.92-release'Philipp Oeser
2021-01-29UI: clarify edit-mesh face center behaviorCampbell Barton
- Grey out in wire/xray display. - Expand the description for when this is used. While this is working, the intended behavior wasn't clear, address T85177.
2021-01-29Docs: notes on the 2.7x keymapCampbell Barton
Note the key-map items that don't match the original 2.7x key-map, since some of these are quite obscure.
2021-01-29Cleanup: rename variables for gizmo templatesCampbell Barton
The abbreviation was from 'manipulator', which was changed to gizmo during development. Also correct operator description.
2021-01-29Cleanup: rename variables for gizmo templatesCampbell Barton
The abbreviation was from 'manipulator', which was changed to gizmo during development. Also correct operator description.
2021-01-29Merge branch 'blender-v2.92-release'Hans Goudey
2021-01-29Fix T83988: Active modifier outline uses search theme colorHans Goudey
The outline for the active modifier was abusing the property search match theme color, as noted in a comment. This commit adds a new theme color in RNA specifically for the active modifier outline.
2021-01-28Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-28Fix T85121: Sequencer key conflict with Lock & Select LinkedCampbell Barton
"Lock Strips" (Shift-L), conflicted with "Select Pick Linked". Use Ctrl-H, Ctrl-Alt-H for lock & unlock since selected linked uses bindings which are used in other parts of Blender.
2021-01-27Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-27Fix T81834: Images not properly duplicated in node_shader_utilsCampbell Barton
Oversight in fb10eaf6e8a4f959cd5d46fd1bb7e8fb26b67205
2021-01-27Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-27Merge branch 'blender-v2.92-release'Campbell Barton