Blender Git Loki

Git Commits -> Revision f68493f

Revision f68493f by Joseph Eagar
October 19, 2020, 11:10 (GMT)
Little design study for new API to replace various pbvh/sculpt
iterators (uncomment PROXY_ADVANCED in BKE_pbvh to enable):
+ Same idea as existing pbvh proxies.
+ Based on "struct of arrays" approach.
+ New ProxyVeryArray structure holds all the coordinates,
normals, indices, neighbor references, color, mask, etc
data--basically everything in PBVHVertIter and SculptNeightborIter.
+ Only the desired data is stored. Client code can pass a mask
stating which data layers it wants; e.g. normals, coordiantes, etc.

There's a lot of advantages to this approach: simpler and more
maintainable code, possibility of SSE/opencl/cuda vectorization down
the line, etc.

More importantly for this branch, it should be a great profiling tool.
No more trying to figure out which bit of API cruft is causing the CPU
cache to go haywire. I can eliminate a lot of performance bugs and
concentrate on the ones related to DynTopo.

Commit Details:

Full Hash: f68493f5bee352d4a7feb90c2488a264607c84ac
Parent Commit: 9f004eb
Lines Changed: +605, -58

6 Modified Paths:

/source/blender/blenkernel/BKE_pbvh.h (+126, -53) (Diff)
/source/blender/blenkernel/intern/pbvh.c (+381, -4) (Diff)
/source/blender/blenkernel/intern/pbvh_intern.h (+4, -1) (Diff)
/source/blender/editors/sculpt_paint/sculpt.c (+1, -0) (Diff)
/source/blender/editors/sculpt_paint/sculpt_intern.h (+1, -0) (Diff)
/source/blender/editors/sculpt_paint/sculpt_smooth.c (+92, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021