diff options
author | Janne Karhu <jhkarh@gmail.com> | 2009-07-04 07:50:12 +0400 |
---|---|---|
committer | Janne Karhu <jhkarh@gmail.com> | 2009-07-04 07:50:12 +0400 |
commit | 66918b3add4dfc90a8074f4bdc1c797ae9bf1371 (patch) | |
tree | b1cae9c0532cac2288b157034a3fa83c699bbbfb /release | |
parent | 2c71b12998e380ff191b9cb94de22685595afaac (diff) |
A bunch of fun stuff now possible because of new pointcache code:
* Baked normal particles can now use the "Path" visualization.
* Path "max length" & "abs length" are now history:
- New option to set path start & end times + random variation to length.
- Much more flexible (and calculated better) than previous options.
- This works with parents, children, hair & normal particles unlike old length option.
- Only known issue for now is that children from faces don't get calculated correctly when using path start time.
* New option "trails" for "halo", "line" and "billboard" visualizations:
- Draws user controllable number of particle instances along particles path backwards from current position.
- Works with children too for cool/weird visualizations that weren't possible before.
* Normal particle children's velocities are now approximated better when needed so that "line" visualization trails will look nice.
* New particle instance modifier options:
- "path"-option works better and has controllable (max)position along path (with random variation possible).
- "keep shape"-option for hair, keyed, or baked particles allows to place the instances to a single point (with random variation possible) along particle path.
- "axis" option to make rotation handling better (still not perfect, but will have to do for now).
Some fixes & cleanup done along the way:
* Random path length didn't work for non-child particles.
* Cached & unborn particles weren't reset to emit locations.
* Particle numbers weren't drawn in the correct place.
* Setting proper render & draw visualizations was lost somewhere when initializing new particle settings.
* Changing child mode wasn't working correctly.
* Some cleanup & modularization of particle child effector code and particle drawing & rendering code.
* Object & group visualizations didn't work.
* Child simplification didn't work.
Diffstat (limited to 'release')
-rw-r--r-- | release/ui/buttons_data_modifier.py | 9 | ||||
-rw-r--r-- | release/ui/buttons_particle.py | 35 |
2 files changed, 30 insertions, 14 deletions
diff --git a/release/ui/buttons_data_modifier.py b/release/ui/buttons_data_modifier.py index 2400461b623..477be27e820 100644 --- a/release/ui/buttons_data_modifier.py +++ b/release/ui/buttons_data_modifier.py @@ -300,9 +300,18 @@ class DATA_PT_modifiers(DataButtonsPanel): col.itemR(md, "normal") col.itemR(md, "children") col.itemR(md, "path") + if md.path: + col.itemR(md, "keep_shape") col.itemR(md, "unborn") col.itemR(md, "alive") col.itemR(md, "dead") + if md.path: + col.itemR(md, "axis", text="") + + if md.path: + row = layout.row() + row.itemR(md, "position", slider=True) + row.itemR(md, "random_position", text = "Random", slider=True) def particlesystem(self, layout, ob, md): layout.itemL(text="See Particle panel.") diff --git a/release/ui/buttons_particle.py b/release/ui/buttons_particle.py index 49ceaf6aae1..93ce9c5c745 100644 --- a/release/ui/buttons_particle.py +++ b/release/ui/buttons_particle.py @@ -353,19 +353,14 @@ class PARTICLE_PT_render(ParticleButtonsPanel): colsub.itemR(part, "adaptive_pix") sub.itemR(part, "hair_bspline") sub.itemR(part, "render_step", text="Steps") - sub = split.column() - sub.itemL(text="Length:") - sub.itemR(part, "abs_length", text="Absolute") - sub.itemR(part, "absolute_length", text="Maximum") + sub = split.column() + + sub.itemL(text="Timing:") + sub.itemR(part, "abs_path_time") + sub.itemR(part, "path_start", text="Start", slider= not part.abs_path_time) + sub.itemR(part, "path_end", text="End", slider= not part.abs_path_time) sub.itemR(part, "random_length", text="Random", slider=True) - #row = layout.row() - #row.itemR(part, "timed_path") - #col = row.column(align=True) - #col.active = part.timed_path == True - #col.itemR(part, "line_length_tail", text="Start") - #col.itemR(part, "line_length_head", text="End") - row = layout.row() col = row.column() @@ -384,7 +379,6 @@ class PARTICLE_PT_render(ParticleButtonsPanel): elif part.ren_as == 'OBJECT': - #sub = split.column() sub.itemR(part, "dupli_object") elif part.ren_as == 'GROUP': sub.itemR(part, "dupli_group") @@ -428,7 +422,19 @@ class PARTICLE_PT_render(ParticleButtonsPanel): row.itemR(part, "billboard_animation", expand=True) row.itemL(text="Offset:") row.itemR(part, "billboard_split_offset", expand=True) - + if part.ren_as == 'HALO' or part.ren_as == 'LINE' or part.ren_as=='BILLBOARD': + row = layout.row() + col = row.column() + col.itemR(part, "trail_count") + if part.trail_count > 1: + col.itemR(part, "abs_path_time", text="Length in frames") + col = row.column() + col.itemR(part, "path_end", text="Length", slider=not part.abs_path_time) + col.itemR(part, "random_length", text="Random", slider=True) + else: + col = row.column() + col.itemL(text="") + class PARTICLE_PT_draw(ParticleButtonsPanel): __idname__= "PARTICLE_PT_draw" __label__ = "Display" @@ -475,11 +481,12 @@ class PARTICLE_PT_draw(ParticleButtonsPanel): col.itemR(part, "draw_health") col = row.column() + col.itemR(part, "material_color", text="Use material color") + if (path): box = col.box() box.itemR(part, "draw_step") else: - col.itemR(part, "material_color", text="Use material color") subcol = col.column() subcol.active = part.material_color==False #subcol.itemL(text="color") |