Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-01-20Cleanup: warningsCampbell Barton
2015-01-20Fixed merge errors.Lukas Tönne
2015-01-20Fix for invalid access to undefined hair data in edge-only cloth meshes.Lukas Tönne
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
2015-01-20Radical simplification of the wind effect on hair, since the previousLukas Tönne
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
2015-01-20Fix for wind force function call.Lukas Tönne
2015-01-20Improved force field effects on hair strands.Lukas Tönne
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
2015-01-20Fix for applying the bending randomness factor.Lukas Tönne
A stupid hack is needed here, changing the way the factor is applied to angular bending springs. In cloth sim the bending factor of individual springs is applied as a mix value between the bending stiffness and a max value, but this max value isn't even used in hair sim so that approach becomes useless. Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Randomness factor for hair bending stiffness.Lukas Tönne
This helps to create some variation in a hair system, which can otherwise become very uniform and boring. It's yet another confusing setting in a system that should have been nodified, but only option for now (broken windows ...) Conflicts: source/blender/blenkernel/intern/particle_system.c source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Nicer hashing functionality for sim debugging using a variadic macroLukas Tönne
to support multiple hash identifiers. Using explicit hashing functions for every sim debug call defeats the purpose of having a quick feedback system. Now this can be done simply by passing an arbitrary number of hash inputs (integers) at the end of the function calls, which are then combined by a system of variadic macros (based on the ELEM feature). Up to 8 identifiers are supported currently, but more could be added easily if needed. Conflicts: source/blender/blenkernel/intern/particle_system.c source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Some tweaking of value ranges for hair target density and removedLukas Tönne
density factor (already included in grid velocity). Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Inverted effect of target density was unstable, the divergence termLukas Tönne
needs to be substracted instead.
2015-01-20Use dedicated debug values in cloth settings instead of abusing unusedLukas Tönne
other values. Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Fixed wrong stride values used for offsetting the index of Eigen values.Lukas Tönne
The Eigen solver for hair grids uses an extra margin of 1, which means greater stride values.
2015-01-20Hair grid code was using an invalid hair segment at each hair end withLukas Tönne
zero vectors, leading to bad density values. Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20A bunch of debug drawing changes.Lukas Tönne
Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Corrected the divergence and gradient calculation for the hair gridLukas Tönne
solver input and output. This uses the central difference method (instead of combined forward/ backward difference), which makes it easier to correctly account for grid borders.
2015-01-20Fallback method for defining density in the hair grid using discreteLukas Tönne
samples. This is just an intermediate method to make sure the density is valid. Eventually the closest-point method should be used, but for testing the poisson solver this is easier to debug. Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Added a margin to the number of cells used in the poisson grid solver,Lukas Tönne
to ensure we always have one layer of empty cells around the fluid.
2015-01-20Fix for merge errors and leftover unused code lines.Lukas Tönne
2015-01-20Implementation of a target density feature for the hair simulation.Lukas Tönne
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
2015-01-20Another fix for off-by-one hair grid resolution errors.Lukas Tönne
2015-01-20Rewriting the grid rasterization function for hair segments.Lukas Tönne
2015-01-20Merge branch 'hair_immediate_fixes' into gooseberryLukas Tönne
Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Implemented PIC and FLIP methods for combining the fluid grid simulationLukas Tönne
with the Lagrangian hair model.
2015-01-20Main solver step for generating a divergence-free hair velocity fieldLukas Tönne
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
2015-01-20Added new header for Eigen utility classes.Lukas Tönne
These make passing data between Eigen vector and matrix types and plain C arrays more convenient.
2015-01-20Updated a few comments.Lukas Tönne
2015-01-20Compile hair volumetrics code as C++, so we can use Eigen easier.Lukas Tönne
2015-01-20Minor debug code fix.Lukas Tönne
Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Use a fixed, uniform cell size for hair continuum grids.Lukas Tönne
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
2015-01-20Removed unused voxel_filter_size DNA property.Lukas Tönne
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
2015-01-20Renamed HairVertexGrid to HairGrid, since it's not actually storingLukas Tönne
hair vertex data. Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Removed unused "collider grid" struct from hair volumetrics.Lukas Tönne
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.
2015-01-20Better grid rasterization method for hair volumetric grids.Lukas Tönne
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
2015-01-20Unused leftover debug variable.Lukas Tönne
2015-01-20Reimplemented the voxel texture type for displaying hair continuum grids.Lukas Tönne
Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Debug visualization code of a slice of the hair velocity vector field.Lukas Tönne
2015-01-20Removed arbitrary factor 2.0 on volumetric hair friction factor.Lukas Tönne
This was introducing energy into the system for any factor beyond 0.5 and caused major instability.
2015-01-20Fill the hair volume grid with the _new_ velocities from the firstLukas Tönne
solver step, instead of using the previous step's velocities. Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Debug drawing feature to visualize the hair continuum grid.Lukas Tönne
2015-01-20Perform grid-based velocity smoothing for hair outside of the implicitLukas Tönne
solver step. Calculating forces and jacobians from linearly interpolated grid values is problematic due to discontinuities at the grid boundaries. The new approach of modifying velocities after the backward euler solver step was suggested in a newer paper "Detail Preserving Continuum Simulation of Straight Hair" (McAdams, Selle 2009) Conflicts: source/blender/physics/intern/BPH_mass_spring.cpp
2015-01-20Minor fix for lost variable declaration during cherry-picking.Lukas Tönne
2015-01-20Fix for warnings/errorsLukas Tönne
Conflicts: source/blender/blenkernel/intern/key.c source/blender/blenkernel/intern/particle_system.c source/blender/makesrna/intern/rna_particle.c
2015-01-20Switched back to blender implicit solver for merge.Lukas Tönne
2015-01-20Unified the main Eigen solver function a bit for constrained/unconstrainedLukas Tönne
solver variants.
2015-01-20Ported the remaining implicit solver functions for Eigen.Lukas Tönne
Also added a couple of utility wrapper functions for Eigen types to make interfacing with plain float arrays and blenlib math easier.
2015-01-20Updating Eigen implicit dynamics solver implementation to adhere to theLukas Tönne
new mass-spring solver API. Conflicts: source/blender/physics/intern/implicit_eigen.cpp
2015-01-20Removed block matrix indices storage from ClothSpring struct.Lukas Tönne
This is not necessary: the implicit solver data can keep track instead of how many off-diagonal matrix blocks are in use (provided the allocation limit is calculated correctly). Every time a spring is created it then simply increments this counter and uses the block index locally - no need to store this persistently.
2015-01-20Removed unused force arguments for angular bending springs and avoidLukas Tönne
redundant calculation for counterforces.
2015-01-20Added separate damping for bending springs.Lukas Tönne
The bend damping factor was hardcoded to the same value as the stiffness. Now it has its own factor in the settings and button in hair dynamics.