Skip to content

sidefx feedback #391

Open
Open
@johnnyquest

Description

@johnnyquest
  • feedback on pops (also see POP DOP TODO #361)
    • one falls back to vexpressions too easily, could be more user-friendly in common use-cases
    • vexpressions don't have the auto-create-params-from-ch()s button
    • should be a bunch of (n)age + chramp() -based presets for vexpressions
    • global LOD on particles? (adjust overall particle count w/ just a single percentage number)
    • applying particle rotation is difficult
      • should have an easy way of aiming towards velocity blending into an orient-based rotation
      • should have a quick way for doing random rotations
    • emitters: have an emitter multiplier (0..1)
    • streams: there should be an easy way of visualizing (color-coded) groups and streams (see pop group visualize qL preset) -- especially without invalidating the dop cache! -- maybe show/hide particles in certain streams altogether? (to replace the ad hoc Cd coloring on some pops to attempt to visualize what's going on)
    • streams: "just joined stream" group (e.g. like "just born" on emitters)
    • POP Source: source interpolation "Use Point Velocity" should be able to use an user-specified attribute (other than v), to decouple source interpolation and initial velocity values
    • POP Group: one should be able to filter existing groups (todo: test it first, maybe it works)
    • POP Axis Force (and any forces that can have orientation): should support getting xforms from an object easily (one can hack around w/ vexpressions but it won't update the guide -- maybe that could be another ticket?) -- in other words, "parentable" forces
    • UI (more like DOPs in general): an easily accessible "Reset Simulation" button when in a DOP network (note: you might be in a parent network in a viewer, looking at SOP-postprocessed dopnet results)
    • A SOP Solver variant that automatically inherits stream grouping (e.g. works with streams)
    • postprocessing/separating streams/cleanup after POP/DOPs in SOP: this could be streamlined as well; the Blast/Split SOPs don't behave well when stream groups are specified with don't exist (on particular frames, e.g. an empty stream doesn't have a group); the distinction between "!group" and "* ^group" also plays an important role! (the former doesn't work, the latter does)
    • POP Kill: add vexpression preset "kill after n bounces"
    • collision/grouping with specific (DOP) objects should be way easier (extract objid from hitpath, look up dop obj name, blah blah)
    • there should be a general-purpose attrib ramp operator (see Attrib Ramp qL SOP)
    • all vexpression presets should contain ch() functions instead of constants (wherever it makes sense) and auto-publish the ch() stuff as parameters
    • work method: i'm using channel references to groups instead of group names (they show up in "local dependency links")
    • annoying: "prefilter" group nodes can't be placed directly above pop replicate nodes, they have to be in the "main branch", so they're apart from each other spatially in the graph
    • POP Group: no easy way of "just select 20% of incoming particles" filtering of an existing group (?)
    • POP Force: visualizer could be improved
    • A general-purpose force visualizer would be very useful (even just for POPs, but for DOPs in general)
    • bounce collisions are awkward, and they can produce particle banding (build a test case first!)
    • sug: not just collisions, but (sdf-based) volume detections, including event (group) generation for particles "just entering" / "just leaving" volumes
    • single-sided particle collisions (todo: test/elaborate)
    • collisions should be disabled for negative-aged particles? ("officially not yet born")
    • POP Solver: an alternative to not reap particles: let particles live a bit beyond their lifespan, so they could be interpolated post-simulation
  • UI: a popreplicate/popstream creation could really create a null node with them

bugs:

  • curve force pop bug (curve point order)
  • manual says pp bounce gets multiplied by pop object bounce, this doesn't seem to be the case (check other attribs as well!) manual doesn't say such thing, actually :o
  • POP Solver: hit uv is computed even if 'add hit uv attribute' is off (xyzdist() call slows things down)
  • POP Solver:
    • hittotal keeps increasing when particle travels within a collision-ignored static object (confirm first!)
    • when dealing w/ collisions, an xyzdist() is called internally even if collision UVs are not requested, this is SLOW SLOW SLOW
  • POP Stream: can the internal POP Replicate be used only if needed? slows things down
  • POP Replicate:
    • ...is SLOW SLOW SLOW (esp when creating single points)
    • inherit velocity value doesn't work (because it always inherits velocity, force, etc, messing up the new stream!)
    • option for replicating different no of points, per-point
    • option for snapping newly created points onto some geometry
  • SOP Solvers within DOPs seem like a bit slow, could any overheads be reduced? (TODO: check / build test cases first)
  • POP Advect by Volumes: position advection should apply jitter on negative-aged particles
    • can be done using VEXpression if (@age<0) velscale *= 1*random(@id+@Time)*abs(@age)/@TimeInc;
  • collide / stop doesn't remove velocities

bugs (general):

  • reselect (tilde key) with Split SOP always reconnects to the first output (even if the SOP being "reselected" is connected to the 2nd output)
  • Trail SOP crashes w/ negative trail lengths?
  • Kill SOP wtf with streams? (LON_000_0320_fxPortal_C16_ITU.hip)
  • Blast (esp Split!) w/ missing groups -- this doesn't work well when trying to separate particle streams!
  • the removepoint() VEX call won't ever delete primitives, even if you remove all points of the primitive
  • alembic packed/hierarchy export (+import into Maya) problems
  • the "empty geometry" alembic issue should be worked out once and for all
  • sug: Measure SOP should support intrinsic attributes (e.g. intrinsic:measuredarea, etc)

qLib:

  • POP Property qL SOP (multiparm; +/- variance; composite (replace/add/mult/blah blah))
  • Make pop group visualizer an asset
  • Make the bounce jitter preset a proper asset; add grouping instead of feedback color (so it can be visualized by pop group visualize)
  • Velocity qL SOP: do--xform.peak takes CPU time even if peak parm is zero, optimize this
  • what about particles emitted within collision geometry? there should be a way for them to live within the collision geo for a while (do-nothing collision)
  • A proper POP Attrib Ramp qL POP, that's properly fine-tuned as a POP operator
  • POP Stream qL SOP: keep specified names of streams, option for deleting all other point groups (streams and/or non-streams)
  • POP Bounce qL DOP?
  • A POP Replicate alternative that is dumb but fast
    • see above notes on pop replicate
    • option for snapping newly created points onto some geometry
  • A POP DOP that: groups particles w/ SDF volumes: inside volume, outside volume, entering volume, leaving volume (+preserve group toggle), at volume boundary (falling between a min/max sdf value); generate sdf distance attrib!
  • color stuff differently: POP streams, forces, (regular) nulls,

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions