Blender Git Commits

Blender Git "temp_merge_gooseberry_hair" branch commits.

Page: 2 / 11

January 19, 2015, 19:27 (GMT)
Support in Cycles for the extra spiral keys in hair paths.
January 19, 2015, 19:27 (GMT)
Nicer calculation of the kink axis and result of the spiraling for
negative radius.
January 19, 2015, 19:27 (GMT)
Removed unused old code.
January 19, 2015, 19:27 (GMT)
Disable the path length check for spiral kink mode.

This test is terribly expensive for some reason and not necessary for
for the spiral mode anyway.
January 19, 2015, 19:26 (GMT)
Fix for calculation of the key velocity on the last child hair segment.
January 19, 2015, 19:26 (GMT)
Another crappy approach to spirals on hairs, crazy expensive though.

Conflicts:
source/blender/blenkernel/intern/particle.c
January 19, 2015, 19:26 (GMT)
Spiral kink mode for particles.

This is BAD code, but the particle kinking does not make it easy to
write a non-local modifier that requires neighboring positions,
curvature, etc. The feature is needed for Gooseberry.
January 19, 2015, 19:26 (GMT)
Optional clumping noise feature for simulating twisted hair strands.

This adds another level of clumping on child hairs. When enabled, child
hairs chose a secondary clumping target using a Voronoi pattern. This
adds visual detail on a smaller scale, which is useful particularly when
the number of parents is relatively small.

Natural fibres behave in a similar way when they become sticky and
intertwined. Hairs close to each other form a first twisted strand, then
combine into larger strands. Similar features can be found in ropes:
http://en.wikipedia.org/wiki/Hair_twists
http://en.wikipedia.org/wiki/Rope

Conflicts:
source/blender/blenloader/intern/versioning_270.c
January 19, 2015, 19:25 (GMT)
Disable scope updates in texture and image paint modes.

Scope update is very slow for high resolutions, and currently blocks
the UI thread(!). This is especially terrible in paint modes, where
each stroke causes a scope update and unacceptable freezing.

The scopes update method tries to avoid this somewhat by skipping if the
toolbar is disabled, but this doesn't help when painting where brush
tools etc. are frequently needed. It's also a bad-level poll, with the
core system accessing a UI element.

Eventually scope updates should become a low-priority background job,
as well as becoming threaded. Until then this polling provides a usable
workaround to the most outrageous cases.
January 19, 2015, 19:25 (GMT)
Curve-based control for "roughness" (noise displacement) of child hair.
January 19, 2015, 19:25 (GMT)
Curve-based control for child path tapering.

This is an alternative method to the current fixed function with a
clump factor and "shape" parameter. This function is quite limited and
does not give the desired result in many cases (e.g. long, parallel
rasta strands are problematic). So rather than trying to add more
parameters there is now a fully user-defined optional curve for setting
the tapering shape.
January 19, 2015, 19:25 (GMT)
Moved kink, clump and roughness functions into the dedicated source file.
January 19, 2015, 19:25 (GMT)
Reorganizing hair child code a little bit to make it not totally insane.

This contains a few pieces of code for a future "modifier" system that
would allow more flexible combination of effects. Eventually a node
system is the way to go, but the current code makes that impossible.
January 19, 2015, 19:25 (GMT)
Separate context freeing from task freeing in threaded particle updates
to prevent double-freeing/invalid mem access.

This can happen with the "virtual parents" feature, which generates both
parent and child paths. Each task free function also freed the shared
context, leading to double freeing.
January 19, 2015, 19:24 (GMT)
Properly register the `mathutils.interpolate` submodule.
January 19, 2015, 19:24 (GMT)
Fix for invalid access to undefined hair data in edge-only cloth meshes.

Cloth data is used both for hair and actual cloth, which makes things
really difficult. The face number was used for distinguishing the two
types (no faces == hair mesh), but the extra hair data necessary for
hair sim is generated by particles and not available for edge-only cloth
meshes. This really needs to be sanitized ...

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 19:21 (GMT)
Presets for hair dynamics.

This is necessary because the hair dynamics settings are not part of the
ParticleSettings datablock, but part of the convoluted cloth modifier
inside the particle system struct. In the future this will be recoded
properly, but in the meantime presets provide a simple an unobtrusive
way to have reusable dynamics settings for hair.

Conflicts:
release/scripts/startup/bl_ui/properties_particle.py
January 19, 2015, 19:20 (GMT)
Radical simplification of the wind effect on hair, since the previous
approach does not work very well.

Using a cross section estimate still causes large oscillations due to
varying hair force based on angles. It also requires a sensible hair
thickness value (particle radius) which is difficult to control and
visualize at this point.

The new model is based purely on per-vertex forces, which seems to be
much more stable. It's also somewhat justified by the fact that each
hair vertex represents a certain mass.

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 19:20 (GMT)
Fix for wind force function call.
January 19, 2015, 19:18 (GMT)
Improved force field effects on hair strands.

The previous calculation was modulated with the angle between the wind
direction and the segments, which leads to very oscillating behavior.

Now the formula includes an estimate for the geometric cross section
of a hair segment based on the incident angle and the hair thickness
(currently just the particle size). This gives a more stable behavior
and more realistic response to wind.

Conflicts:
source/blender/blenkernel/intern/particle_system.c
source/blender/physics/intern/BPH_mass_spring.cpp
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021