1 / 15

A brief on Pre-computed Particle system

A brief on Pre-computed Particle system. By Zhang Jian. Demo. What’s special?. The demo video: Massive Particles (8000) Real Physics(Multiple bounces). CPU free, very low cost Traditional system Why we can’t have it in traditional system CPU!!!. Pre-computed Particle system.

shufang-chi
Télécharger la présentation

A brief on Pre-computed Particle system

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A brief on Pre-computed Particle system By Zhang Jian

  2. Demo

  3. What’s special? • The demo video: • Massive Particles (8000) • Real Physics(Multiple bounces). • CPU free, very low cost • Traditional system • Why we can’t have it in traditional system • CPU!!!

  4. Pre-computed Particle system • Pre-compute… • Simulating particle behavior • position/velocity/size/color/lighting/rotation….. • Recording • Static Vertex buffer • Playback

  5. The good • 1000…X CPU power (if you have time) • FX Artist • Physics(rigid body collision, fluid…) • Complex lighting • Interactive between sprite and sprite • Thousands of particles and complex effects. • Design without considering CPU performance. • Programmer • Pool system nightmare: one memory block for any number instances • Static Vertex buffer!!! • CPU performance

  6. Simulating • Based on artist tuning. • Based on physics behavior ( collision, fluid, environment lighting…) • Unreal cascade style particle system • Iteration particles on all modules.

  7. The Core:Recording • Position 1s 1.8s 2.0s

  8. Recording: The Curve M0 M1 P0 P1

  9. Cubic Hermite Spline P(t) = C1*t3 + C2*t2 + C3*t+ C4 The values we need in vertex shader: C1 = 2*P0 + M0 +T1 -2*P1; C2 = -3*P0 – 2*M0 -T1 +3*P1; C3 = M0; C4 = P0;

  10. Compression • Don’t waste memory • Position -> Cubic curve • Color/Size/Rot… ->Linear Lerp • Use Short or byte • Local Bounding box can help

  11. Playback • Update the time: like play movie • Avoiding vertex overhead • Looping (endless effect)

  12. Condition • It’s not an alternative solution • Less interactive: There are some effects we can’t do, like rocket trail. • Memory and iteration time. • Constant memory, Streaming • Several seconds should be fine ( from ms to seconds)

  13. Condition • When you want massive particles • When you want high quality effect • When you script an Wow effect • Bullet go through a smoke • When you have pool instance problem

  14. Progress • It’s still in progress…….…. • Done • Framework and basic functions. • Physics collision • Secondary impact • Atlas animation • To-do • More physics effects • Lighting (internal and environment) • More complex modules(eg.spawn along mesh surface) • Editor

  15. Q&A • More video is coming • Welcome ideas.

More Related