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-02-02Draw Manager: Marked work around code.Jeroen Bakker
Mark the work around that was added for the VSE memory leak.
2021-12-18Function to return a list of keyframe segmentsChristoph Lendenfeld
Add a function that returns a list of keyframe segments A segment being a continuous selection of keyframes Will be used by future operators in the graph editor Reviewed by: Sybren A. Stüvel Differential Revision: https://developer.blender.org/D13531 Ref: D13531
2021-12-07Fix: Remove line from common invokeChristoph Lendenfeld
The line that sets the factor_prop in graph_slider_ops.c has been left in the common invoke function by accident. Reviewed by: Sybren A. Stüvel Differential Revision: https://developer.blender.org/D13477 Ref: D13477
2021-11-27Geometry Nodes: Optimize Cube primitive vertex calculationErik
This patch gets rid of the O(N^3) complexity of calculate_vertices. Execution time of the node is reduced from 250ms to 140ms with 500^3 vertices. In the future edge calculations could be done manually and reduce the execution time even further. Differential Revision: https://developer.blender.org/D13207
2021-11-23Fix: Const warning in editmesh_knife.cErik
Fixes a warning caused by freeing a const pointer. This commit removes the const modifier. Differential Revision: https://developer.blender.org/D13321
2021-11-18Node Editor: Change minimum zoomErik
Now with Geometry Nodes in Blender, trees can become much bigger than before. This changes the minimum zoom value in the node editor. Differential Revision: https://developer.blender.org/D13254
2021-11-17Cleanup: Correct copy paste error in commentAaron Carlisle
Mistake from rB2743d746ea4f38c098512f6dd6fc33d5a62429d3
2021-10-26Distance Scrambling for for Cycles X - Sobol versionWilliam Leeson
Cycles:Distance Scrambling for Cycles Sobol Sampler This option implements micro jittering an is based on the INRIA research paper [[ https://hal.inria.fr/hal-01325702/document | on micro jittering ]] and work by Lukas Stockner for implementing the scrambling distance. It works by controlling the correlation between pixels by either using a user supplied value or an adaptive algorithm to limit the maximum deviation of the sample values between pixels. This is a follow up of https://developer.blender.org/D12316 The PMJ version can be found here: https://developer.blender.org/D12511 Reviewed By: leesonw Differential Revision: https://developer.blender.org/D12318
2021-10-26GPencil: Fix(unreported) Dash modifier wrong logic.YimingWu
When the modifier iterates to an empty layer with no frame it will return, while the correct logic is to continue.
2021-10-25UI: Use flat colors for NLA strip drawingPablo Vazquez
The NLA editor is in need of a design overhaul, hopefully for 3.1 or 3.2. This should be a project on itself, however, the worst offender currently is the use of gradients on strips. Something that can be fixed easily. {F11390293, size=full, loop, autoplay} A simple replace of `UI_draw_roundbox_shade_x` for `UI_draw_roundbox_4fv` brings strips in line with how other areas are drawn. This patch also: * Remove embossed lines around active action channel. * Highlight the strip while being moved. This patch does not include any theme changes. This will be tackled separately. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D12968
2021-10-20Fix: Add cast to atof for CYCLES_CONCURRENT_STATES_FACTOR env variable parsing.William Leeson
The conversion from double to float was causing a build failure. Differential Revision: https://developer.blender.org/D12946
2021-10-15UI: View2D: Align vertical indicators to viewPablo Vazquez
In editors with vertical scale indicators, such as Graph Editor, Drivers, or VSE, display the values aligned to the view. Also add a shadow (similar to the 3D View info) to improve readability when the text is on top of curves, strips, or other content. {F10987240, size=full} Reviewed By: Severin Differential Revision: https://developer.blender.org/D12809
2021-10-04Cleanup: Reverting submodules hashDalai Felinto
This partially reverts commit e62ce9e08e919f25aad444f378947f6be932730f.
2021-10-04Fix camera border bug in passepartout render viewSimon Lenz
{F10761402} With active viewport render from camera view, the camera border shows up, even when passepartout and overlays are disabled. By moving the line-drawing code to the passepartout section, it is effectively disabled when passepartout is off. Reviewed By: sebastian_k Differential Revision: https://developer.blender.org/D12745
2021-09-26LineArt: Smooth tolerance value for chaining.YimingWu
smooth out jaggy lines with a given threshold. For each point in a stroke, the ones with in a given distance of its previous segment will be removed, thus "zig-zag" artefacts can be cleaned up. Reviewed By: Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D12050
2021-09-22Geometry Nodes: Curve Fillet Nodedilithjay
This node can be used to fillet splines at control points to create a circular arc. The implementation roughly follows T89227's design. The node works in two main modes: Bezier and Poly * Bezier: Creates a circular arc at vertices by changing handle lengths (applicable only for Bezier splines). * Poly: Creates a circular arc by creating vertices (as many as defined by the Count fields input) along the arc (applicable for all spline types). In both modes, the radius of the created arc is defined by the Radius fields input. The Limit Radius attribute can be enabled to prevent overlapping when the defined radius exceeds the maximum possible radius for a given point. Reviewed By: Hans Goudey Differential Revision: https://developer.blender.org/D12115
2021-09-15GPencil: Dot dash modifier.YimingWu
Create dot-dash effect for grease pencil strokes. User can manually edit the length, gap and styles for each segment of dashed lines. The values in each segment can all be key-framed to make animations. Reviewed By: Hans Goudey (HooglyBoogly), Antonio Vazquez (antoniov) Differential Revision: http://developer.blender.org/D11876
2021-08-18Fix T90695: Lower tile splitting limit for lineartYimingWu
Lowers tile splitting limit so models with extremely dense mesh portions could still have reasonable performance while for more common cases the performance impact should be minimal. Reviewed By: Sebastian Parborg (zeddb), Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D12236
2021-07-26Fix: Instantly hide bones after hitting H key in pose slidingChristoph Lendenfeld
When using a pose slider it is possible to hide bones with the 'H' key. Before this patch the screen didn't update, so you had to move the mouse 1 pixel to update. This patch makes it so it updates right away Reviewed by: Sybren A. Stüvel Differential Revision: https://developer.blender.org/D12024 Ref: D12024
2021-07-26Cleanup: Rearrange mesh extraction filesGermano Cavalcante
In the draw module, it's not easy to identify what its header is, and where the shared functions are. So move `draw_cache_extract_mesh_extractors.c` and `draw_cache_extract_mesh_private.h` to the same folder as the extractors and rename these files to make them more identifiable. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11991
2021-07-20Cleanup: Remove redundant forward declarations.Jeroen Bakker
2021-06-16LineArt: Cached calculation for modifiers in the same stack.YimingWu
This allows line art to run only once for each modifier stacks, with an option to toggle a specific line art modifier should use cache or re-do their own calculations. Reviewed By: Sebastian Parborg (zeddb), Hans Goudey (HooglyBoogly) Differential Revision: https://developer.blender.org/D11291
2021-06-11Refactor: Draw Cache: use 'BLI_task_parallel_range'Germano Cavalcante
This is an adaptation of {D11488}. A disadvantage of manually setting the iter ranges per thread is that we don't know how many threads are running in the background and so we don't know how to best distribute the ranges. To solve this limitation we can use `parallel_reduce` and thus let the driver choose the best distribution of ranges among the threads. This proved to be especially beneficial for computers with few cores. **Benchmarking:** Here's the result on an 4-core laptop: ||master:|PATCH: |---|---|---| |large_mesh_editing:|Average: 5.203638 FPS|Average: 5.398925 FPS ||rdata 15ms iter 43ms (frame 193ms)|rdata 14ms iter 36ms (frame 187ms) Here's the result on an 8-core PC: ||master:|PATCH: |---|---|---| |large_mesh_editing:|Average: 15.267482 FPS|Average: 15.906881 FPS ||rdata 9ms iter 28ms (frame 65ms)|rdata 9ms iter 25ms (frame 63ms) |large_mesh_editing_ledge: |Average: 15.145966 FPS|Average: 15.520474 FPS ||rdata 9ms iter 29ms (frame 65ms)|rdata 9ms iter 25ms (frame 64ms) |looptris_test:|Average: 4.001917 FPS|Average: 4.061105 FPS ||rdata 12ms iter 90ms (frame 236ms)|rdata 12ms iter 87ms (frame 230ms) |subdiv_mesh_cage_and_final:|Average: 1.917769 FPS|Average: 1.971790 FPS ||rdata 7ms iter 37ms (frame 261ms)|rdata 7ms iter 31ms (frame 258ms) ||rdata 7ms iter 38ms (frame 252ms)|rdata 7ms iter 33ms (frame 249ms) |subdiv_mesh_final_only:|Average: 6.387240 FPS|Average: 6.591251 FPS ||rdata 3ms iter 25ms (frame 151ms)|rdata 3ms iter 16ms (frame 145ms) |subdiv_mesh_final_only_ledge:|Average: 6.247393 FPS|Average: 6.596024 FPS ||rdata 3ms iter 26ms (frame 158ms)|rdata 3ms iter 16ms (frame 148ms) **Notes:** - The improvement can only be noticed if all extracts are multithreaded. - This patch touches different areas of the code, so it can be split into another patch if the idea is accepted. These screenshots show how threads behave in a quadcore: Master: {F10164664} Patch: {F10164666} Differential Revision: https://developer.blender.org/D11558
2021-06-11Sequencer: Transform ImBuf Processor.Jeroen Bakker
Inside the sequencer the cropping and transform of images/buffers were implemented locally. This reduced the optimizations that a compiler could do and added confusing code styles. This patch adds `IMB_transform` to reduce the confusion and increases compiler optimizations as more code can be inlined and we can keep track of indices inside the inner loop. This increases end-user performance by 30% when playing back aa video in VSE. Reviewed By: ISS, zeddb Differential Revision: https://developer.blender.org/D11549
2021-06-11Nodes: move mix rgb node to C++Charlie Jolly
Prepare node for conversion to Geometry Nodes. There should be no functional changes. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D11506
2021-06-10Fix T88546: Pose slider typed input not workingChristoph Lendenfeld
Remove an unnecessary call to pose_slide_mouse_update_percentage That call was overriding the typed value Reviewed By: #animation_rigging, Sybren A. Stüvel Differential Revision: https://developer.blender.org/D11395 Ref D11395
2021-06-08LineArt: Threaded Object Loading.YimingWu
Move BMesh conversion and all loading code into worker. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D11288
2021-06-08Revert "Improve multires performance."Joseph Eagar
. . .because I accidentally committed submodule references. This reverts commit 482465e18aa7c9f74fcb90ec1002f157a580e240.
2021-06-08Improve multires performance.Joseph Eagar
Added a new api function to stich multires grids on specific faces in a mesh, subdiv_ccg_average_faces_boundaries_and_corners, and changed multires normal calc to use it. VTune profiling showed that this was a major performance hit once you get above 10,000 or so base mesh faces and/or have a high number of subdivision levels. Here's a video comparing the difference. Note the bpy.app_debug switch is not in the final commit. {F10145323} And the .blend file: {F10145346} Reviewed By: Sergey Sharybin (sergey) Differential Revision: https://developer.blender.org/D11334
2021-06-01Cleanup: remove unused parameter.Jeroen Bakker
2021-05-14Collada import: connect Emission texture to Emission socketScurest
An emission texture is currently connected to the Base Color socket. It should connect to the Emission socket, like a constant does. Reviewed By: gaiaclary Differential Revision: https://developer.blender.org/D10990
2021-04-30Python GPU: Add reference of PyObject GPU object to the GPU object itselfGermano Cavalcante
Instead of creating different python wrappers for the same GPU object, return the same `PyObject` created earlier. This also allows for more secure access to existing GPU objects. Reviewed By: brecht Differential Revision: https://developer.blender.org/D11044
2021-04-15Fix T87171: Update multi input socket indicesFabian Schempp
When inserting a node on top of a link, the multi input socket indices weren't updated. This fixes that and keeps the relative order of the links the same. Author: Wannes Malfait Reviewed By: Fabian Schempp Differential Revision: https://developer.blender.org/D10969
2021-04-14Fix (unreported) compositor resolution propagation broken by some nodesManuel Castilla
Some operations may use no preferredResolution ({0, 0}) when calling determineResolution on inputs to check if they have resolution on their own. See MixOperation or MathOperation determineResolution implementation. In such cases {0, 0} resolution ends up being set when an input doesn't have own resolution, breaking propagation of the original preferredResolution. They don't mean to set it as resolution, it's just a check. This patch only allows to set valid resolutions (>0). When it's 0 it may be understood as "No preferred or determined resolution" so it should not be set to give output operations another chance of finding a proper resolution by calling determineResolution again with a different preferredResolution. Test file: {F9932526} Reviewed By: #compositing, jbakker Differential Revision: https://developer.blender.org/D10972
2021-03-09Cleanup: add resource manager for cryptomatte session.Jeroen Bakker
Auto frees cryptomatte session when it the pointer is collected from the stack. Reviewed By: Jacques Lucke Differential Revision: https://developer.blender.org/D10667
2021-03-08Speedup for usual non-manifold exact boolean case.Howard Trickey
The commit rB6f63417b500d that made exact boolean work on meshes with holes (like Suzanne) unfortunately dramatically slowed things down on other non-manifold meshes that don't have holes and didn't need the per-triangle insideness test. This adds a hole_tolerant parameter, false by default, that the user can enable to get good results on non-manifold meshes with holes. Using false for this parameter speeds up the time from 90 seconds to 10 seconds on an example with 1.2M triangles.
2021-03-01Build-system: Use C-linkage for internal interface headerJulian Eisel
That way the header can be included in C++ files.
2021-02-23Fix T84707: Wrong icon for Movie Clip EditorYevgeny Makarov
Sync the list of icons in CMakeLists.txt with UI_icons.h. Restore, in the source file, the FUND icon that was accidentally deleted. Delete four old/unused icons. See also D9715.
2021-02-22GPU Python: Use 'PyC_ParseStringEnum' to parse itemsGermano Cavalcante
Currently the GPU module for python has different ways to handle enums. - Organizing items in `PyC_StringEnumItems` arrays and parsing them with `PyC_ParseStringEnum`. - Using dedicated functions for each type of enum (`bpygpu_ParsePrimType`, `pygpu_ParseVertCompType` and `pygpu_ParseVertFetchMode`). Although apparently more efficient (especially `pygpu_ParseVertCompType` which transforms strings into integers for simple comparison), these dedicated functions duplicate functionality, increase the complexity of the code and consequently make it less readable. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D10456
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-01-13Revert "Fix T79356: Improved icons for MSIX builds"Jeroen Bakker
This reverts commit 78011d712dc311768a501b31917f2eef27af753b.
2021-01-13Fix T79356: Improved icons for MSIX buildsEric Bickle
Fixed an issue that was causing the app icon to render with a 'plated' background color in the taskbar and other areas of Windows. Updated all app icons in Microsoft Store package to match Microsoft's design recommendations. Added multiple scales for app icons for high resolution displays. Added high contrast app icons. Reviewed By: pablovazquez, jmonteath Maniphest Tasks: T79356 Differential Revision: https://developer.blender.org/D9681
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-01Fix T83275: Crash with scene statics and empty scenePablo Dobarro
ob can be NULL, so it needs to be checked before accessing ob->mode Differential Revision: https://developer.blender.org/D9680
2020-11-30Cleanup hardcoded render percentage to factor conversionMonique Dewanchand
During revision of {D8952} one of the comments was to make a function that converts the render percentage to a factor. This to avoid code duplication. However the duplicated code was already all over the compositor code. So in order to avoid this code duplication for {D8952} I propose to first cleanup the duplicated code and build patch {D8952} based on this clean up. The method that converts the render percentage to a factor is put in the CompositorContext. Why? The CompositorContext keeps DNA information like the renderdata. DNA, and thus the CompositorContext, keeps the size of the render resolution in percentage (user oriented). The compositor needs the size of the render resolution as a factor. So the CompositorContext seems like the obvious place to have this conversion method. Why not in de NodeBase? The method could've been added to the nodebase, but I wanted to keep the nodebase as clean as possible and not put simple "conversion" methods into this base class. Also I didn't really like the call flow: you'd always have to get the renderdata size from the context and then convert. Putting it in the CompositorContext avoids this extra invoke of a call. Why not in the Converter? See nodebase. And the Converter seems more like a class for "structural" and complex node tree conversions. Not the simple conversions. Reviewed By: Sergey Sharybin Differential Revision: https://developer.blender.org/D9566
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-10-15Improve Voxel Remesher volume projection artifacts on sharp edgesLeha
The voxel remesher was using the voxel size to limit the shrink-wrap projection distance. Now that distance is increased to help preserving more detail on hard surface edges. Reviewed By: pablodp606 Differential Revision: https://developer.blender.org/D6204
2020-09-25Fix Tests for Weld Modifier with KD-TreeHenrik Dick
Fixes the failing tests and reintroduces the KD-Tree solution. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D9013
2020-09-22Fix T81026: Image Editor: Alpha (like Bloom) not showing properlyJeroen Bakker
With the new image editor drawing there were was some mutual exclusive functionality. When rendering the alpha was shown correctly or the pure emissive colors were shown correctly, but never both. The cause of this is that the image_gpu did not used the correct alpha mode when generating gpu textures for non-images (render results, compositors viewer) The implementation always checked the alpha_mode. Alpha mode is an attribute for images, but aren't set for non images. This patch adds a more detailed check to ensure that the gpu texture is premultiplied. The issue has been tested using several bug report files and production files. Reviewed By: Brecht van Lommel Differential Revision: https://developer.blender.org/D8978
2020-09-18Overlay: Fade Inactive GeometryPablo Dobarro
This implements a new overlay that blends the bakground color over the objects that are not in the same mode as the active object, making them fade with the background. This is especially needed for sculpt mode as there is no other overlay or indication in the viewport to display which object is active. This is intended to be used with D7510 in order to have a faster workflow when sculpting models with multiple objects. Reviewed By: fclem Differential Revision: https://developer.blender.org/D8679