Blender Git Loki

Blender Git "temp_merge_gooseberry_hair" branch commits.

Page: 4 / 11

January 19, 2015, 18:38 (GMT)
Implementation of a target density feature for the hair simulation.

This allows setting a target density which the fluid simulation will
take into account as an additional term in the pressure Poisson
equation. Based on two papers
"Detail Preserving Continuum Simulation of Straight Hair" (McAdams et al. 2009)
and
"Two-way Coupled SPH and Particle Level Set Fluid Simulation" (Losasso et al. 2008)

Currently the target pressure is specified directly, but it will be
a lot more convenient to define this in terms of a geometric value such
as "number of hairs per area" (combined with hair "thickness").

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 18:38 (GMT)
Another fix for off-by-one hair grid resolution errors.
January 19, 2015, 18:38 (GMT)
Rewriting the grid rasterization function for hair segments.
January 19, 2015, 18:38 (GMT)
Draw actual hair keys when the "Guide Hair" setting is enabled.

Without this certain debug tasks become very hard to visualize.
January 19, 2015, 18:37 (GMT)
Fix for grid drawing in 3D view, was using one less grid cell.
January 19, 2015, 18:37 (GMT)
Merge branch 'hair_immediate_fixes' into gooseberry

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 18:36 (GMT)
Implemented PIC and FLIP methods for combining the fluid grid simulation
with the Lagrangian hair model.
January 19, 2015, 18:36 (GMT)
Main solver step for generating a divergence-free hair velocity field
on the grid.

This uses the Eigen conjugate-gradient solver to solve the implicit
Poisson equation for the pressure Laplacian:

div(grad(p)) = div(v)

As described in "Detail Preserving Continuum Simulation of Straight Hair"
(McAdams, Selle, 2009).

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 18:35 (GMT)
Pampering the stupid MSVC compiler again, it fails to build valid C code.
January 19, 2015, 18:35 (GMT)
Added new header for Eigen utility classes.

These make passing data between Eigen vector and matrix types and plain
C arrays more convenient.
January 19, 2015, 18:35 (GMT)
Updated a few comments.
January 19, 2015, 18:35 (GMT)
Compile hair volumetrics code as C++, so we can use Eigen easier.
January 19, 2015, 18:35 (GMT)
Minor debug code fix.

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 18:34 (GMT)
Use a fixed, uniform cell size for hair continuum grids.

This is a bit more awkward for artists to use, but necessary for
a stable solution of the hair continuum calculation. The grid size is
defined by the user, the extent of the grid is then calculated based on
the hair geometry. A hard upper limit prevents bad memory allocation
in case too small values are entered.

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 18:34 (GMT)
Removed unused voxel_filter_size DNA property.

This is an artifact of earlier attempts to implement velocity smoothing,
but doesn't work anyway.

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 18:34 (GMT)
Renamed HairVertexGrid to HairGrid, since it's not actually storing
hair vertex data.

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 18:31 (GMT)
Removed unused "collider grid" struct from hair volumetrics.

This is a leftover from previous approach of hair collisions (with
insufficient results). The hair volumetrics actually implements
"collision" with solid objects as well, but uses a Neumann boundary
condition on the main grid for this purpose.
January 19, 2015, 18:30 (GMT)
Better grid rasterization method for hair volumetric grids.

This is based on the paper
"Detail Preserving Continuum Simulation of Straight Hair"
(McAdams, Selle, Ward, 2009)

The main difference is that hair line segments are used rather than only
rasterizing velocity at the vertices. This gives a much better coverage
of the hair volume grid, otherwise gaps can be produced at smaller grid
cell sizes and the distribution is uneven along the hair curve.

The algorithm for rasterizing is a variation of Bresenham's algorithm
extended onto 3D grids.

Conflicts:
source/blender/physics/intern/BPH_mass_spring.cpp
January 19, 2015, 18:29 (GMT)
New debug element "circle" for simulations, which is quite useful for
visualizing scalar fields.
January 19, 2015, 18:28 (GMT)
Debug grid drawing for hair volume was drawing one subdivision too many.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021