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-03-03macOS/Ghost: Fix memory leak.Corbin Dunn
`new` allocates a new object that needs to be autoreleased. Reviewed By: #platform_macos, sebbas, ankitm Maniphest Tasks: T86222 Differential Revision: https://developer.blender.org/D10597
2021-03-03EEVEE: Avoid old files with too many volume shadow sample being too slowClément Foucault
This clamp the volumetric shadow samples to the actual old max to avoid problematic slowdown after the bugfix rB3a29c19b2bff.
2021-03-03EEVEE: SSS: Fix light leaking bewteen object at different depthsMikhail
The SSS shader in Eevee has the following drawbacks (elaborated in {T79933}): 1. Glowing 2. Ringing. On low SSS jittering it is rendered a bunch of sharp lines 3. Overall blurriness due to the nature of the effect 4. Shadows near occlusions as in T65849 5. Too much SSS near the edge and on highly-tilted surfaces {F9438636} {F9427302} In the original shader code there was a depth correction factor, as far as I can understand for fixing light bleeding from one object to another. But it was scaled incorrectly. I modified its scale to depend on SSS scale*radius and made it independent from the scene scale. The scale parameter (`-4`) is chosen so that it makes tilted surfaces to have visually the same SSS radius as straight surfaces (surfaces with normal pointed directly to the camera). This depth correction factor alone fixes all the problems except for ringing (pt. 2). Because of float-point precision errors and irradiance interpolation some samples near the border of an object might leak light, causing sparkly or dashed (because of aliasing) patterns around the highlights. Switching from `texture()` to `texelFetch()` fixes this problem and makes textures on renders visually sharper. An alternative solution would be to detect object borders and somehow prevent samples from crossing it. This can be done by: 1. Adding an `object_id` texture. I think it requires much more code changing and makes the shader more complicated. Again, `object_id` is not interpolatable. 2. Watch gradient of depth and discard samples if the gradient is too big. This solution depends on scene scale and requires more texture lookups. Since SSS is usually a minor effect, it probably doesn't require that level of accuracy. I haven't notice it in practice, but I assume it can make visible SSS radius slightly off (up to 0.5 px in screen space, which is negligible). It is completely mitigated with render sampling. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D9740
2021-03-03EEVEE: SSR: Check reflection ray against geometric normalClément Foucault
This improve self intersection prevention. Also reduce the bias that was making a lot of rays not being shoot at grazing angles.
2021-03-03EEVEE: Add ensure_valid_reflection to glossy closuresClément Foucault
This is ported from Cycles and fixes issues with bump/normal mapping giving weird reflections/lighting. Fixes T81070 Specular light should be limited to normal pointing toward the camera Fixes T78501 Normal mapping making specular artifact
2021-03-03Fix compiler issues introduced in recent commit.Jeroen Bakker
{73af762e9cd595ea708647c02c7e74752d844e80}
2021-03-03Cleanup: use zero_v3 to clear colors.Jeroen Bakker
2021-03-03Cleanup: Make node_composite_cryptomatte CPP.Jeroen Bakker
Core API of cryptomatte is also CPP.
2021-03-03Cleanup: clang tidyJacques Lucke
Warnings: * readability-inconsistent-declaration-parameter-name * readability-redundant-smartptr-get
2021-03-03Cleanup: clang tidyJacques Lucke
Can use const parameter.
2021-03-03Cleanup: clang tidyJacques Lucke
Warning: else-after-return/break
2021-03-03Cleanup: make formatJacques Lucke
2021-03-03Fix (unreported) Outliner missing updates copying IDs via pythonPhilipp Oeser
Steps to reproduce: - switch to Scripting workspace - execute bpy.data.meshes['Cube'].copy() - Outliner will not show the new mesh immediately Now just send appropriate notifier. Differential Revision: https://developer.blender.org/D10584
2021-03-03Nodes: store references to bNodeLinks in NodeTreeRefJacques Lucke
Sometimes it is useful to have this information available to be able to read information from links.
2021-03-03Fix crash when dragging nodesHans Goudey
The `bNodeLinkDrag` struct was NULL when dragging a node instead of a link. It is allocated with `calloc` anyway, so this field doesn't need to be explitely cleared.
2021-03-03Cleanup: minor changes to Python RNA pointer assignmentCampbell Barton
Don't assign the BPy_StructRNA a value which can be 'None', instead, set it to NULL.
2021-03-03Cleanup: Use span and float matrix type in direct boolean codeHans Goudey
This commit includes a few simple improvements to the direct mesh boolean code added recently. - Passing the transforms and meshes to `direct_mesh_boolean` as spans makes the function easier to call from C++. - The definition of `TransMat`, was unecessary when we have the `float4x4` type already used elsewhere in C++ code. Differential Revision: https://developer.blender.org/D10592
2021-03-03Fix T85966: Wrong link picked when dragging multi-input socketFabian Schempp
The socket drag operator stored the index of the last picked socket into RNA in case the mouse cursor leaves the link while dragging. This id was not unique which is why sometimes a link from an other node with the same id is picked. This patch changes the way the last picked link is stored and stores a pointer to the link directly into bNodeLinkDrag struct instead. Differential Revision: https://developer.blender.org/D10590
2021-03-02Cleanup: spelling, minor correctionsCampbell Barton
Also use doxygen comments for sculpt functions.
2021-03-02Python API: Expose CurveMapping Reset View functionPatrick Busch
The Python API for the curve mapping widget offers the `update` function, but no way to reset the view to the clipping rectangle. This commit adds a blenkernel function for this operation, and exposes it to the CurvMapping RNA API. This allows addons to display a more user-friendly view of the data in this widget. Differential Revision: https://developer.blender.org/D10561
2021-03-02Geometry Nodes: Attribute search drop-downHans Goudey
This commit adds a search for existing attributes when you click on an attribute field. This is useful because otherwise you have to remember which attributes should be available at each node in the tree. The fundamental complication is that this information is not accessible statically. So the search data is only a cache from the previous node tree evaluation. The information is added with `BKE_nodetree_attribute_hint_add`, currently for every input geometry socket for a single node. This is only an initial implementation, and later versions will expose the data type and domain of the attributes. Differential Revision: https://developer.blender.org/D10519
2021-03-02UI: Rename search button variableHans Goudey
I landed D10527 in rB1a8aee0a7cec accidentally, and the version there was missing a name change discussed in review. This commit just renames the boolean variable controlling the special behavior for attribute search. Original message meant for this change: For geometry nodes we will use search buttons to display a list of attributes available the last time the node tree was executed (D10519). Because this list is just a hint, we need to be able to enter any string, not just strings from the search items. This patch adds a boolean option to string buttons to enable this. The change is quite simple, changes to behavior are only required in two places. The type-specific button struct changes help a lot here. Differential Revision: https://developer.blender.org/D10527
2021-03-02CMake/deps: Append platform CFLAGS and LDFLAGS to Python build to ensure ↵Sebastián Barschkis
compatibility with minimum macOS version Similarly to other dependencies, the Python build should make use of the default CMake arguments. On macOS, for example, these arguments are required to set the deployment target correctly. See also: https://devtalk.blender.org/t/compiling-latest-branch-on-macos-fails-undefined-symbol/17649 Reviewed By: brecht, sybren Differential Revision: https://developer.blender.org/D10498
2021-03-02UI: Clean up labels and descriptions: "Draw" to "Display"William Reynish
In Blender, we used to use the term 'draw' to refer to information displayed to the user. For version 2.80, it was decided to change these instances to 'display' instead. This was to avoid the ambiguity between end-user drawing tools and display options. From the Oxford English Dictionary: - Draw: produce (a picture or diagram) by making lines and marks on paper with a pencil, pen, etc. - Display: show (data or an image) on a computer, television, or other screen. Therefore, we should use draw when referring to drawing tools for making marks, but use display when referring to information shown/displayed to the user. From a user POV, the computer displays certain information, whereas the user draws a mark. Apparently this change was not implemented consistently, so this patch changes all remaining relevant instances of "draw". Differential Revision: https://developer.blender.org/D10551
2021-03-02UI: Expose an "is first search" boolean to search button callbacksHans Goudey
Currently when you open an RNA collection search button, like a vertex group selector, the search filter isn't applied until you start typing, in order to display every option at the start. Otherwise they wouldn't be visible, since the search filter would run for the current text. Currently this check happens in one place, but it relies on the `changed` value of `uiBut`. This is fine in the interface directory, but anywhere else it would require exposing `uiBut.changed`, which is probably too low-level to expose. The solution is adding an `is_first` argument to the search callbacks, which is nice for a few reasons: - They work at a higher level of abstraction, meaning they don't have to worry about how exactly to tell if this is the first search. - It makes it easier to do special behavior when the search menu is first opened. - Then, obviously, it makes that state accessible without including `interface_intern.h`. Needed for attribute search: T85658 Differential Revision: https://developer.blender.org/D10528
2021-03-02Fix Node UI Storage Threading IssuesHans Goudey
Since the same node tree can be used in modifiers on different objects, there can be multiple threads writing to the maps in the node tree UI storage at the same time. The additions for attribute name hints and error messages made it so this would often cause a crash or at least an ASAN report. This patch adds locks to prevent multiple threads from using the maps concurrently. In a brief test I actually didn't observe a crash without the global `bNodeTree` UI storage mutex, but I think it's necessary for the change to be correct, and I did notice some unfreed memory without it anyway. Ideally it would be in a node tree runtime struct though. Differential Revision: https://developer.blender.org/D10577
2021-03-02EEVEE: Fix incorrect volumetric light shadowingClément Foucault
The shadowing was computed on the light distance squared, leaking to much light since it was integrating the extinction behind the ligth itself. Also bump the maximum shadow max step to the actual UI values. Otherwise we get shadowing under evaluated because `dd` is too small.
2021-03-02Fix (unreported) light cache bake crashPhilipp Oeser
missing NULL check if there is no cache there to begin with. Differential Revision: https://developer.blender.org/D10581
2021-03-02Fix Fuild error with lite buildRichard Antalik
With audaspace disabled, function SEQ_add_sound_strip was declared as prototype.
2021-03-02Sculpt: Expand OperatorPablo Dobarro
Expand is a new operator for Sculpt Mode which is intended to be the main tool for masking, Face Set editing, interacting with the filters and pattern creation. The fundamentals of the tool are similar to the previous sculpt.mask_expand operator. It shares the same default shortcuts and functionality, making the previous operator obsolete. The shortcuts to execute the operator are: - Shift + A: Expand mask - Shift + Alt + A: Expand mask by normals - Shift + W: Expand Face Set - Shift + Alt + W: Resize current Face Set The main changes compared to the previous sculpt.mask_expand operator are: - Modal keymap, all operator options can be changed in real time while the operator is running. - Supports creating Mask, Face Sets and Sculpt Vertex Colors. - Much better code, new features can be easily integrated. Limitations: - All Mask operations are supported for Sculpt Vertex colors, but not exposed by default as their support is still experimental. - Dyntopo does not support any Face Set or Sculpt Vertex Colors. functionality (they are not implemented in general for Dyntopo). - Multires does not support any feature related to geodesic distances. - Multires does not support vertex colors. - Multires does not support recursions. - In Multires, Face Sets snaping does not initialize all current enabled Face Sets when toggling snapping. - In Multires, Face Sets are created at base mesh level (works by this by design, like any other tool). - Unlike the previous mask_expand operator, this one does not blur the mask by default after finishing Expand as that does not fit the new design. The mask can still be blurred by using the mask filter manually. Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D10455
2021-03-02Fix T86026: Crash Opening Cryptomatte File.Jeroen Bakker
Not sure this fixes the root cause. It seems that memory corruption happens in dynstr. This patch replaces dynstr with a streamstring.
2021-03-02Fix crash on NULL dereferenceRichard Antalik
Caused by e1f3996d740c, `seq_update_meta_disp_range()` did not check if sequencer data exists.
2021-03-02Fix T86122: Performance Debug View Viewport Not WorkingJeroen Bakker
The performance debug menu isn't used that often anymore as render doc also show the timings. This patch will make sure that enabling the performance debug view (21) does not crash blender.
2021-03-02Cleanup: remove unused argumentsRichard Antalik
2021-03-02Fix error in rBb9e1cc931ee9Clément Foucault
Bad copy paste...
2021-03-02Fix T86138 EEVEE: Bake Indirect Lighting crash in 2.93 with older filesClément Foucault
This was caused by a missing version check.
2021-03-02Fix T86172: check if attribute is actually accessibleJacques Lucke
The crash happened when the density in the Point Distribute node was above zero but so small, that no point was generated. In this case, there was a point cloud component, but the point cloud was empty, making some attributes unavailable. One could also make more attributes available in this case, but that can be done separately if necessary.
2021-03-02EEVEE: Depth of field: Do not shrink highlights when using overblurClément Foucault
This fixes the issue of bokeh size being smaller when using overblur. The additional overblur needs to be centered on the outer radius.
2021-03-02VSE: Refactor meta operatorsRichard Antalik
Move low level logic to module code and versioning logic to versioning code. Metas strip position was handled in diffrent way compared to other strips. This was introduced in c8b0d25794be as bugfix for T28158. I disagree with such design. Meta strips should be handled in same way as any other strips. I have tested this change and haven't found any problems. No problems after checking T28158 as well. There should be no functional changes on user level. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D9972
2021-03-02Fix T85981, part II: bone's custom shape disappear on undo in some cases.Bastien Montagne
Nicely hidden bug in pose read library code, it was using the library from the wrong ID as reference to relink the custom shape object pointer (pose is data from Object, not Armature).
2021-03-02Fix T85970: Incorrect scaling of meta stripsRichard Antalik
This is same issue as fixed by d85789255320, but I forgot to check meta strips. Meta strip output is always in render size. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10560
2021-03-02FFmpeg: Improve scrubbing performanceRichard Antalik
Applying negative offset to seek position before scanning doesnn't have any effect. This change results in 1.5x faster seeking (random frame, average value) in sample file with 30 frame GOP length. If I am not mistaken, B frames can have pts that can be less than pts of I frame that must be decoded. Even in this case though, B frame packet will be stored after that I frame. In addition, preseek value is de facto hardcoded so seeking would fail if it could. This can be hard to spot though. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10529
2021-03-02VSE: Refactor VSE strip loading codeRichard Antalik
Isolate RNA and operator logic from functions that create strips. - Operator specific code was removed from `SeqLoadInfo` structure and `SEQ_add_*` functions. - Strip loading code was removed from RNA and operator functions. - `SEQ_add_*` API was unified to work on `SeqLoadData` struct. Only exception is image strip, which require files to be loaded separately to strip creation itself. This is not ideal, but I think it's acceptable. - Some functions and variables were refactored so the code reads better. There are minor functional changes (coincidental bugfixes): - Operator errors are reported per-strip. Previously they were not reported at all? - `new_sound()` RNA API function now create sound with length of 1 if source file does not exist. Previously it created strip with length of 0. - Replace selection operator property wasn't working correctly. Fixed in this patch. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9760
2021-03-02Geometry Nodes: show "Show Texture in texture tab" buttonPhilipp Oeser
This enables the quick access button [to show the relevant Texture in the Properties Editor] for textures used in geometry nodes. This goes in line to what we do for other textures: - modifier textures have this button - particle textures have this button - brush textures will soon have it, too (see D9813) When outside of the Properties Editor, the button will always show (if a texture is actually assigned), but will be inactive if no suiting Properties Editor to show the texture in can be found. Note this also changes the behavior to not show the button if _no_ texture is assigned (as in: we are still showing the "New" button). Previously it was always there (e.g. for modifier textures), even if it would take us to an empty texture tab. (Sure, we could add a texture there then, but imho it makes more sense to just start showing it once a texture is already there) For this to work with geometry nodes, the following chages were done: - implement foreachTexLink for geonode modifiers - new buttons_texture_user_node_property_add() that stores prop as well as node - also use NODE_ACTIVE_TEXTURE flag in geometry nodetrees notes: - this still uses the first suiting (as in: pinning does not interfere) Properties Editor it finds, this should (maybe?) find the _closest_ Property Editor instead (see related feedback in D9813). - this will already show the button for brush textures as well (disabled), but there is another mandatory change in an upcomming commit to make it work there as well (see D9813) ref. T85278 Maniphest Tasks: T85278 Differential Revision: https://developer.blender.org/D10293
2021-03-02Cleanup: RNA: Remove useless setter of PoseBone's custom shape.Bastien Montagne
If the property is properly tagged, RNA knows how to deal with ID usercount by itself, no need of a custom setter callback for that.
2021-03-02Cryptomatte: Read metadata from multilayer OpenEXR.Jeroen Bakker
Currently the compositor reads cryptomatte meta-data from the render result. When loading a multilayer open exr file the meta-data was ignored. This patch will also load the cryptomatte meta-data from multilayer open exr files. This enabled workflows where the rendering and compositing are done in separate scenes or for future changes where the cryptomatte node will use the meta-data for name matching and color picking. Reviewed By: Sergey Sharybin Differential Revision: https://developer.blender.org/D10384
2021-03-02Cryptomatte: Session from Existing Render Result.Jeroen Bakker
Utility to construct a cryptomatte session from a render result or openexr file. This will allow D3959 to be more aware of the context it is working on and would also support external render engines in the cryptomatte color picker.
2021-03-02Fix click-drag regression in fix for T86116Campbell Barton
1638af109e46522a1a24645289016922bb9ca977 & bfc70a6a958b9c35bde765ea8a02e8b1fd36db8b caused a regression with click-drag (not tweak which has it's own logic). Restore some changes from these commits with added comments. Minor changes from previous functionality from 39919e35326c732141bfd2d740b19000b6bc1d51. - `prevval` & `prevtype` are now set for all kinds of new events in the queue previously this was not done for some kinds of events (mouse wheel, ndof - for example). - Set `prevval` & `prevtype` for other windows for mouse buttons.
2021-03-02WM: log errors when wmWindow.eventstate values are invalidCampbell Barton
Ensure they're working as documented (only for debug builds).
2021-03-02WM: window.event_simulate now sets previous values properlyCampbell Barton
Match wm_event_add_ghostevent behavior for setting previous values.