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
2018-04-16Cleanup: indentationCampbell Barton
2018-04-01Cleanup: remove global headerCampbell Barton
2018-03-16Depsgraph: Move evaluation debug prints to depsgraphSergey Sharybin
This way we can easily control format and keep it consistent. And also possibly do other trickery, like coloring addresses!
2018-02-21Depsgraph: Split debug flagsSergey Sharybin
Now it's possible to have debug messages for following things: - Graph construction - Graph evaluation - Graph tagging
2018-02-18Cleanup: add 2d suffix to BLI filesCampbell Barton
Some of these API's can have 3D versions, explicitly name them 2D.
2018-02-15Simple hair children: Make twist affected by vertex groupSergey Sharybin
The idea is to give a control over direction of twist, and maybe amount of twist as well. More concrete example: make braids on left and right side of character head to be twisting opposite directions. Now, tricky part: we need some negative values to flip direction, but weights can not be negative. So we use same trick as displacement map and tangent normal maps, where 0.5 is neutral, values below 0.5 are considered negative and values above 0.5 are considered positive.
2018-02-15Simple hair children: Initial implementation of twist controlSergey Sharybin
It allows to have children hair to be twisted around parent curve, which is quite an essential feature when creating hair braids. There are currently two controls: - Number of turns around parent children. - Influence curve, which allows to modify "twistness" along the strand.
2018-02-07Cleanup: add _types.h suffix to DNA headersCampbell Barton
2018-01-10Task scheduler: Use restrict pointer qualifierSergey Sharybin
Those pointers are never to be aliased, so let's be explicit about this and hope compiler does save some CPU ticks.
2018-01-09Task scheduler: Use single parallel range function with more flexible functionSergey Sharybin
Now all the fine-tuning is happening using parallel range settings structure, which avoid passing long lists of arguments, allows extend fine-tuning further, avoid having lots of various functions which basically does the same thing.
2018-01-09Task scheduler: Get rid of extended version of parallel range callbackSergey Sharybin
Wrap all arguments into TLS type of argument. Avoids some branching and also makes it easier to extend things in the future.
2017-09-26Cleanup: indentationCampbell Barton
2017-07-28Fix T52156: Hair dynamics broken with density textureLuca Rood
Even strands that were excluded by the density texture were being added to the DM passed to cloth, but these ended up having some invalid data, because they were not fully constructed. This simply excludes `UNEXISTED` particles from the DM generation, as would be expected.
2017-07-21Fix T52134: New depsgraph crashes when evaluating several psys on from objectSergey Sharybin
2017-06-02Cleanup: styleCampbell Barton
2017-01-31Cleanup: Rename callback flags from library_query to `IDWALK_CB_...`Bastien Montagne
Better to have clear way to tell whether flag is parameter for BKE_library_foreach_ID_link(), parameter for its callback function, or return value from this callback function.
2016-10-25API: Fix LinksAaron Carlisle
Self-explanatory. to find broken links run `sphinx-build -b linkcheck sphinx-in sphinx-out` Reviewers: mont29 Tags: #bf_blender, #python, #infrastructure:_websites Differential Revision: https://developer.blender.org/D2297
2016-09-15Fix crash in some cases when deleting particle systems.Bastien Montagne
Those 'never null' ID pointers are really a PITA to handle... luckily we don't have much of those around! Found by Sybren, thanks. Should be backported to 2.78.
2016-08-11Fix T49004 and motion blur of cloth, softbody, etc past the end frame.Alexander Gavrilov
Point cache read code contains checks designed to prevent it reading stale data when the relevant simulation code should instead compute the next frame from the previous one. However in some situations like motion blur subframes the simulation can't possibly do it and just exits. This causes completely incorrect motion blur at or after the last cached frame. To fix, add a parameter that tells the cache code whether it should apply the checks and exit, or read what it can even if stale (true means exactly same as old behavior). Doing this in cache rather than clamping the frame number better in the caller lets it handle the case of incomplete cache that stops before the official last frame. Reviewed By: mont29, lukastoenne Maniphest Tasks: T49004 Differential Revision: https://developer.blender.org/D2144
2016-08-06Fix T26658: particles stopped or bounced by 100% permeability colliders.Alexander Gavrilov
There were two issues here. One is that the fix done originally for this bug only checks for colliding with the same face as the single preceeding hit. If the particle hits an edge or vertex of the collider, it in fact hits two or more faces, so the loop ends up cycling between first two of them and reaches the max collision limit. The fix is to disable the collider for the sim step once a permeability roll succeeds, by adding it to a skip list. Skipping just one face causes some particles to bounce at odd angles in case of partial permeability. The second problem was that the collider bounced back a small percentage of particles, and the cause seemed to be that the code was set to flip the velocity if the particle was just past the collider but still within collision distance. Inverting both values causes a half permeable collider to stop particles, so it seems that this if branch shouldn't bounce at all. Test file: {F327322} Reviewers: lukastoenne, brecht Reviewed By: brecht Subscribers: brecht, #physics Maniphest Tasks: T26658 Differential Revision: https://developer.blender.org/D2120
2016-08-01Fix T48991: some particles emitted at a distance from object.Alexander Gavrilov
The cause seems to be that despite dt_frac being computed as 1/(subframes+1) with integer subframes value, it doesn't always add up to exactly 1.0 due to precision limitations. If the sum is similar to 1.00000???, the last subframe is skipped, and all particles that were supposed to be emitted in that interval are emitted next frame, with the code working incorrectly due to skewed time range. To fix, separate the code from the dynamic timestep feature that adjusts the last subframe length into a separate function, and use it even when dynamic timestep is disabled.
2016-07-31Support limiting collisions by group for softbody and particlesAlexander Gavrilov
This feature is extremely useful for layering multiple cloth objects, and there is no reason there shouldn't be the same kind of feature for softbody.
2016-06-23Fix T48658: Cycles render & render preview corrupts particlesCampbell Barton
Replaces `G.is_rendering` with `use_render_params` argument. This is needed for Cycles, which attempts to restore render-preview settings from particles, after it gets its own particle data, but fails to restore because `G.is_rendering` was being checked in psys_cache_paths (and other places).
2016-06-18Cleanup: style, whitespace, doxy filepathsCampbell Barton
2016-03-30Partly fix (unreported) particles not updating correctly when changing settings.Bastien Montagne
Point-cached particles (those using simulations) would not update at all outside of first frame, due to PSYS_RECALC_RESET flag being ingnored in `system_step()`... For some mysterious reasons, udate is still non-fully functional outside of startframe (e.g. changing face distribution between random and jittered), but at least when choosing 'Vertices' you get particles from verts and not faces!
2016-03-19BLI_kdopbvh: Pass center to to range callbackCampbell Barton
Useful when BLI_bvhtree_range_query callback calculates a new position to measure from.
2016-03-13Fix T47773: Particle System with Boids Crash.Bastien Montagne
Problem was, during initialization of boids particles in `dynamics_step()`, psys of target objects was not obtained with generic `psys_get_target_system()` as later in code, which could lead to some uninitialized `psys->tree` usage... Think it's safe enough for 2.77, though not a regression.
2016-03-12Fix T47763: 2.77 RC2 (Fluid) Particle Baking slower compared to 2.67b.Bastien Montagne
Static schedule was responsible here... Also, made a minor optimization in case adaptative (auto) subframes are enabled, gives a few percent of speedup here.
2016-02-02Fix T46382: Crash sharing particle system with clump or rough curvesSergey Sharybin
Made those curves local to thread evaluation now, so there is no threading conflict accessing them from evaluation threads anymore.
2016-01-20Particle_system.c: OMP -> BLI_task.Bastien Montagne
The threaded code is twice quicker now (from an average of 20ms/frame to 10ms/frame while baking 10000 particles here e.g.)! Think this is mostly due to usage of 'dynamic' scheduler in OMP code though, from my experience so far this tends to have dramatic effects over performances, static scheduler is usually much much more efficient.
2016-01-04Fix T47038: Particles in Particle Edit Mode get added in completely wrong ↵Bastien Montagne
location. It also fixes another issue (crash) related to symmetric editing. Quite involved, we (try to!) fix complete broken logic of parts of particle code, which would use poly index as tessface one (or vice-versa). Issue most probably goes back to BMesh integration time... This patch mostly fixes particle editing mode: - Adding/removing particles when using generative modifiers (like subsurf) should now work. - Adding/removing particles with a non-tessellated mesh (i.e. one having ngons) should also mostly work. - X-axis-mirror-editing particles over ngons does not really work, not sure why currently. - All this in both 'modes' (with or without using modifier stack for particles). Tech side: - Store a deformed-only DM in particle modifier data. - Rename existing DM to make it clear it's a final one. - Use deformed-only DM's tessface2poly mapping to 'solve' poly/tessface mismatches. - Make (part of) mirror-editing code able to use a DM instead of raw mesh, so that we can mirror based on final DM when editing particles using modifier stack (mandatory, since there is no way currently to find orig tessface from an final DM tessface index). Note that this patch is not really nice and clean (current particles are beyond hope on this side anyway), it's more like some urgency bandage. Whole crap needs complete rewrite anyway, BMesh's polygons make it really hard to work with current system (and looptri would not help much here). Also, did not test everything possibly affected by those changes, so it needs some users' testing & validation too. Reviewers: psy-fi Subscribers: dfelinto, eyecandy Maniphest Tasks: T47038 Differential Revision: https://developer.blender.org/D1685
2015-11-23Cleanup: shadowing (blenkernel)Campbell Barton
2015-11-11And another fix to psys ID handling - ParticleSystem->part **is** user counted!Bastien Montagne
2015-11-11Fix (unreported) potential crash: ParticleSystem->part shall never be NULL.Bastien Montagne
2015-10-23BLI_math: add invert_qt_normalizedCampbell Barton
When the quat is known to be unit length, so we can avoid scaling (just conjugate_qt which asserts on non unit quats).
2015-10-08Add id looper for particlesystem.Bastien Montagne
2015-08-28Partial fix of T44881: Fix for missing particles update when changing seedSergey Sharybin
Was only visible with new dependency graph. Changing emit_from still doesn't behave fully reliably tho, that needs some closer investigation.
2015-08-21BVH-raycast: Use watertight intersectionsCampbell Barton
By default watertight intersections are used, For callbacks where its not needed, BLI_bvhtree_ray_cast_ex can be called without the BVH_RAYCAST_WATERTIGHT flag. Fixes T45286
2015-08-21BVH-raycast: ensure input direction is unit-lengthCampbell Barton
This was already the case for most users of ray-cast. Doing this avoids 2x normalize calls per ray-cast in many places.
2015-07-31Replace MFace w/ vert-tri's for collision modifierCampbell Barton
Note that the collision modifier doesn't have any use for Loop indices, so to avoid duplicating the loop array too, MVertTri has been added which simply stores vertex indices (runtime only).
2015-07-01Fix T45253: Particle emitter volume mode and grid mode broken in 2.75.xSergey Sharybin
This is a regression since dced56f and root of the issue comes to the fact that grid distribution sets UNEXIST flag during distribution, which is then being reset in initialize_all_particles(). This commit solves the issue, but it's not really nice and some smart guy might want to revisit it.
2015-07-01Particles: Code cleanup, whitespaceSergey Sharybin
2015-05-12Depsgraph: Add evaluation callbacks for granular nodes updateSergey Sharybin
This commit only adds callbacks which then later be used with major dependency graph commit, keeping the upcoming commit more clean to follow. Should be no functional changes so far still.
2015-05-04Separate scene simplification into viewport and renderSergey Sharybin
This way it is possible to have viewport simplification bumped all the way up, making viewport really responsive but still have final render to use highest subdivision possible. Reviewers: lukastoenne, campbellbarton, dingto Reviewed By: campbellbarton, dingto Subscribers: dingto, nutel, eyecandy, venomgfx Differential Revision: https://developer.blender.org/D1273
2015-05-03Fix T44185, Fix T44090: hair texture density working unreliable.Krzysztof Recko
"Unexisting" particles must be freed after the unexist flag has been set, which was no longer the case after 78c491e62a5. Reviewers: brecht Differential Revision: https://developer.blender.org/D1213
2015-04-13Revert "Fix hair random rotation limited to 180 degrees"Sergey Sharybin
This reverts commit 176ed5bfe280ef2151f93c0940d54498aaf00d71.
2015-04-13Fix hair random rotation limited to 180 degreesMai Lavelle
The issue was caused by phase being limited from 0 to 1, which gave only 0..M_PI distribution which is not good enough for good randomness. Now the phase is being randomized across full 0..2*M_PI range.
2015-03-25Fix T43694, by Krzysztof Rećko (chrisr), reviewed in D1177.Lukas Tönne
Added some guards to prevent clumping to non existing particles. Also, adjusted threaded child path evaluation, so each child is evaluated once - previously virtual parents were done twice.
2015-03-01Use the old double-step collision method only for cloth.Lukas Tönne
This method does not work for hair anyway. Even though hair collision needs work at this point, it's still better than nothing.
2015-02-22Fix T43768: Pointcache end frame ignores preview rangeJulian Eisel
Fix for T43768 This way it works consistent with cloth, softbodys, etc. Reviewers: lukastoenne Differential Revision: https://developer.blender.org/D1134