Go to file
Hans Goudey 44b79af4fc Cleanup: Sculpt: Simplify face and face set iteration
This commit removes knowledge about face sets from the PBVH,
and changes iteration over faces to not depend on the PBVH face
iterator abstraction. Though this adds slightly more boilerplate to
iteration over faces, it makes the whole process more data oriented
and allows use of index-based utilities like `gather` and `scatter`
in the mesh case, and simpler iteration over BMesh faces for
dynamic topology.

Setting face sets is now specialized per PBVH type in a few places
in a similar way. The general goal is to reduce branching and function
calls at the lowest level of hot loops, and to make code more aware
of the data structures it uses, both for performance and clarity.

Since the remaining uses of the face iterator are removed,
the iterator itself is removed too.

Related commits:
- 97f2b01ea93b599a537d
- 756dea7ca1ec31df6ac4
- a6a2af5fdd89793d2fdb

Pull Request: https://projects.blender.org/blender/blender/pulls/114417
2023-11-03 10:27:38 +01:00
.gitea Gitea: add note that developers must opt-out of inclusion in AUTHORS 2023-08-18 09:23:43 +10:00
.github Docs: change Git URLs to point projects.blender.org instead of git.blender.org 2023-02-07 14:23:05 +01:00
build_files Build: upgrade Intel Graphics Compiler on Linux 2023-11-02 22:27:38 +11:00
doc Merge branch 'blender-v4.0-release' 2023-11-01 10:33:27 +02:00
extern Merge branch 'blender-v4.0-release' 2023-10-31 18:17:46 +01:00
intern Merge branch 'blender-v4.0-release' into main 2023-11-02 19:02:35 +01:00
locale Revert "I18N/UI: Work around #114080: Lack of Khmer script in built-in fonts." 2023-10-31 15:16:10 +01:00
release UI: improve mesh edge highlighting 2023-11-02 22:09:17 +11:00
scripts EEVEE-Next: Make Ambient Occlusion Pass use Horizon Scan 2023-11-02 19:22:01 +01:00
source Cleanup: Sculpt: Simplify face and face set iteration 2023-11-03 10:27:38 +01:00
tests Revert changes from main commits that were merged into blender-v4.0-release 2023-10-30 21:40:35 +01:00
tools Merge branch 'blender-v4.0-release' 2023-11-02 16:10:37 +11:00
.clang-format clang-format: set BraceWrapping::AfterControlStatement to "MultiLine" 2023-05-02 09:37:08 +10:00
.clang-tidy Clang-tidy: Ignore variable name length and .c/.cc include warnings 2022-05-06 15:26:54 +02:00
.editorconfig
.git-blame-ignore-revs Cleanup: add commit to .git-blame-ignore-revs 2023-05-03 20:31:11 +10:00
.gitignore Ignore build files for VS and VS Code 2023-03-07 17:38:34 +01:00
AUTHORS AUTHORS: add 3 new developers 2023-11-02 16:09:11 +11:00
CMakeLists.txt Merge branch 'blender-v4.0-release' into main 2023-11-01 18:41:16 +01:00
COPYING
GNUmakefile Makefile: remove redundant directory changing 2023-09-29 16:44:31 +10:00
make.bat Windows: Propagate errors in make.bat 2023-08-16 19:29:47 +02:00
pyproject.toml pyproject: remove tools/pyproject.toml 2023-03-01 22:18:28 +11:00
README.md Update references to the new projects platform and main branch 2023-02-07 14:18:19 +01:00

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender screenshot

Project Pages

Development

License

Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.

See blender.org/about/license for details.