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-21Cleanup: styleCampbell Barton
2015-01-20Made SimDebugData into a single global instance.Lukas Tönne
This way it doesn't have to be stored as DNA runtime pointers or passed down as a function argument. Currently there is now no property or button to enable debugging, this will be added again later.
2015-01-20De-duplicate large block of shared code for GL vert attribsNicholas Bishop
Code in ccgdm_draw_attrib_vertex() was entirely the same as the top portion of the code in cddm_draw_attrib_vertex(). Moved this code to a new function, DM_draw_attrib_vertex(). ccgdm_draw_attrib_vertex() was removed in favor of calling DM_draw_attrib_vertex(). cddm_draw_attrib_vertex() still does a couple extra things, so it still exists but calls DM_draw_attrib_vertex(). In the interest of easy code review, no changes made to the code in DM_draw_attrib_vertex() other than the new name and an added comment. Reviewers: campbellbarton Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D1010
2015-01-20Fix for crash when using virtual parent hairs and clumping.Lukas Tönne
The paths for parents and children are generated using the same function with a rather obscure test to distinguish them. Modifiers (clump, kink, roughness) should not be applied to parents though.
2015-01-20Use separate flags to enable/disable clump and roughness curves forLukas Tönne
child hairs. This allows disabling the curves temporarily without losing the setup. Conflicts: source/blender/blenkernel/BKE_blender.h
2015-01-20Fix for slow deformation-motionblur in Cycles using the new spiral kinkLukas Tönne
mode. This was caused by variation of the number of keys on child hairs due to shortening of hair curves based on euclidian distances. The other kink modes also shorten hairs, but use the parametric distance instead, which does not vary with deformation of hairs.
2015-01-20Make removal of existing particle systems on copying optional.Lukas Tönne
This will be most useful when copying individual particle systems one-by-one (to be implemented).
2015-01-20Fix for particle system copy: This has to make sure the ORIGSPACE dataLukas Tönne
layer is available. Otherwise particle mapping to the new mesh cannot work with subdivided and constructively-modified meshes.
2015-01-20New operator for copying (hair) particle systems from one object toLukas Tönne
another, including edit data (grooming). This uses basically the same method as the existing connect/disconnect feature. The main difference is that it allows working with multiple objects and transferring the //particle/hair data// instead of the //mesh// data (which is what connect/disconnect expects). This is a much more realistic workflow when rigging, topology etc. changes and groomed hair has to be transferred to the changed model.
2015-01-20Removed unused particles pointer from particle edit data.Lukas Tönne
2015-01-20New texture influence option for particle kink amplitude (as opposed toLukas Tönne
frequency).
2015-01-20Renaming "Kink" texture influence to "Kink Frequency" to be moreLukas Tönne
specific.
2015-01-20Spiral rotation axis was not always fully normalized, avoid an assert.Lukas Tönne
2015-01-20Make random child length work again with the spiral kink mode.Lukas Tönne
2015-01-20Allow clumping and roughness in Spiral kink mode as well.Lukas Tönne
This requires interpolating the parent key properties, because no single parent key can be mapped to each key on the children any more.
2015-01-20Optional randomization factors for the spiral radius and axis orientation.Lukas Tönne
2015-01-20Nicer calculation of the kink axis and result of the spiraling forLukas Tönne
negative radius.
2015-01-20Removed unused old code.Lukas Tönne
2015-01-20Disable the path length check for spiral kink mode.Lukas Tönne
This test is terribly expensive for some reason and not necessary for for the spiral mode anyway.
2015-01-20Fix for calculation of the key velocity on the last child hair segment.Lukas Tönne
2015-01-20Another crappy approach to spirals on hairs, crazy expensive though.Lukas Tönne
Conflicts: source/blender/blenkernel/intern/particle.c
2015-01-20Spiral kink mode for particles.Lukas Tönne
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.
2015-01-20Optional clumping noise feature for simulating twisted hair strands.Lukas Tönne
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
2015-01-20Curve-based control for "roughness" (noise displacement) of child hair.Lukas Tönne
2015-01-20Curve-based control for child path tapering.Lukas Tönne
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.
2015-01-20Moved kink, clump and roughness functions into the dedicated source file.Lukas Tönne
2015-01-20Reorganizing hair child code a little bit to make it not totally insane.Lukas Tönne
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.
2015-01-20Separate context freeing from task freeing in threaded particle updatesLukas Tönne
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.
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-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-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-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-20New debug element "circle" for simulations, which is quite useful forLukas Tönne
visualizing scalar fields.
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-20Moved render simplification function for particle distribution into theLukas Tönne
distribution code.
2015-01-20Removed unused variable.Lukas Tönne
2015-01-20A little bit of code sanity by splitting particle distribution functionLukas Tönne
by type. Instead of squashing totally unrelated code into the same monster function.
2015-01-20Moved particle code for distributions into own file to make hackingLukas Tönne
easier. This code is badly broken and needs to be replaced, but at least having a workable code structure might help with quick hacks to fix the worst cases.
2015-01-20New hair editing feature "Shape Cut", for cutting hair based on a meshLukas Tönne
shape instead of a brush tool. The brush cutting tool for hair, while useful, is not very accurate and often requires rotating the model constantly to get the right trimming on every side. This makes adjustments to a hair shape a very tedious process. On the other hand, making proxy meshes for hair shapes is a common workflow. The new operator allows using such rough meshes as boundaries for hair. All hairs that are outside the shape mesh are removed, while those cutting it at some length are shortened accordingly. The operator can be accessed in the particle edit mode toolbar via the "Shape Cut" button. The "Shape Object" must be set first and stays selected as a tool setting for repeatedly applying the shape.
2015-01-20Fix for inverted condition: hair data needs to be rebuilt when theLukas Tönne
cloth DM does not exist.
2015-01-20Cleanup: Removed the unnecessary cloth solver abstraction (there is onlyLukas Tönne
one solver anyway), and split some particle cloth functions for clarity. Conflicts: source/blender/blenkernel/BKE_particle.h source/blender/blenkernel/intern/particle_system.c source/blender/blenloader/intern/versioning_270.c source/blender/makesdna/DNA_particle_types.h source/blender/makesrna/intern/rna_particle.c
2015-01-20enum instead of #define for cloth vertex flags.Lukas Tönne
2015-01-20Removed accidentally committed debug print.Lukas Tönne
2015-01-20Use the generic task scheduler for threaded particle tasks, i.e.Lukas Tönne
distribution and path caching for child particles. This gives a significant improvement of viewport playback performance with higher child particle counts. Particles previously used their own threads and had a rather high limit for threading. Also threading apparently was disabled because only 1 thread was being used ...
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-20Guide hair drawing for hair particles.Lukas Tönne
Without this the particle system only shows the actual non-simulated hairs ("guide hairs") during edit mode. These hairs are used for goals as well, so showing them in the regular viewport is pretty important. Also the usual hair curves are interpolated along the entire length, which makes it very difficult to see exact vertex positions, unless using exact powers of 2 for the segment number and match the display steps. Conflicts: source/blender/blenkernel/intern/particle.c
2015-01-20Improved child hair curling for interpolated child particles.Lukas Tönne
The curl radius for children in interpolated mode was calculated using the total offset from the parent particle. This leads to very large radii when the distance is large due to sparse parents. Such behavior is also very unrealistic because the curl radius is mostly constant and defined by the material properties. All the child hairs are roughly parallel by default. To simulate the agglomeration of children into hair wisps the "flatness" parameter is now used to clump them together.