Blender Git Commit Log

Git Commits -> Revision 214faa1

Revision 214faa1 by Bastien Montagne (mesh-transfer-data)
November 3, 2014, 19:22 (GMT)
Mapping: much better handling of complex cases.

complex cases = normal projection (loops esp. with islands, edges and polys 'sampling' mappings).

Basic idea is, sometimes raycast will miss, but just slightly - and yet we'd rather have a hit,
even 'heavily' approximated, than no hit at all. So what we do is making several raycasting
for a given ray, with bigger radius each time - and smaller weight in case it is successful.

That way, we can take into consideration approximated hits, yet giving priority to precise hits.

This is especially important in islands case, since sometimes 80% of loops of a poly hit fine withing
a given island, but other 20% do not - yet, with approximated raycasting, we still can find
a 'good enough' hits for those. Avoids too much 'no hit' cases, which give really ugly results
in UV case eg.

Commit Details:

Full Hash: 214faa1c32c7c91653b5b44862cc60f8ae223b67
Parent Commit: 35bc5bc
Lines Changed: +85, -33

1 Modified Path:

/source/blender/blenkernel/intern/mesh_mapping.c (+85, -33) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021