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-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-25Fix T88096: Baking with OptiX and displacement failsPatrick Mours
Using displacement runs the shader eval kernel, but since OptiX modules are not loaded when baking is active, those were not available and therefore failed to launch. This fixes that by falling back to the CUDA kernels.
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 unused functionJacques 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-24Fix T88500: Constrain window top position (Win32)Pratik Borhade
Do not allow a window to be created that has a top position that can obscure all or part of title bar. Right and Left edges can still be specified slightly outside of monitor bounds, but top edge must be clamped to monitor top. see D11371 for more details. https://developer.blender.org/D11371 Reviewed by Ray Molenkamp
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
2021-05-23Docs: Add readme for mikktspaceAaron Carlisle
2021-05-22Cleanup: remove redundant property for transfer_mode key-map itemCampbell Barton
As the property isn't saved and defaults to disabled, there is no need to set it.
2021-05-22Cleanup: tweaks for Object Non-modal keymapCampbell Barton
Simplify adding non-legacy keymap items.
2021-05-22Cleanup: Move curve draw cache implementation to C++Hans Goudey
I'd like to use this file to draw curves from geometry nodes, which would otherwise require implementing a C API. The changes in this commit are minimal, mostly just casts and changing to nullptr. Differential Revision: https://developer.blender.org/D11350
2021-05-21Merge branch 'blender-v2.93-release'Hans Goudey
2021-05-21Fix T87357: Missing update after removing socketJacques Lucke
The CoW copy of the node group was not updated correctly after it changed. Arguably, tagging the node tree could also be part of `ntreeUpdateTree` (which needs to be called after changes to the node tree anyway). However, there are many instances where the depsgraph is tagged explicitly after `ntreeUpdateTree` is called, so it should be fine here as well. This is similar to what is done in `snode_dag_update`. Differential Revision: https://developer.blender.org/D11342
2021-05-21Fix T88375: Bone Size Small After V3D.View_AllWayde Moss
The wrong matrix function was used and overwrote the custom bone shape scale instead of reading from it. Reviewed By: sybren Differential Revision: https://developer.blender.org/D11330
2021-05-21Fix T88384: Improved Win32 Window Sizing and PositioningHarley Acheson
When creating Win32 windows, the sizes and placements can be out by a small amount, mostly noticeable near monitor edges. This is because Windows 10 includes a thin invisible border (typically 7 pixels) when determining position. Therefore the correct values can sometimes be just outside the monitor bounds, but we clamp them at those bounds. This patch fixes this by first clamping the requested values to monitor bounds, adjusting for window chrome with AdjustWindowRectEx(), and then using those adjusted values in CreateWindowExW(). see D11314 for more details. Differential Revision: https://developer.blender.org/D11314 Reviewed by Ray Molenkamp
2021-05-21Fix some RNA physics accessors creating data.Bastien Montagne
Accessing data through RNA should never implicitely create it. Objects' and particles' forcefields and collision settings were doing this. Note that UI code also had to be tweaked to properly handle `None` (NULL) cases. Differential Revision: https://developer.blender.org/D11341
2021-05-21Fix particle ID init not creating particle deflect data.Bastien Montagne
This data (the force fields) are expected to always be there, but they are currently created on the fly by RNA accessors (typically from UI draw code), which is extremely wrong way to do it. Differential Revision: https://developer.blender.org/D11341
2021-05-21GPencil: Speed up Occlude EraserAntonio Vazquez
This is an initial change to speed up the calculation of the Occlude eraser. In the future, we can add more optimizations, but at least this increase speed. Intead to check always the 3 points, the check is skipped if it's not required. Base in a solution by Philipp Oeser. This is related to T88412
2021-05-21Cleanup: use nullptrJacques Lucke
2021-05-21Cleanup: spellingLeon Zandman
Includes fixes to misspelled function names. Ref D11280
2021-05-21Fix T85752: Collection Instance Crash when instancing collections with ↵Bastien Montagne
disabled subcollections Root of the issue was actually hidden deep in depsgraph itself: it would not properly update all of its COW IDs using a datablock when depsgraph decides to evaluate or un-evaluate it. This would lead to evaluated IDs pointing to either: - orig IDs when there was an evaluated version of those (annoying bug, but not a crashing one). - old address of previously evaluated IDs that no longer exists in the depsgraph (causing the crash from the report e.g.). This commit adds an extra step at the end of nodes building, that goes over all of already existing IDs in the depsgraph to check whether they do one of the two things above, and tag them for COW update if so. NOTE: This only affects depsgraph (re-)building, not its evaluation. This remains consistent with the fact that operations that may change the depsgraph content (like Collection exclusion etc.) need to trigger a rebuild. NOTE: Performances: Worst case scenarii, like (un-)excluding a whole character collection in a production file, lead to 5% to 10% extra processing time in depsgraph building. Most of it comming from extra COW processing (in depsgraph's update in `build_step_finalize`), the detection loop itself only accounts for 1% to 2% of the whole building time. Maniphest Tasks: T85752 Differential Revision: https://developer.blender.org/D10907
2021-05-21Cleanup: Use named unused arguments in Cycles DeviceSergey Sharybin
2021-05-21Geometry Nodes: new Material Replace nodeJacques Lucke
This node can change all faces that use a specific material to use a different material. Using this node is significantly more efficient than creating a selection from all faces with a specific material index and then using the Material Assign node. Ref T88055. Differential Revision: https://developer.blender.org/D11325
2021-05-21Depsgraph: remove mesh edit-mode pointer duplicationCampbell Barton
Share the pointer with the original mesh instead, this matches behavior of all other objects edit-mode data. Duplicating the edit-mesh pointer makes updates to edit-mesh require a COPY_ON_WRITE update, which is currently an expensive operation (copying the entire mesh). Notes: - This change is from 802027f3f8f9a83a77134a2b104a25ff3a4ac013 so the edit-meshes object pointer `BMEditMesh.ob` referenced the COW version of the object. This pointer has since been removed, so the copy is no longer needed. - Having a separate edit-mesh pointer could be used so linked duplicates could have their own generated meshes. For this to be supported, many other changes would be needed: see D10920.
2021-05-21Fix T88227: Eevee not working on AMD 535 cards.Jeroen Bakker
Enabled HQ normals workaround for this specific configuration.
2021-05-21Transform: use ID_RECALC_GEOMETRY flag when updating object dataCampbell Barton
While this doesn't provide any noticeable benefits at the moment, it allows for geometry updates skipping copy-on-write in edit-mode in the future.
2021-05-21Cleanup: quiet -Warray-parameter warnings from GCC11Campbell Barton
Some warnings remain that require larger changes.
2021-05-21Cleanup: conversion warningCampbell Barton