Age | Commit message (Collapse) | Author |
|
commit 33f9897ebe5848b6437e95fb934b6dbda8d58e3b
Merge: fcb6a57b8df 80b2fc59d11
Author: Hans Goudey <h.goudey@me.com>
Date: Fri Jul 22 19:13:57 2022 -0500
Merge branch 'master' into refactor-mesh-hide-generic
commit 80b2fc59d11d5814afe7e219c535525a8d494c17
Author: Hans Goudey <h.goudey@me.com>
Date: Fri Jul 22 15:49:53 2022 -0500
Fix T99873: Use evaluated vertex groups in armature modifier
Geometry nodes has added the ability to modify mesh vertex groups
during evaluation (see 3b6ee8cee7080af2). However, the armature
modifier always uses the vertex groups from the original object.
This is wrong for the modifier stack, where each modifier is meant
to use the output of the previous.
This commit makes the armature modifier use the evaluated vertex groups
if they are available. Otherwise it uses the originals like before.
Differential Revision: https://developer.blender.org/D15515
commit 7d8b651268df74157f89858eda9ddce9fd452138
Author: Clément Foucault <foucault.clem@gmail.com>
Date: Fri Jul 22 21:03:06 2022 +0200
EEVEE-Next: Add exposure awareness to denoising
This uses the exposure to get a better approximation of the perceptual
brighness of a sample before accumulating it.
Note that we do not modify exposure of the image. Only the samples weights
are computed differently.
commit 676a2f690c3e3fffe2e515208d4d308e0a96e8e6
Author: Clément Foucault <foucault.clem@gmail.com>
Date: Fri Jul 22 20:32:17 2022 +0200
EEVEE-Next: Fix render not working
The swaps during accumulation were ignored because of the way the
`SwapChain<>` implementation works.
Using external references and updating them fixes the issue.
commit 35843ddcd80e5957656b157650da950f228d2808
Author: Hans Goudey <h.goudey@me.com>
Date: Fri Jul 22 11:36:55 2022 -0500
Fix T99835: Incorrect title case for two node names
commit 98395e0bdfc849e2d2770052c6e8651a42500608
Author: Hans Goudey <h.goudey@me.com>
Date: Fri Jul 22 10:49:09 2022 -0500
Cleanup: Use r_ prefix for boolean return parameters
Also rearrange some lines to simplify logic.
commit c40971d79a887820d621705b29f65f833d9b9f52
Author: Hans Goudey <h.goudey@me.com>
Date: Fri Jul 22 10:31:10 2022 -0500
Fix T99873: Store named attribute node cannot write to vertex groups
Since fd5e5dac8946b13599, the node would remove the attribute before
adding it again, which lost the vertex group status of an attribute,
meaning they were written as arbitrary attributes.
Now, the node first tries to write to attributes with the same domain
and data-type, which covers the vertex group case. Then it falls back
to removing the attribute and adding it again. Even that can fail
though, so I added an error message to make that a bit clearer.
Differential Revision: https://developer.blender.org/D15514
commit e4eaf424b9ce4800e64d35ddfebe28f986b14647
Author: Germano Cavalcante <germano.costa@ig.com.br>
Date: Fri Jul 22 12:17:22 2022 -0300
Fix nodes not transforming
Error in {rB98bf714b37c1}
commit 6bcda04d1f1cc396dcc188678997105b09231bde
Author: Hans Goudey <h.goudey@me.com>
Date: Fri Jul 22 09:59:28 2022 -0500
Geometry Nodes: Port sample curves node to new data-block
Use the newer more generic sampling and interpolation functions
developed recently (ab444a80a280) instead of the `CurveEval` type.
Functions are split up a bit more internally, to allow a separate mode
for supplying the curve index directly in the future (T92474).
In one basic test, the performance seems mostly unchanged from 3.1.
Differential Revision: https://developer.blender.org/D14621
commit 1f94b56d774440d08eb92f2a7a47b9a6a7aa7b84
Author: Jacques Lucke <jacques@blender.org>
Date: Fri Jul 22 15:39:41 2022 +0200
Curves: support sculpting on deformed curves
Previously, curves sculpt tools only worked on original data. This was
very limiting, because one could effectively only sculpt the curves when
all procedural effects were turned off. This patch adds support for curves
sculpting while looking the result of procedural effects (like deformation
based on the surface mesh). This functionality is also known as "crazy space"
support in Blender.
For more details see D15407.
Differential Revision: https://developer.blender.org/D15407
commit 98bf714b37c1f1b05a162b6ffdaca367b312de1f
Author: Germano Cavalcante <mano-wii>
Date: Thu Jul 21 23:44:39 2022 -0300
Refactor: arrange transform convert functions in 'TransConvertTypeInfo'
Simplify the transform code by bundling the TransData creation, Data
recalculation, and special updates into a single struct.
So similar functions and parameters can be accessed without special
type checks.
Differential Revision: https://developer.blender.org/D15494
commit 185eeeaaac01bf24930f7e8b25c96f9fa9503073
Author: Campbell Barton <campbell@blender.org>
Date: Fri Jul 22 22:13:10 2022 +1000
GHOST/Wayland: Fix mouse wheel events for Sway Compositor (use seat v5)
Bump the requested seat version to v5, use discreet scroll callback.
Tested with gnome, river & sway.
commit 003dfae270781bfa642a2c5804fa190edd4dfca4
Author: Xavier Hallade <xavier.hallade@intel.com>
Date: Fri Jul 22 13:00:46 2022 +0200
Cycles: enable oneAPI in Linux release builds
0f50ae131f54d51f778424d4c9655128cafbbefc didn't do it reliably
since it was deactivated explicitly a bit above.
commit e0d4aede4da8a1f670f53fe597140111b9726234
Author: Campbell Barton <campbell@blender.org>
Date: Fri Jul 22 16:49:37 2022 +1000
BMesh: move bmesh_mesh to C++
This allows parts of the code to be threaded more easily.
commit 95e60b4ffd6c325d2658f318d05ab52d712ca953
Author: Jacques Lucke <jacques@blender.org>
Date: Fri Jul 22 12:33:08 2022 +0200
Cleanup: move crazyspace.c to c++
Doing this in preparation for D15407.
commit 087f27a52f7857887e90754d87a7a73715ebc3fb
Author: Campbell Barton <campbell@blender.org>
Date: Fri Jul 22 13:57:04 2022 +1000
Fix T87779: Asymmetric vertex positions in circles primitives
Add sin_cos_from_fraction which ensures each quadrant has matching
values when their sign is flipped.
commit 08c5d99e88ee3e9f807dfe69c188660eae347f31
Author: Campbell Barton <campbell@blender.org>
Date: Fri Jul 22 13:05:26 2022 +1000
Cleanup: add BKE_image_find_nearest_tile_with_offset
Every caller BKE_image_find_nearest_tile was calculating the tile offset
so add a version of this function that returns the offset too.
commit 72e249974aa7f6a3bd6d5c35c5d5e59cd1c3bded
Author: Campbell Barton <campbell@blender.org>
Date: Fri Jul 22 12:25:10 2022 +1000
Fix crash loading factory settings in image paint mode
Loading factory settings left the region NULL, causing the brushes
poll function to crash.
commit d3db38cfb1f223b81ab89c38bae0652a0d40c03e
Author: Campbell Barton <campbell@blender.org>
Date: Fri Jul 22 12:23:33 2022 +1000
Cleanup: quiet nonull-compare warnings with GCC
commit 77257405437336dbd91a481926013f8c747cacae
Author: Siddhartha Jejurkar <f20180617@goa.bits-pilani.ac.in>
Date: Fri Jul 22 10:47:28 2022 +1000
UV: Edge support for select shortest path operator
Calculating shortest path selection in UV edge mode was done using vertex
path logic. Since the UV editor now supports proper edge selection [0],
this approach can sometimes give incorrect results.
This problem is now fixed by adding separate logic to calculate the
shortest path in UV edge mode.
Resolves T99344.
[0]: ffaaa0bcbf477c30cf3665b9330bbbb767397169
Reviewed By: campbellbarton
Ref D15511.
commit aa1ffc093c4711a40932c854670730944008118b
Author: Hans Goudey <h.goudey@me.com>
Date: Thu Jul 21 19:44:06 2022 -0500
Fix T99884: Crash when converting to old curve type
The conversion from Curves to CurveEval used an incorrect type
for one of the builtin attributes. Also, an incorrect default was used
for reading the nurbs_weight attribute.
commit fcb6a57b8dfdc9d18cb370f71f82d6f82f8d917d
Author: Hans Goudey <h.goudey@me.com>
Date: Thu Jul 21 19:11:50 2022 -0500
Fix BMesh conversion
commit d07a18e49b64d475f02b9edf24e3808adfbf4cfb
Author: Hans Goudey <h.goudey@me.com>
Date: Thu Jul 21 19:09:34 2022 -0500
Remove bad assert
commit 520cc7073a9ac8fd25425e7112f6c7d4dea6a43d
Author: Hans Goudey <h.goudey@me.com>
Date: Thu Jul 21 19:09:23 2022 -0500
Don't create layers when unnecessary
commit d39fde3662c792800945270a19612f81a4b8e8fd
Author: Hans Goudey <h.goudey@me.com>
Date: Thu Jul 21 18:35:16 2022 -0500
Parallelize flag copying
commit 76bdacec1bf299de6b36dbc6e45d7922ca15d969
Author: Hans Goudey <h.goudey@me.com>
Date: Thu Jul 21 18:19:46 2022 -0500
Cleanup variables names, add "finish" calls
commit e91eff347a9f855d3c0e757a94962078cd2e8d60
Author: Hans Goudey <h.goudey@me.com>
Date: Thu Jul 21 18:12:35 2022 -0500
Remove "new" in comment
|
|
|
|
|
|
Headers should only include other headers when absolutely necessary,
to avoid unnecessary dependencies and increasing compile times.
To make this change simpler, three DerivedMesh functions with a single
use were removed.
|
|
Also rename DNA struct members.
|
|
Use a shorter/simpler license convention, stops the header taking so
much space.
Follow the SPDX license specification: https://spdx.org/licenses
- C/C++/objc/objc++
- Python
- Shell Scripts
- CMake, GNUmakefile
While most of the source tree has been included
- `./extern/` was left out.
- `./intern/cycles` & `./intern/atomic` are also excluded because they
use different header conventions.
doc/license/SPDX-license-identifiers.txt has been added to list SPDX all
used identifiers.
See P2788 for the script that automated these edits.
Reviewed By: brecht, mont29, sergey
Ref D14069
|
|
As part of the project of converting `MVert` into `float3`
(more details in T93602), this is an easy step, since it
is only locally used runtime data. In the six places it was
used, the flag was replaced by a local bitmap.
By itself this change has no benefits other than making some
code slightly simpler. It only really matters when the other
flags are removed and it can be removed from `MVert`
along with the bevel weight.
Differential Revision: https://developer.blender.org/D13878
|
|
Allows to perform correction of coordinate delta/displacement in a
similar way of how sculpt mode handles sculpting on a deformed mesh.
An example of usecase of this is allowing riggers and sciprters to
improve corrective shapekey workflow.
The usage consists of pre-processing and access. For example:
object.crazyspace_eval(depsgraph, scene)
# When we have a difference between two vertices and want to convert
# it to a space to be stored, say, in shapekey:
delta_in_orig_space = rigged_ob.crazyspace_displacement_to_original(
vertex_index=i, displacement=delta)
# The reverse of above.
delta_in_deformed_space = rigged_ob.crazyspace_displacement_to_deformed(
vertex_index=i, displacement=delta)
object.crazyspace_eval_clear()
Fuller explanation with actual usecases and studio examples are written in
the comment:
https://developer.blender.org/D13892#368898
Differential Revision: https://developer.blender.org/D13892
|
|
The evaluated mesh is a result of evaluated modifiers, and referencing
other evaluated IDs such as materials.
It can not be stored in the EditMesh structure which is intended to be
re-used by many areas. Such sharing was causing ownership errors causing
bugs like
T93855: Cycles crash with edit mode and simultaneous viewport and final render
The proposed solution is to store the evaluated edit mesh and its cage in
the object's runtime field. The motivation goes as following:
- It allows to avoid ownership problems like the ones in the linked report.
- Object level is chosen over mesh level is because the evaluated mesh
is affected by modifiers, which are on the object level.
This patch allows to have modifier stack of an object which shares mesh with
an object which is in edit mode to be properly taken into account (before
the change the modifier stack from the active object will be used for all
objects which share the mesh).
There is a change in the way how copy-on-write is handled in the edit mode to
allow proper state update when changing active scene (or having two windows
with different scenes). Previously, the copt-on-write would have been ignored
by skipping tagging CoW component. Now it is ignored from within the CoW
operation callback. This allows to update edit pointers for objects which are
not from the current depsgraph and where the edit_mesh was never assigned in
the case when the depsgraph was evaluated prior the active depsgraph.
There is no user level changes changes expected with the CoW handling changes:
should not affect on neither performance, nor memory consumption.
Tested scenarios:
- Various modifiers configurations of objects sharing mesh and be part of the
same scene.
- Steps from the reports: T93855, T82952, T77359
This also fixes T76609, T72733 and perhaps other reports.
Differential Revision: https://developer.blender.org/D13824
|
|
- Added space below non doc-string comments to make it clear
these aren't comments for the symbols directly below them.
- Use doxy sections for some headers.
- Minor improvements to doc-strings.
Ref T92709
|
|
|
|
Without this, there was no way of finding out which object, modifier
combination caused the error, making the logs not very useful
for debugging.
|
|
|
|
|
|
|
|
This resolves a performance regression in 2.8x where every edit-mode
update performed an edit-mesh to mesh conversion.
Now the conversion will be lazily initialized if/when it's required.
New BKE_mesh_wrapper_* functions abstract over mesh data access.
Currently only edit-mesh and regular meshes are supported.
In the future sub-surface meshes may be supported too.
|
|
|
|
Return the correct sculpt level in BKE_multires_sculpt_level_get and
enable the property in the UI
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D7575
|
|
|
|
Make it explicit this data mask is added to the default mask.
|
|
This is in preparation of new object types. This only changes mesh_eval, we
may do the same for mesh_deform_eval and other areas in the future if there is
a need for it.
This previously caused a bug in T74283, that should be fixed now.
Differential Revision: https://developer.blender.org/D6695
|
|
than mesh"
This reverts commit f2b95b9eae2ee913c99cff7595527b18d8b49d0a.
Fix T74283: modifier display lost when moving object in edit mode.
The cause is not immediately obvious so better to revert and look at this
carefully.
|
|
This is in preparation of new object types. This only changes mesh_eval, we
may do the same for mesh_deform_eval and other areas in the future if there is
a need for it.
Differential Revision: https://developer.blender.org/D6695
|
|
Note that `BKE_library.h`/`library.c` were renamed to
`BKE_lib_id.h`/`lib_id.c` to avoid having a too generic name here.
Part of T72604.
|
|
The function `modifiers_disable_subsurf_temporary` disables
temporarily only subsurf modifiers with the `On Cage` option enabled.
But a modifier can act on cage even with this option disabled.
Differential Revision: https://developer.blender.org/D6722
|
|
This is a revert of a small fraction of commit rB5e332fd700
that introduced the issue according to bisect.
Doing a break here is wrong, because BKE_crazyspace_build_sculpt
assumes that processing stopped at the first deform modifier
without deformMatrices, and thus skips all modifiers until it
finds one like that. Thus this early loop exit makes the behavior
worse, as instead of skipping just Mask and Mirror, it skips all.
|
|
Also correct some outdated symbol references,
add missing 'name' commands.
|
|
This is a workaround for T58473 to avoid likely event of ruining
sculpted data.
Differential Revision: https://developer.blender.org/D6244
|
|
The issue was caused by crazy space distortion orientation happening
for subsurf modifier.
Solved by making it so subsurf only deforms the surface but keeps
matrices as-is. This is not fully mathematically correct, but is better
that the fall-back solution which was doing wrong matrices anyway.
Also, this is closer to have subsurf was handled prior to the
related changes.
Reviewed By: brecht, pablodp606
Differential Revision: https://developer.blender.org/D5991
|
|
Modifier stack evaluation would copy mesh settings other than mesh topology
automatically, outside of the individual modifier evaluation. This leads to hard
to understand code, and makes it unclear which settings are available in following
modifiers, and which only after the entire stack is evaluated.
Now every modifier is responsible to ensure the mesh it outputs preserves materials,
texture space and other settings, or alters them as needed.
Fixes T64739: incorrect texture space for various modifiers
Differential Revision: https://developer.blender.org/D5808
|
|
space issues"
This reverts commit e7a514369fe700dcc5a1fe433c8f709ed9595ded, it introduces
a bug in selection in edit mode.
Fixes T70103: can't select extruded Vertex
Ref T64739
|
|
This is a regression since PBVH was introduced for weight paint.
The solution is: treat subsurf and multires modifiers as deforming
ones for the weight painting. This is an easiest solution to make
PBVH use subdivided location of original vertices.
This change could simplify some of the weight paint by removing
the grids check, since PBVH is not supposed to be built from grids
in this case anymore.
Differential Revision: https://developer.blender.org/D5751
|
|
Modifier stack evaluation would copy mesh settings other than mesh topology
automatically, outside of the individual modifier evaluation. This leads to hard
to understand code, and makes it unclear which settings are available in following
modifiers, and which only after the entire stack is evaluated.
Now every modifier is responsible to ensure the mesh it outputs preserves materials,
texture space and other settings, or alters them as needed.
Fixes T64739: incorrect texture space for various modifiers
Differential Revision: https://developer.blender.org/D5808
|
|
This also splits vertex access and allocation so it's possible
to copy coordinates into an existing array without allocating it.
|
|
|
|
|
|
|
|
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
|
|
Use doxy references to function and enums,
also correct some names which became out of sync.
|
|
|
|
Need to use original mesh to get virtual modifiers list, otherwise
key datablocks will not be properly taken into account (since evaluated
mesh doesn't have key datablock).
|
|
We already have different storages for cddata of verts, edges etc.,
'simply' do the same for the mask flags we use all around Blender code
to request some data, or limit some operation to some layers, etc.
Reason we need this is that some cddata types (like Normals) are
actually shared between verts/polys/loops, and we don’t want to generate
clnors everytime we request vnors!
As a side note, this also does final fix to T59338, which was the
trigger for this patch (need to request computed loop normals for
another mesh than evaluated one).
Reviewers: brecht, campbellbarton, sergey
Differential Revision: https://developer.blender.org/D4407
|
|
While \file doesn't need an argument, it can't have another doxy
command after it.
|
|
When bmesh was in a branch we had both edit_mesh and edit_btmesh,
now there is no reason to use this odd name.
|
|
Move \ingroup onto same line to be more compact and
make it clear the file is in the group.
|
|
BF-admins agree to remove header information that isn't useful,
to reduce noise.
- BEGIN/END license blocks
Developers should add non license comments as separate comment blocks.
No need for separator text.
- Contributors
This is often invalid, outdated or misleading
especially when splitting files.
It's more useful to git-blame to find out who has developed the code.
See P901 for script to perform these edits.
|
|
|
|
Was initially reported when painting on a mesh with armature,
which was failing due to missing bbone cache. The issue was
deeper, and was related on the way which object was used to
calculate crazyspace.
|
|
|
|
DerivedMesh is now removed from edit-mesh modifier evaluation.
|