Commit Graph

321 Commits

Author SHA1 Message Date
d72d4a5058 fix for [#11744] NurbCurve Radius incorrect
removed calc_curve_subdiv_radius(), curve radius is now calculated the same way as tilt.

Added radius interpolation menu matching tilt interpolation, needed to add "Ease" interpolation type to keep 2.47 curves looking the same.
2008-09-23 13:35:32 +00:00
47032c251d - Particle-particle effectors we're quite unstable and not accurate at all. Now this should be fixed (especially with other integrators than euler) as the needed inter-frame effector particle positions are interpolated properly from the current and previous positions (previously only the most recent position was used).
- In practice this removes the dependency of particle simulations from the update order of objects and different particle systems inside objects.
- As a nice side effect out of this we also get fully correct birth positions for "near reactor particles" (previously for example smoke trail reactor particles were not born smoothly along the target particles path).
2008-09-23 12:53:00 +00:00
0a6d2e26a9 Fix for [#17642] Particule Hair - Vertex Group lenght don't works without Children
- This feature had been removed from the code! So this is how things work now:
For normal (non-child) hair particles the length vgroup is used if we're not in particle edit mode and if there are no child particles. So for example checking "Parents" in the visualization panel when children are in use will result in full length parent strands, this is a feature so that you can see how the parent's go to predict child behavior better, not a bug :)
2008-09-17 19:29:44 +00:00
0cae815127 Fix for [#17561] when i try to change the particle to hair I cant choose group or object as viz.
-Partly reverted Genscher's previous fix on the issue and added the idea he had as a special case
2008-09-16 21:16:32 +00:00
0922ecee93 "Fix" for #17636 Crashing bug - won't open a file
- The cause was indeed corrupted particle settings which should have caused a deletion of the whole particle system. However the particle modifier was still left and that led to the crash.
- A "fix" because there's really no way of knowing what caused the corruption of the particle settings. If anyone else gets this and can recreate I'd love to get a .blend. Now that there shouldn't be a crash anymore the symptom will be a missing particle system after file load in an object that had a particle system before.
2008-09-16 18:40:54 +00:00
4683cb34e4 Fix for #17618 Particles: changing RGB sliders snap back
-particle drawing was reading material ipos in a too invasive way
2008-09-15 22:08:30 +00:00
7b98b5d34e Compiler warning fixes (mingw) 2008-09-11 06:17:21 +00:00
3bf182c4b4 Bugfix for [#17561] when i try to change the particle to hair I cant choose group or object as viz; Bugfix for mat[4][4] equal to zero resulting in no duplis --> Important: Janne could you check that fixes? 2008-09-10 15:25:06 +00:00
0b523ac3e6 Particle System: a) Fixing visibility bug when a duplipart-system was deleted it didn't show up in during render any more, b) fixing possible crash during render 2008-08-26 01:07:18 +00:00
57d1a1eac2 New things for particle effectors:
- For newtonian particles a "self effect" button in particle extras makes the particles be effected by themselves if a particle effector is defined for this system, currently this is a brute force method so things start getting slow with more than ~100 particles, but this will hopefully change in the future.
- Two new effector types: charge and a Lennard-Jones potential based force (inter-molecular forces for example).
   -Charge is similar to spherical field except it changes behavior (attract/repulse) based on the effected particles charge field (negative/positive) like real particles with a charge.
   -The Lennard-Jones field is a very short range force with a behavior determined by the sizes of the effector and effected particle. At a distance smaller than the combined sizes the field is very repulsive and after that distance it's attractive. It tries to keep the particles at an equilibrium distance from each other. Particles need to be at a close proximity to each other to be effected by this field at all.
- Particle systems can now have two effector fields (two slots in the fields panel). This allows to create particles which for example have both a charge and a Lennard-Jones potential.
2008-08-21 21:12:27 +00:00
9ec6083cfe Fix for [#17414] Particles doesn't obey to lattice once children are added
-Lattice calculations were left out for children by accident
2008-08-04 14:17:11 +00:00
dd5148e265 Fix for bug: [#14570] particle system: grid distribution + vertex emitting bug
- grid distribution didn't check for emission from vertices
2008-07-06 22:52:55 +00:00
be1cb6e5e2 Fix for bug #11758: crash cancelling hair softbody bake.
Fix for bug #11966: crash in hair softbody with hair amount 0.
2008-05-22 13:58:16 +00:00
1584d6a006 Possible fix for #9691: blender failing to allocate memory when rendering
particles on windows, now allocates smaller chunks of memory.
2008-05-07 19:25:43 +00:00
ad5579ec92 Fix for bug #9676: added warning that particles on multires are
not supported on anything else than the first level.
2008-05-07 16:31:49 +00:00
93ba2dd6a1 Fix for bug #9867: issues with making particle systems local. 2008-04-30 13:29:57 +00:00
Chris Want
5d0a207ecb Patch from GSR that a) fixes a whole bunch of GPL/BL license
blocks that were previously missed; and b) greatly increase my
ohloh stats!
2008-04-16 22:40:48 +00:00
ea4a315f3d Fix for bug #8936: particle system crash with vertex groups and
zero vertices in a mesh.
2008-04-12 18:15:10 +00:00
a02937d86c Fix for bug #8920: particles reactor crash and memory leak. 2008-04-11 12:29:29 +00:00
7751a18c0b Fix for mistake in pointcache refactor commit. 2008-04-10 13:20:36 +00:00
1fe5302cce Point Cache Refactoring
=======================

Caching and Baking:
- The point cache is now cleared on DAG_object_flush_update(), and not cleared for time dependency graph updates.
- There is now a Bake button instead of Protect. Also cache start and end frames were added to softbody and particles.
- The cloth autoprotect feature was removed.
- The Ctrl+B menu now also bakes cloth and particles next to softbody and fluids. Additionally there are now frree bake and free cache menu entries.
- The point cache api has been changed. There is now a PTCacheID struct for each point cache type that can be filled and then used to call the point cache functions.
- PointCache struct was added to DNA and is automatically allocated for each physics type.
- Soft body now supports Bake Editing just like cloth.
- Tried to make the systems deal consistently with time ipo's and offsets. Still not sure it all works correct, but too complicated to solve completely now.

Library Linking:
- Added some more warnings to prevent editing settings on library linked objects.
- Linked objects now read from the cache located next to the original library file, and never write to it. This restores old behavior for softbodies. For local simulation the mesh and not the object should be linked.
- Dupligroups and proxies can't create local point caches at the moment, how to implement that I'm not sure. We probably need a proxy point cache for that to work (ugh).

Physics UI:
- Renamed deflection panel to collision for consistency and reorganized the buttons. Also removed some softbody collision buttons from the softbody panel that were duplicated in this panel for cloth.
- Tweaked field panel buttons to not jump around when changing options.
- Tabbing e.g. Soft Body Collision into the Soft Body panel, it now only shows Collision to make the panel names readable.
- I tried to make enabled/disabling physics more consistent, since all three system did things different. Now the two modifier buttons to enable the modifier for the viewport and rendering are also duplicated in the physics panels. Toggling the Soft Body and Cloth buttons now both remove their modifiers.
- Fixed modifier error drawing glitch.

Particles:
- Particles are now recalculated more often than before. Previously it did partial updates based on the changes, but that doesn't work well with DAG_object_flush_update() ..
- Fixed memory leak loading keyed particle system. Now keys are not written to file anymore but always created after loading.
- Make particle threads work with autothreads.

Continue Physics:
- The timeline play now has a Continue Physics option in the playback menu, which keeps the simulations going without writing them to the cache.
- This doesn't always work that well, some changes are not immediately updated, but this can be improved later. Still it's fun to get a feel for the physics.

Todo:
- Point cache can get out of sync with and undo and changing a file without saving it.
- Change the point cache file format to store a version (so old point cache files can be either converted or at least ignored), and to do correct endian conversion.
- Menu item and/or buttons for Ctrl+B.
- A system("rm ..") was changed to remove() since the former is very slow for clearing point caches. These system() calls were already giving trouble in a bug in the tracker, but really most use of this system("") should be changed and tested.
- The Soft Body Collision and Clot Collision panel titles don't mention there's point cache settings there too, doing that makes them unreadable with the default panel setup.. but may need to make the names longer anyway.
2008-04-10 11:39:20 +00:00
5e3ff914cb Fix for bug: [#8302] Particle atributes (Materials) wrong behavior
-Particle texture calculations weren't using the mtex->def_var properly
-Texture buttons didn't set proper update flags for hair
2008-03-31 19:57:40 +00:00
7f556ba4ef Fix for bug #8467: a softbody hair crash. 2008-03-14 18:21:06 +00:00
64e76e7e02 Fix for bug [#8402] Hair particles don't react on changing of curve guides
-guide calculation was accessing wrong pointers in hair calculation
-now guides also respect the "apply effectors to children" - button, but not the "stiff" value
-disabled guide calculation for initial hair calculation as it's all done dynamically later
-few useless commented lines cleaned out
2008-03-07 22:39:54 +00:00
8f3b48457a Particle weights weren't drawn properly in particle mode. There also was some lag in updating the colors when changing particle edit brushes. 2008-02-29 08:31:11 +00:00
cbf278246f Fix for bug: cross platform strand render differences with kink/branch.
This time is was due to different accuracy of floating point computation,
now it uses does a comparison a bit different to avoid this.

Also changed the vectoquat function to be threadsafe.
2008-02-27 14:17:32 +00:00
5380bd48d7 Hair particles with object or group visualisation didn't take the
rotation settings into account. Now if rotation is not set to None,
instead of automatically deriving it from the particle path (which
is useful for feathers), it uses the rotation settings (useful for
distributing twigs randomly).
2008-02-26 11:48:12 +00:00
6e4683fc52 Fix for bug #8353: switching particle hair with softbody to emit crashed.
Fix for bug #8355: crash zooming in render window.
2008-02-24 21:29:20 +00:00
f31dd8075c Fix for bug in settings particle reactor recalc.
Patch by Thomas Knight, thanks!
2008-02-24 19:50:21 +00:00
52b644a30d Particles using Object or Group visualization would render with Disp value. - rather then using 100% of the objects. 2008-02-21 20:13:33 +00:00
97d40faee9 Added an option for texture forcefields to use the root location of a particle for its texture coords.
Without this, animating grass would either look like seaweed (with low freq texture)
Or the grass would wrinkle up and get kinks (high freq texture)
This lets you use a high frequency texture while having straight grass.
2008-02-19 18:36:50 +00:00
785b4dcdda Fix for bug #8052: particle emit from verts and volume didn't support
subsurf/derivedmesh mapping yet.

Also added int-to-pointer and back conversion function to solve warnings.
Note that it is only allowed to store an int in a pointer and then get
it back, but not a pointer in an int!
2008-02-18 10:49:46 +00:00
10529ca743 Fix for bug #8044: vertex colors weren't supported for hair. 2008-02-17 22:42:03 +00:00
a221c3db97 "From particles" children are again allowed for non-hair/keyed particles, although with some limitations like no separate render amount or rough/branching values. 2008-02-17 18:33:20 +00:00
33b569106e Removed "roll" and "rotation" child particle kink modes as they couldn't be made to work properly. Will have to see later if these can be put back in so that they actually work. 2008-02-17 13:41:42 +00:00
e63d03afc7 Effectors on particle hair can now be applied to the children instead
of the parents, with the "Children" button next to Stiffness.
2008-02-15 12:54:43 +00:00
a6f33fc444 Fix for bug: [#8271] Changes to the texture settings for particle attributes are not updated
- Material buttons code didn't set particles update flag
- Small change to how particle emit time is interpreted from textures, now the "time" texture output can actually be used for something
2008-02-12 16:36:03 +00:00
c371346601 Fix for bug: [#8247] Hairs that are added in particle mode act and render unpredictably when soft body is activated
-softbody BodyPoint indexes were created with a lag of one leading to use of wrong softbody points for particles when creating path cache
-interpolation points for softbody hair weren't chosen optimally when not yet at the end of a hair
2008-02-12 13:38:07 +00:00
695ea7230a Fix for bug #8245. 2008-02-12 00:34:53 +00:00
3e98fb0f38 - For particle path visualization, set the default number of steps
lower to save memory.
2008-02-01 12:47:20 +00:00
fcff2e0c5f Added an "effector" vertex group for hair, that defines how much
influence effectors have.
2008-01-24 14:16:52 +00:00
02145966a8 Fix for strand render + simplification + vector blur. With the number
of strands changing between frames, vector blur couldn't work. Now
speed vectors are interpolated from the surface. This also means
child particles don't have to be computed in the previous and next
frames, so saves time too.
2008-01-24 13:11:15 +00:00
18ab78c867 Particle instance modifier works again in path mode. There's still some work to do with rotations and twisting though. 2008-01-24 10:44:21 +00:00
14241f8349 Fixes:
- Particle system distribution wasn't flushed properly for non-edited hair.
- For instances in the renderer, also count their verts and faces in the stats.
- Fix for error in the "surface diffuse" formula for strand shading.
2008-01-21 14:18:24 +00:00
0db1666b6e Routine purge of compiler warnings 2008-01-17 23:38:53 +00:00
61a4188e1d - A miss thought multiplication in hair effectors created a strong dependency on the draw/render steps value, now behavior is much better although a stronger effector force is needed for the effect to show. 2008-01-17 10:44:23 +00:00
cb025f95de - Regarding the Peach "hair effectors" request in the mailing list I coded quick support so that effectors now can effect combed hair too. Nothing special needed to use, just normal field effectors, although there is a new "stiff" parameter in extras panel. (Note, at least for now this only works with path visualization)
- Keyed particles work again for all visualizations (previously only "path"), they still need some work though to be fully operational.
- Keyed particles weren't saved or loaded correctly.
2008-01-17 00:28:14 +00:00
ead7a33247 Misc Render Features
====================

- "From Dupli" option for orco and uv texture coordinates. For dupliverts,
  duplifaces and dupli particles, this uses the orco and uv at the point
  on the parent surface. Can for example be used for texturing feathers
  and leafs. Note that uv only works for duplifaces and particles emitted
  from faces, these are not defined at vertices.

- "Width Fade" option for strand render, to fade out along the width of the
  strand. Committing this so it can be tested, might be changed or removed
  even, if it doesn't give nice results.
2008-01-09 14:40:25 +00:00
Chris Want
5e3cffc64a Patch to change license to GPL only, from GSR. 2008-01-07 19:13:47 +00:00
c2eeae8e64 - Further fixes for duplivert rendering inside a dupligroup.
- Fix for integer overflow when allocating a lot of particles
  (9 million * 8 keys * sizeof cache key).
2008-01-04 21:12:48 +00:00