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
path: root/source
AgeCommit message (Collapse)Author
2021-05-26LibOverride: add helper to retrieve override data from an ID.Bastien Montagne
Embedded IDs do not own their own override data, but rather use the one from their owner.
2021-05-26IDManagement: Shapekey: add a `owner_get` callback.Bastien Montagne
Even though shepkeys are not strictly speaking an embedded data, they share quiet a few points with those, and from liboverride perspective they are embedded, so...
2021-05-26LibOverride: Do not try to generate override data of linked data.Bastien Montagne
This is obviously not saved, and should never be editable, so was only a waste of time.
2021-05-26ID management: remapping: add flag to enforce refcounting handling.Bastien Montagne
While indeally we should only skip refcounting when relevant tag is set, doing this in remapping code is too risky for now. Related to previous commit and T88555.
2021-05-26ID management: Do not assume that `NO_MAIN` means `NO_USER_REFCOUNT`Bastien Montagne
While this is still very fuzzy in current code, this old behavior makes it close to impossible to efficiently use out-of-main temp data, as it implies that we'd need to update refcounts everytime we add something back into BMain (an 'un-refcount' ID usages when removing from BMain). Now that we have two separate flags/tags for those two different things, let's not merge them anymore. Note that this is somewhat on-going process, still needs more checks and cleanup. Related to T88555.
2021-05-26DrawManager: Use Compute Shader to Update Hair.Jeroen Bakker
This patch will use compute shaders to create the VBO for hair. The previous implementation uses tranform feedback. Timings master (transform feedback with GPU_USAGE_STATIC between 0.000069s and 0.000362s Timings transform feedback with GPU_USAGE_DEVICE_ONLY. between 0.000057s and 0.000122s Timings compute shader between 0.000032 and 0.000092s Future improvements: * Generate hair Index buffer using compute shaders: currently done single threaded on CPU, easy to add as compute shader. Reviewed By: fclem Differential Revision: https://developer.blender.org/D11057
2021-05-26GPU: Compute Pipeline.Jeroen Bakker
With the compute pipeline calculation can be offloaded to the GPU. This patch only adds the framework for compute. So no changes for users at this moment. NOTE: As this is an OpenGL4.3 feature it must always have a fallback. Use `GPU_compute_shader_support` to check if compute pipeline can be used. Check `gpu_shader_compute*` test cases for usage. This patch also adds support for shader storage buffer objects and device only vertex/index buffers. An alternative that had been discussed was adding this to the `GPUBatch`, this was eventually not chosen as it would lead to more code when used as part of a shading group. The idea is that we add an `eDRWCommandType` in the near future. Reviewed By: fclem Differential Revision: https://developer.blender.org/D10913
2021-05-26GPencil: Add option to disable masks in view layerFalk David
This patch adds an option in the Layers > Relations panel called "Disable Masks in Render". When checked, no masks on this layer are included in the render. Example: | {F10087680} | {F10087681} | See T88202 for why this is needed. Reviewed By: antoniov Maniphest Tasks: T88202 Differential Revision: https://developer.blender.org/D11234
2021-05-26Merge branch 'blender-v2.93-release'Falk David
2021-05-26Fix: GPencil mask shows in view layer renderFalk David
Currently when rendering the view layer of a grease pencil layer that has a mask layer attached, the mask layer would show in the rendered image. This is inconsistent with the default behaviour with no mask on the grease pencil layer, because it would only render what's on that particular layer and not anything from any other layer. This patch makes the masks invisible in the render. Note: This might seem like not the best solution, but because masks are just regular grease pencil layers, it's tricky to pass this edge-case to the drawing code. The way it is handled right now is the best I could come up with, without making changes that could affect something else. Reviewed By: antoniov Maniphest Tasks: T88202 Differential Revision: https://developer.blender.org/D11403
2021-05-26Merge branch 'blender-v2.93-release'Jacques Lucke
2021-05-26Fix T88250: crash when instancing object in disabled collectionJacques Lucke
This issue was that `BKE_object_eval_uber_data` was not called for the text object, because its geometry was not dependent upon and its `is_directly_visible` tag was `false`. The crash happens in rendering code, because the evaluated data is missing. This not only affects text objects, but all object types that have a geometry component that geometry nodes does not support yet. The solution is to just add the missing dependencies. Differential Revision: https://developer.blender.org/D11385
2021-05-26GPencil: Bake GPencil object transforms into a new GPencil objectAntonio Vazquez
This operator is a common request of animators to convert the transformation (inluding modifiers) of one grease pencil object, into a new object, generating strokes. Reviewed By: pepeland Maniphest Tasks: T87424 Differential Revision: https://developer.blender.org/D11014
2021-05-26Nodes: fix threading issues with node ui storageJacques Lucke
Calling BKE_nodetree_attribute_hint_add from multiple threads still was not safe before.. One issue was that context_map embedded its values directly. So when context_map grows, all NodeUIStorage would move as well. I could patch around that by using std::unique_ptr in a few places, but that just becomes too complex for now. Instead I simplified the locking a bit by adding just locking a mutex in NodeTreeUIStorage all the time while an attribute hint is added. Differential Revision: https://developer.blender.org/D11399
2021-05-26Fix T88588: crash when muting node with multi input socketJacques Lucke
The bug existed before the new evaluator already, but the new evaluator is more sensitive to this kind of error.
2021-05-26Fix particlesystem not duplicating their pointcache in NO_MAIN case.Bastien Montagne
Sharing data between duplicated IDs should be restricted to depsgraph (CoW) cases, not all NO_MAIN ones... While this was probably not an issue currently, we aim at using more and more out-of-main IDs for temp data processing. NOTE: Somewhat related to T88555, and similar issue as the one fixed in rBdfb963c70df5.
2021-05-26Compositor: Use BLI_color in convert alpha node.Jeroen Bakker
Recently the CPP colors module landed in master. This patch will use the new module in the convert alpha node.
2021-05-26Fix T88531: Mantaflow problem with geometry nodesPhilipp Oeser
Objects modified by geometry nodes modifiers were not caught as being "dynamic". Now add this modifier type to the list of modifiers making them "dynamic" in the eyes of mantaflow. (noticed by @sebbas in chat) Maniphest Tasks: T88531 Differential Revision: https://developer.blender.org/D11389
2021-05-26Fix T88566: Mantaflow inflow with shapekeys is not working anymorePhilipp Oeser
(regression) Code was actually checking for shapekeys, but these were not detected properly (some effects like shape keys are added as virtual modifiers before the user created modifiers) Now go over virtual modifiers as well. Maniphest Tasks: T88566 Differential Revision: https://developer.blender.org/D11388
2021-05-26Merge branch 'blender-v2.93-release'Philipp Oeser
2021-05-26Fix T88251: "Operator Cheat Sheet" CrashPhilipp Oeser
Caused by {rB919558854d62}. Same fix as in {rBdc8a43c8755a} -- let RNA enum item callbacks check for NULL context. The NULL context is used to extract items for document generation. Maniphest Tasks: T88251 Differential Revision: https://developer.blender.org/D11391
2021-05-25Cleanup: Fix short comparison with bool warningHans Goudey
For some reason the hide status is stored in a short and a char (we cannot have bools in DNA).
2021-05-25GPencil: Add a use_light option when creating object.YimingWu
This option is default off when creating line art objects because line art seldom use lighting and the normal data would be all over the place anyway. Reviewed By: Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D11372
2021-05-25Cleanup: Use ListBase in various places in line art.YimingWu
This clarifies the data structures for storing edges for different calculation stages. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D11386
2021-05-25Blenlib: Explicit Colors.Jeroen Bakker
Colors are often thought of as being 4 values that make up that can make any color. But that is of course too limited. In C we didn’t spend time to annotate what we meant when using colors. Recently `BLI_color.hh` was made to facilitate color structures in CPP. CPP has possibilities to enforce annotating structures during compilation and can adds conversions between them using function overloading and explicit constructors. The storage structs can hold 4 channels (r, g, b and a). Usage: Convert a theme byte color to a linearrgb premultiplied. ``` ColorTheme4b theme_color; ColorSceneLinear4f<eAlpha::Premultiplied> linearrgb_color = BLI_color_convert_to_scene_linear(theme_color).premultiply_alpha(); ``` The API is structured to make most use of inlining. Most notable are space conversions done via `BLI_color_convert_to*` functions. - Conversions between spaces (theme <=> scene linear) should always be done by invoking the `BLI_color_convert_to*` methods. - Encoding colors (compressing to store colors inside a less precision storage) should be done by invoking the `encode` and `decode` methods. - Changing alpha association should be done by invoking `premultiply_alpha` or `unpremultiply_alpha` methods. # Encoding. Color encoding is used to store colors with less precision as in using `uint8_t` in stead of `float`. This encoding is supported for `eSpace::SceneLinear`. To make this clear to the developer the `eSpace::SceneLinearByteEncoded` space is added. # Precision Colors can be stored using `uint8_t` or `float` colors. The conversion between the two precisions are available as methods. (`to_4b` and `to_4f`). # Alpha conversion Alpha conversion is only supported in SceneLinear space. Extending: - This file can be extended with `ColorHex/Hsl/Hsv` for different representations of rgb based colors. `ColorHsl4f<eSpace::SceneLinear, eAlpha::Premultiplied>` - Add non RGB spaces/storages ColorXyz. Reviewed By: JacquesLucke, brecht Differential Revision: https://developer.blender.org/D10978
2021-05-25Revert "Blenlib: Explicit Colors."Jeroen Bakker
This reverts commit fd94e033446c72fb92048a9864c1d539fccde59a. does not compile against latest master.
2021-05-25Blenlib: Explicit Colors.Jeroen Bakker
Colors are often thought of as being 4 values that make up that can make any color. But that is of course too limited. In C we didn’t spend time to annotate what we meant when using colors. Recently `BLI_color.hh` was made to facilitate color structures in CPP. CPP has possibilities to enforce annotating structures during compilation and can adds conversions between them using function overloading and explicit constructors. The storage structs can hold 4 channels (r, g, b and a). Usage: Convert a theme byte color to a linearrgb premultiplied. ``` ColorTheme4b theme_color; ColorSceneLinear4f<eAlpha::Premultiplied> linearrgb_color = BLI_color_convert_to_scene_linear(theme_color).premultiply_alpha(); ``` The API is structured to make most use of inlining. Most notable are space conversions done via `BLI_color_convert_to*` functions. - Conversions between spaces (theme <=> scene linear) should always be done by invoking the `BLI_color_convert_to*` methods. - Encoding colors (compressing to store colors inside a less precision storage) should be done by invoking the `encode` and `decode` methods. - Changing alpha association should be done by invoking `premultiply_alpha` or `unpremultiply_alpha` methods. # Encoding. Color encoding is used to store colors with less precision as in using `uint8_t` in stead of `float`. This encoding is supported for `eSpace::SceneLinear`. To make this clear to the developer the `eSpace::SceneLinearByteEncoded` space is added. # Precision Colors can be stored using `uint8_t` or `float` colors. The conversion between the two precisions are available as methods. (`to_4b` and `to_4f`). # Alpha conversion Alpha conversion is only supported in SceneLinear space. Extending: - This file can be extended with `ColorHex/Hsl/Hsv` for different representations of rgb based colors. `ColorHsl4f<eSpace::SceneLinear, eAlpha::Premultiplied>` - Add non RGB spaces/storages ColorXyz. Reviewed By: JacquesLucke, brecht Differential Revision: https://developer.blender.org/D10978
2021-05-25Geometry Nodes: Add Shader Curve NodesCharlie Jolly
Convert curve vec and curve rgb shader nodes to geometry nodes, based on node_shader_valToRgb.cc implementation.
2021-05-25Cleanup: Line art naming changes.YimingWu
Make variable naming consistent with struct names. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D11382
2021-05-25Cleanup: Convert to static type directly from CPPTypeHans Goudey
2021-05-25Fix T86956: VSE shading mode ignores Grease Pencil Vertex colors.Jeroen Bakker
Issue is that due to the strange definition of render in grease pencil (meaning should be rendered similar to rendering). This included normal viewport rendering in OB_RENDER and OpenGL render in OB_RENDER. For other rendering modes the overlay vertex opacity would be used. This patch sets this value to 1 when rendering via a scene strip override. NOTE: that this isn't a good solution as I expect that users want to use the opacity of the Grease pencil object. Perhaps the GPencil team has a better solution for it.
2021-05-25Unreported fix: vertex colors overlay not set for new 3d views.Jeroen Bakker
Found during researching {T86956}.
2021-05-25Merge branch 'blender-v2.93-release'Richard Antalik
2021-05-25Fix T88551: Crash accessing uninitialized tool settingsRichard Antalik
Tool settings for sequencer were not initialized, which caused crash when adding strips. There was fix for same issue in versioning rB0f81dafe6cec, but subversion was not bumped, so files with uninitialized tool settings may still exist. Add `SEQ_tool_settings_get()` accessor function that will initialize tool settings if they are missing. Change operator code to use `SEQ_tool_settings_fit_method_get()` function instead of accessing tool settings directly Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D11383
2021-05-25Cleanup: use nullptrJacques Lucke
2021-05-25Cleanup: remove unnecessary lambda captureJacques Lucke
2021-05-25Fix T88549: ID sorting tests.Bastien Montagne
Forgot to initialize the ID types array... Weird though that this only failed on Windows! Thanks a lot to @deadpin for helping investigating this.
2021-05-25Fix T88464: Incorrect baking with camera markers.YimingWu
This will update active camera based on the maker for each frame. Reviewed By: Sebastian Parborg (zeddb), Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D11358
2021-05-25Fix/Refactor RNA ID preview getter creating preview data.Bastien Montagne
Same as with forcefields, accessors should never generate data.
2021-05-25Cleanup: spellingCampbell Barton
2021-05-25Cleanup: clang-formatCampbell Barton
2021-05-24Merge branch 'blender-v2.93-release'Germano Cavalcante
2021-05-24Fix T88478: Fallback to dolly not working when moving the camera in camera viewGermano Cavalcante
This fallback is an old hack. It is difficult to have an orientation convention when several random factors determine which one should be used. In this case, to "fix" the problem, a new behavior had to be implemented. Now the redo when moving the camera in `Camera View` has the default orientation as `View`.
2021-05-24Fix (unreported): Automatic transform contraint not being disabledGermano Cavalcante
It does not make sense to maintain automatic constraint selection when you manually set the constraint.
2021-05-24Cleanup: Rename transform enum itemsGermano Cavalcante
Make them more descriptive.
2021-05-24Cleanup: Refactor PlaneTrack and PlaneDistort operationsManuel Castilla
Deduplicates code by introducing a PlaneDirtortBaseOperation for common logic. Reviewed By: #compositing, jbakker Differential Revision: https://developer.blender.org/D11273
2021-05-24Nodes: move shader curves node to C++Charlie Jolly
Prepare node for conversion to Geometry Nodes. There should be no functional changes. Reviewed By: JacquesLucke, LazyDodo Differential Revision: https://developer.blender.org/D11226
2021-05-24Fix T88524: GPencil PDF does not take into account the marker cameraAntonio Vazquez
The camera was not checked before doing the export.
2021-05-24Fix T88466: Sound strips prevent strip renderingRichard Antalik
When sound strip is above another strip such as movie strip, it prevents from rendering movie strip. This bug was introduced in 0b7744f4da66. Function `must_render_strip()` checks if there is any strip with `SEQ_BLEND_REPLACE` blending and considers this strip as lowest strip in stack. Sound strips do have this blend mode set, which caused the bug. Remove all sound strips and muted strips from stack collection before checking with `must_render_strip()` function
2021-05-23UI: Use title case for labelsAaron Carlisle