Blender Git Loki

Blender Git commits from all branches.

Page: 2572 / 2888

August 7, 2014, 14:21 (GMT)
picky - prefer braces
August 7, 2014, 14:21 (GMT)
remove rna_Space_transform_manipulators_update

Better not have settings manipulate eachother where possible,
in this case an operator could be used to manage mixing manipulator options
August 7, 2014, 14:09 (GMT)
remove rna_Space_transform_manipulators_update

Better not have settings manipulate eachother where possible,
in this case an operator could be used to manage mixing manipulator options
August 7, 2014, 14:02 (GMT)
minor tweaks
August 7, 2014, 13:48 (GMT)
Correct example
August 7, 2014, 13:23 (GMT)
Fix for smoothing iterator: Frame rotation was disabled for angles > 90
degrees, due to missing abs() call.
August 7, 2014, 13:20 (GMT)
Merge branch 'master' into pie-menus

Conflicts:
source/blender/editors/interface/interface_intern.h
August 7, 2014, 12:23 (GMT)
Use the hair root normal for setting up the reference frames.

Currently the tangent is generated simply by projecting the Z-axis,
eventually we need to have a user-defined tangent space of some kind for
this.
August 7, 2014, 10:26 (GMT)
Removed the debug "smoothing" factor.
August 7, 2014, 10:23 (GMT)
Expose the bend smoothing factor in the UI and compute the average
curve segment rest length for scaling.
August 7, 2014, 09:58 (GMT)
A bunch of fixes for the frame propagation method for calculating bend
forces between hair segments.

This is still not quite ready, in particular first/last hair segments
are a bit problematic.
August 7, 2014, 09:49 (GMT)
According to final verdict:

* Remove sticky keys
* Remove all pie menus

Left some icon changes to some properties and some reordering of enums
to look better for pie menus (Might go away in a later iteration).

Some pies will make it back as an Add-On (will be a separate commit)
August 7, 2014, 04:10 (GMT)
quiet warning
August 7, 2014, 04:06 (GMT)
Merge branch 'master' into temp-array-modifier
August 7, 2014, 03:58 (GMT)
Stopgap bugfix for trim tessellator failure when trim curve hits vert, read/write unstashed & bugfixed to not crash on undo push, changed UV axis orientation and coloring for consistency with RGB={+x,+y,+z} mnemonic.
August 6, 2014, 19:34 (GMT)
Custom Split Normals current state

This is not yet ready for a detailed review, requesting more a skim one to see whether there are some big/key issues in current patch code/design.

Further info on concepts used for custom lnors storage can be found [here](http://wiki.blender.org/index.php/User:Mont29/Foundation/Split_Vertex_Normals#Loop_normal_edition), but to summarize, it defines for each smooth fan (i.e. group of neighbor loops sharing a same normal) an orthonormal system which one axis is the auto lnor, and another one is aligned with a 'reference' edge which defines the start of the smooth fan. In addition, we store two angles, alhpa being the average angle between the auto lnor and all edges, and beta, the angle bewteen the start and end edges of the fan (around auto lnor).

We then store custom lnors as a set of two factors, one applied to alpha angle (to get how much 'far away' from auto lnor custom one is), the other applied to beta angle (to get where around auto lnor custom one is).

Since we need those data as well (like auto lnors), nearly all this adds to existing `BKE_mesh_normals_loop_split()` (and its BMesh version), with a small API to define lnor spaces, and convert raw custom normals to/from clnor data format (the two angle factors). Note lnor spaces also embed a representation of smoothfans (as a linklist of relevant loop's indices).

Also note than all this overhead only takes effect when computing lnor spaces and/or using custom lnors, else current split lnors code is nearly unchanged.

Would also like some advice on performances topic - right now, custom split normals can be up to 50 (or more) times slower than mare autosmooth in worst 'grid/sphere' cases, mostly because we can't skip anymore fanning around fully smooth vertices (since we have to generate lnor spaces for those too). In a more average case, it's something like three, four times slower (really depends on the topology!).

I have two different tracks for optimization currently:

* Use real threading (BLI_thread, could probably gives three or four times speedup with modern CPUs). Not really considering OMP, it�??s practically unusable on OSX and Win platforms currently (and not that perfomant compared to real threading anyway, afaik). Thinks the main loop of `BKE_mesh_normals_loop_split` (and it�??s BMesh equivalent) would be a good candidate for that, afaics each loop processing can be operated in parallel (this is a bit tricky to analyze, so not yet 100% sure about it, though).

* Cache lnor spaces, using a similar system to current skey gsoc to detect changes in geometry or topology that would need to recompute them. Since computing those lnor spaces takes a huge part of the added processing time, this should lead to a nice gain too. But that would mean caching quite a bit of data in BMesh, Mesh and DerivedMesh...

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D703
August 6, 2014, 19:33 (GMT)
Fix `BKE_mesh_has_custom_loop_normals` in Edit mode, get rid of some debug prints, various minor tweaks.
August 6, 2014, 19:33 (GMT)
Fix stupid handling of clnors_data in editderivedmesh.

There was a mismatch between index/offset, and we need to handle both clnors from dm and from actual bm data...
August 6, 2014, 19:33 (GMT)
Add inlined-checks/fix of clnors data consistency to BKE_mesh_normals_loop_split() as well...
August 6, 2014, 19:33 (GMT)
Several enhancements:

* Add an 'has custom lnors' helper, also available from RNA.
* Add a 'factors' array to set custom lnors func, to make lerp interpolation between custom lnor and auto lnor.
* Add a 'set custom lnors from vert nors' func (also available from RNA).
* Reshuffle a bit clnor CD data handling in UI (now in Normals panel, and you can also add a layer if needed).
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021