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-11-11Add support for XrSession (untested).temp-xr-virtual-camera-experimentJeroen Bakker
2022-11-11Revert incorrect change.Jeroen Bakker
2022-11-11Rename to virtual monitor.Jeroen Bakker
2022-11-11Fix corrupt rv3d.Jeroen Bakker
2022-11-09First setup of rv3d.Jeroen Bakker
2022-11-09Fixed using correct texture.Jeroen Bakker
2022-11-09Add GPU debugging group.Jeroen Bakker
2022-11-02Initial implementation of 2 stage drawing.Jeroen Bakker
2022-11-01Refactor: Rename Object->obmat to Object->object_to_worldSergey Sharybin
Motivation is to disambiguate on the naming level what the matrix actually means. It is very easy to understand the meaning backwards, especially since in Python the name goes the opposite way (it is called `world_matrix` in the Python API). It is important to disambiguate the naming without making developers to look into the comment in the header file (which is also not super clear either). Additionally, more clear naming facilitates the unit verification (or, in this case, space validation) when reading an expression. This patch calls the matrix `object_to_world` which makes it clear from the local code what is it exactly going on. This is only done on DNA level, and a lot of local variables still follow the old naming. A DNA rename is setup in a way that there is no change on the file level, so there should be no regressions at all. The possibility is to add `_matrix` or `_mat` suffix to the name to make it explicit that it is a matrix. Although, not sure if it really helps the readability, or is it something redundant. Differential Revision: https://developer.blender.org/D16328
2022-10-25Fix T101933: pick deselecting bones in empty space deactivates armaturePhilipp Oeser
As a consequence of this, subsequent box-selection of bones would not show correctly in Animation Editors (not showing the channels there because of the lack of an active object). The bug was caused by rBba6d59a85a38. Prior to said commit, code logic was relying on the check for `basact` being NULL to determine if object selection changes need to happen. After that commit, this was handled by a `handled` variable, but this was not set correctly if `basact` is actually NULL after the initial pick (aka deselection by picking). Maniphest Tasks: T101933 Differential Revision: https://developer.blender.org/D16326
2022-10-21Fix T66713: Walk mode doesn't take scene unit scale into accountCampbell Barton
When changing a scene's unit scale from 1 to something else, 0.1 for e.g. walk navigation no longer worked properly. Whenever gravity is enabled, and the user starts to fall or jump, the view-port glitched out into low earth orbit. Reviewed By: campbellbarton Ref D16277
2022-10-19Fix T99997: Calling teleport without waiting for the previous event disables ↵Pratik Borhade
gravity During teleport event, gravity is disabled and WalkMethod is stored in `teleport.navigation_mode` which is used later to reset the status after execution. Calling teleport events consecutively will change the initial WalkMethod value. So update it only on the first call. Also remove `else condition` as it stops the previously running teleport when the new teleport call fails to find a hit point. Reviewed by: dfelinto, mano-wii Differential Revision: https://developer.blender.org/D15574
2022-10-17Cleanup: replace BLI_join_dirfile with BLI_path_joinCampbell Barton
These functions are almost identical, the main difference being BLI_join_dirfile didn't trim existing slashes when joining paths however this isn't an important difference that warrants a separate function.
2022-10-14Cleanup: simplify calculation of NDOF pan/zoom in 2D viewsCampbell Barton
Make the logic for converting NDOF Z-motion to a scale value more straightforward. Flipping the Z axis was scaling by negative-time, now the entire pan vector is scaled by time and the zoom value is calculated as `scale = 1 - (z * time)` instead of `1 + (z * -time)`. Although they're equivalent, confusion here caused T100953. Also clamp the scale (while unlikely, negative scale wasn't prevented).
2022-10-13Mesh: Move runtime data out of DNAHans Goudey
This commit replaces the `Mesh_Runtime` struct embedded in `Mesh` with `blender::bke::MeshRuntime`. This has quite a few benefits: - It's possible to use C++ types like `std::mutex`, `Array`, `BitVector`, etc. more easily - Meshes saved in files are slightly smaller - Copying and writing meshes is a bit more obvious without clearing of runtime data, etc. The first is by far the most important. It will allows us to avoid a bunch of manual memory management boilerplate that is error-prone and annoying. It should also simplify future CoW improvements for runtime data. This patch doesn't change anything besides changing `mesh.runtime.data` to `mesh.runtime->data`. The cleanups above will happen separately. Differential Revision: https://developer.blender.org/D16180
2022-10-12Cleanup: use commented arguments for unused args in C++Campbell Barton
2022-10-07Cleanup: redundant parenthesisCampbell Barton
2022-10-07Fix T100953: Zooming with NDOF is inverted in the camera viewCampbell Barton
Use convention for applying zoom in other 2D views.
2022-10-07Cleanup: remove redundant 'using'Campbell Barton
clang-tidy converts C-style typedefs to this style, but the "using ..." isn't needed.
2022-10-073D View: depth sort candidates in the selection menuCampbell Barton
Objects/bones in the selection menu weren't ordered usefully, worse, the closest items could be left out of the menu since items would stop being added once the menu-size limit was reached. Resolve this by sorting the menu items by depth, removing the most distant when the number of items exceeds the limit. When Ctrl is held, order by the distance to the object center instead of depth.
2022-10-06DRW: fix use of potentially uninitialized variableGermano Cavalcante
Bug introduced in rB6774cae3f25b. This causes undefined behavior in `DRW_state_draw_support()` making overlay depth drawing unpredictable.
2022-10-063D View: use float for ED_view3d_project_base & minor changesCampbell Barton
Using 'short' was historic (as the value was stored in the Base). Prefer floats which allow sub-pixel distances to be differentiated. Also remove IS_CLIPPED assignment as this only made sense when the values were stored in the Base, without any other ways to check if projection failed.
2022-10-05Cleanup: Clang tidyHans Goudey
Also remove unnecessary struct keywords in C++ files.
2022-10-04Cleanup: replace UNUSED macro with commented args in C++ codeHans Goudey
This is the conventional way of dealing with unused arguments in C++, since it works on all compilers. Regex find and replace: `UNUSED\((\w+)\)` -> `/*$1*/`
2022-10-03Cleanup: remove 2D region-relative coordinates from BaseCampbell Barton
Historically, caching these values may have had some advantages, simplifying drawing object centers and selecting by object center. Now the only uses of these values would calculate the projection before use, so there is no reason to store run-time projection in DNA. This also quiets a `-Wstring-overflow` warning.
2022-10-03Cleanup: spelling in commentsCampbell Barton
Also replace "dm" for evaluated mesh in some comments.
2022-10-02Cleanup: Move more files using mesh runtime data to C++Hans Goudey
In preparation for moving mesh runtime data out of DNA.
2022-09-30Fix T101347: Curve draw fails to project to cursor depth in ortho viewsCampbell Barton
ED_view3d_win_to_3d_on_plane with do_clip enabled wasn't working in non-camera orthographic views as it didn't take into account the ray origin being centered to the view. Resolve by testing viewport clipping after the ray has been projected.
2022-09-30Cleanup: use function style casts for C++Campbell Barton
2022-09-30Cleanup: Move files that use mesh runtime data to C++Hans Goudey
In preparation for moving the mesh runtime struct out of DNA.
2022-09-29Cleanup: Address format-security warningSergey Sharybin
2022-09-28Geometry Nodes: viewport previewJacques Lucke
This adds support for showing geometry passed to the Viewer in the 3d viewport (instead of just in the spreadsheet). The "viewer geometry" bypasses the group output. So it is not necessary to change the final output of the node group to be able to see the intermediate geometry. **Activation and deactivation of a viewer node** * A viewer node is activated by clicking on it. * Ctrl+shift+click on any node/socket connects it to the viewer and makes it active. * Ctrl+shift+click in empty space deactivates the active viewer. * When the active viewer is not visible anymore (e.g. another object is selected, or the current node group is exit), it is deactivated. * Clicking on the icon in the header of the Viewer node toggles whether its active or not. **Pinning** * The spreadsheet still allows pinning the active viewer as before. When pinned, the spreadsheet still references the viewer node even when it becomes inactive. * The viewport does not support pinning at the moment. It always shows the active viewer. **Attribute** * When a field is linked to the second input of the viewer node it is displayed as an overlay in the viewport. * When possible the correct domain for the attribute is determined automatically. This does not work in all cases. It falls back to the face corner domain on meshes and the point domain on curves. When necessary, the domain can be picked manually. * The spreadsheet now only shows the "Viewer" column for the domain that is selected in the Viewer node. * Instance attributes are visualized as a constant color per instance. **Viewport Options** * The attribute overlay opacity can be controlled with the "Viewer Node" setting in the overlays popover. * A viewport can be configured not to show intermediate viewer-geometry by disabling the "Viewer Node" option in the "View" menu. **Implementation Details** * The "spreadsheet context path" was generalized to a "viewer path" that is used in more places now. * The viewer node itself determines the attribute domain, evaluates the field and stores the result in a `.viewer` attribute. * A new "viewer attribute' overlay displays the data from the `.viewer` attribute. * The ground truth for the active viewer node is stored in the workspace now. Node editors, spreadsheets and viewports retrieve the active viewer from there unless they are pinned. * The depsgraph object iterator has a new "viewer path" setting. When set, the viewed geometry of the corresponding object is part of the iterator instead of the final evaluated geometry. * To support the instance attribute overlay `DupliObject` was extended to contain the information necessary for drawing the overlay. * The ctrl+shift+click operator has been refactored so that it can make existing links to viewers active again. * The auto-domain-detection in the Viewer node works by checking the "preferred domain" for every field input. If there is not exactly one preferred domain, the fallback is used. Known limitations: * Loose edges of meshes don't have the attribute overlay. This could be added separately if necessary. * Some attributes are hard to visualize as a color directly. For example, the values might have to be normalized or some should be drawn as arrays. For now, we encourage users to build node groups that generate appropriate viewer-geometry. We might include some of that functionality in future versions. Support for displaying attribute values as text in the viewport is planned as well. * There seems to be an issue with the attribute overlay for pointclouds on nvidia gpus, to be investigated. Differential Revision: https://developer.blender.org/D15954
2022-09-28Cleanup: decentralize .blend I/O for space typesKévin Dietrich
This adds callbacks to `SpaceType` to make each editor responsible to manage their own .blend I/O, and moves relevant code from `screen.c` to the editors files. Differential Revision: D11069
2022-09-28Cleanup: spelling in commentsCampbell Barton
Also add missing task ID.
2022-09-27View3D: move view3d_draw.c to c++Jacques Lucke
2022-09-26Cleanup: replace C-style casts with functional casts for numeric typesCampbell Barton
Use function style casts in C++ headers & source.
2022-09-26Cleanup: remove redundant parenthesisCampbell Barton
2022-09-25Cleanup: remove redundant parenthesis (especially with macros)Campbell Barton
2022-09-25Cleanup: replace C-style casts with functional casts for numeric typesCampbell Barton
2022-09-25Cleanup: remove redundant double parenthesisCampbell Barton
2022-09-25Cleanup: format, spelling in commentsCampbell Barton
2022-09-24BLF: Refactor of DPIHarley Acheson
Correction of U.dpi to hold actual monitor DPI. Simplify font sizing by omitting DPI as API argument, always using 72 internally. See D15961 for more details. Differential Revision: https://developer.blender.org/D15961 Reviewed by Campbell Barton
2022-09-23Mesh: Move selection flags to generic attributesHans Goudey
Using the attribute name semantics from T97452, this patch moves the selection status of mesh elements from the `SELECT` of vertices, and edges, and the `ME_FACE_SEL` of faces to generic boolean attribute Storing this data as generic attributes can significantly simplify and improve code, as described in T95965. The attributes are called `.select_vert`, `.select_edge`, and `.select_poly`. The `.` prefix means they are "UI attributes",so they still contain original data edited by users, but they aren't meant to be accessed procedurally by the user in arbitrary situations. They are also be hidden in the spreadsheet and the attribute list. Until 4.0, the attributes are still written to and read from the mesh in the old way, so neither forward nor backward compatibility are affected. This means memory requirements will be increased by one byte per element when selection is used. When the flags are removed completely, requirements will decrease. Further notes: * The `MVert` flag is empty at runtime now, so it can be ignored. * `BMesh` is unchanged, otherwise the change would be much larger. * Many tests have slightly different results, since the selection attribute uses more generic propagation. Previously you couldn't really rely on edit mode selections being propagated procedurally. Now it mostly works as expected. Similar to 2480b55f216c Ref T95965 Differential Revision: https://developer.blender.org/D15795
2022-09-23View3d: move space_view3d.c to c++Jacques Lucke
2022-09-23Mesh: Move edge crease out of MEdgeHans Goudey
This is very similar to D14077. There are two differences though. First is that vertex creases are already stored in a separate layer, and second is that we can now completely remove use of `Mesh.cd_flag`, since that information is now inherent to whether the layers exist. There are two functional differences here: * Operators are used to add and remove layers instead of a property. * The "crease" attribute can be created and removed by geometry nodes. The second change should make various geometry nodes slightly faster, since the "crease" attribute was always processed before. Creases are now interpolated generically in the CustomData API too, which should help maintain the values across edits better. Meshes get an `edge_creases` RNA property like the existing vertex property, to provide more efficient access to the data in Cycles. One test failure is expected, where different rounding between float the old char storage means that 5 additional points are scattered in a geometry nodes test. Differential Revision: https://developer.blender.org/D15927
2022-09-23Mesh: Move sculpt face sets to a generic attributeHans Goudey
Similar to the other refactors from T95965, this commit moves sculpt face sets to use a generic integer attribute named `".sculpt_face_set"`. This makes face sets accessible in the Python API. The attribute is not visible in the attributes list or the spreadsheet because it is meant for internal use, though that could be an option in the future along with other similar attributes. Currently the change is small, but in the future this could simplify code by allowing use of more generic attribute APIs. Differential Revision: https://developer.blender.org/D16045
2022-09-19Cleanup: spellingCampbell Barton
2022-09-18Build: fix gtest build flags affecting actual libraryBrecht Van Lommel
Switch to target_ functions to avoid this.
2022-09-17Cleanup: spelling, punctuation & repeated words in commentsCampbell Barton
2022-09-16Cleanup: spelling in commentsCampbell Barton