diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-12-04 16:57:28 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2007-12-04 16:57:28 +0300 |
commit | 32a8b4f8e686938ec2f0f95e6acc2eb3c25ebfdf (patch) | |
tree | ff232d89da0b2f0db1da4becb1980af513ea2274 /source/blender/src/drawobject.c | |
parent | ebfedd20b290e356f35eb1fcbcb5ddfb8e8bf0a9 (diff) |
Particles
=========
- Fix crash in particle transform with the particle system not editable.
- Particle child distribution and caching is now multithreaded.
- Child particles now have a separate Render Amount next to the existing
Amount. The render amount particles are now only distributed and cached
at render time, which should make editing with child particles faster.
- Two new options for diffuse strand shading:
- Surface Diffuse: computes the strand normal taking the normal at
the surface into account.
- Blending Distance: the distance in Blender units over which to
blend in the normal at the surface.
- Special strand rendering for more memory efficient and faster hair and
grass. This is a work in progress, and has a number of known issues,
don't report bugs to me for this feature yet.
More info:
http://www.blender.org/development/current-projects/changes-since-244/particles/
Diffstat (limited to 'source/blender/src/drawobject.c')
-rw-r--r-- | source/blender/src/drawobject.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c index e0b09d6d812..7752952381c 100644 --- a/source/blender/src/drawobject.c +++ b/source/blender/src/drawobject.c @@ -3030,7 +3030,7 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys) psys->flag|=PSYS_DRAWING; - if(part->flag&PART_CHILD_RENDER || !psys->childcache) + if(!psys->childcache) totchild=0; else totchild=psys->totchild*part->disp/100; @@ -3200,16 +3200,18 @@ static void draw_new_particle_system(Base *base, ParticleSystem *psys) } } else{ - pa_time=psys_get_child_time(psys,a-totpart,cfra); + ChildParticle *cpa= &psys->child[a-totpart]; + + pa_time=psys_get_child_time(psys,cpa,cfra); if((part->flag&PART_ABS_TIME)==0 && part->ipo){ calc_ipo(part->ipo, 100*pa_time); execute_ipo((ID *)part, part->ipo); } - pa_size=psys_get_child_size(psys,a-totpart,cfra,0); + pa_size=psys_get_child_size(psys,cpa,cfra,0); - r_tilt=2.0f*psys->child[a-totpart].rand[2]; + r_tilt=2.0f*cpa->rand[2]; if(path_nbr){ cache=psys->childcache[a-totpart]; k_max=(int)(cache->steps); |