Search Unity

Ultimate VFX - Massive Visual Effects and Particle System Collection

Discussion in 'Assets and Asset Store' started by MirzaBeig, Aug 22, 2015.

  1. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,210
    Okay, good Point! I also don't know what normal People do, I guess most of them not developing games in their free time ;-) But this is a good Point and then dependencies will be useful, thanks! :)
     
  2. moco2k

    moco2k

    Joined:
    Apr 29, 2015
    Posts:
    294
    I really appreciate the amazing quality of your effects. If you find some time, it would be great if you can add an effect for a broad and epic energy/light beam, similiar as in this video at 0:13. This effect could be similar to the existing earth ray effect. However, it would be in horizontal direction and it would be nice if it also looks good from a casters FPS perspective.
     
    Last edited: Jun 11, 2016
  3. blackbird

    blackbird

    Joined:
    Aug 9, 2011
    Posts:
    542
    any idea how rescale the size of the particals i love the clouds and i want to use them in my level but they are to small to be in the sky and if i use the default size from the package i need to clone them which cost me to much performence any help would be great
     
  4. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Thanks for the reminder. I'll work on this today!

    You can change the particle scaling to use hierarchy and then scale using the transform controls (Unity 5.3+ only), or use the included particle scaler.

    More prefabs incoming!
    See spoiler below:


    upload_2016-6-21_17-7-24.png

    upload_2016-6-21_17-13-44.png

    upload_2016-6-21_17-14-47.png
     
    Last edited: Jun 21, 2016
    moco2k likes this.
  5. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011
    Hi Mirza, Just watched the demo video. Wow!.

    One question. I need two effects one for a space scene which the pack covers. Just need an underwater effect for the undersea ocean scene. Does that pack include anything that could be used for this. I would buy it now anyway as it's fantastic but need to check as spent up buying last few assets. Don't want to miss the sale if you have an effect that can do this.
     
  6. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Hi there! Do you have an example (pref. video) of what the underwater scene effects would look like? I can draft up something right now since I'm working on new prefabs anyway.
     
  7. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011
    No expecting any preferential treatment :). I have my ocean seabed scene using this pack - https://www.assetstore.unity3d.com/en/#!/content/17516 and some other props. Was using fog up to now. Can add the caustics with aqua. Was thinking of sun shafts from above and bubbles from the undersea base:). I could occasionally add some effects to the fishes as well giving the impression of fast swishing(is that a real word?) movement.

    I really didn't expect anything. Will be buying it tonight anyway as that starfall effect is amazing and plan on using in another scene.
     
  8. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    No worries! I usually do requests, so this is right in line with that. I'll see what I can whip up based on your description.
     
    chelnok likes this.
  9. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011
    That's excellent. One more thing just thought of. Do you think the starfield effect would translate well using your shuriken to spritesheet to make a mobile friendly version. I didn't expect to use the effects on the mobile version of the game but if they can be in some form then why not:)
     
  10. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Is that the "Starfall" prefab? It's very depth-based, so as a whole, it wouldn't look great as a large spritesheet unless you had a static camera. Alternatively, you can bake parts of the effects and then re-assemble it as different particle systems that are spritesheets. It also depends on whether that effect is heavy on mobile to begin with. It might not even be necessary to bake (depends on your target platform, and testing).
     
    Last edited: Jun 21, 2016
  11. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011

    That's the one. Really good looking effect. Very impressive.
     
  12. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    This is what I have so far. I'll post a gif once I do some tweaking:

    upload_2016-6-21_18-46-10.png
     
    docsavage likes this.
  13. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011
    That looks fantastic. Virtually what I imagined. Couldn't have asked for more. Hopefully it will help sell more copies as well as others are bound to be able to use it.

    Will be picking it up tomorrow morning.
     
  14. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Awesome! The updates won't be officially on the store for a while, but anyone can send me an email with their invoice number for the latest copy.

    Here's that GIF that just finished encoding:
    - https://gfycat.com/NauticalUnawareAfricanwilddog

    It shows a breakdown of the individual particle systems that are used to composite the entire effect. Also using a global fog image effect.
     
  15. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Update is ready! Just open up the attached .unitypackage with UVFX from the Asset Store already in your project and it should add the new effects just fine. The only prefabs that won't work right now as-is are the Particle Playground-based effects (marked with a "pp-" prefix) unless you have that plugin. I'll be fixing that so you can use them without Particle Playground by packaging them up from Particle Playground itself in the future.

    A note for new users: a lot of the demo effects (not including the XP/expansions such as Action and Storm) are very much over the top and meant to show all the neat things you can do as a reference point. You should deconstruct, re-assemble, and take the parts you need to get the final effect you intend just as you need it. As for the expansions, they're already optimized and ready to go without further modifications if you feel like it.

    I haven't fully tested this patch, so let me know if there are problems. All it is, however, is a replacement for key folders such as materials, scenes, prefabs, and scripts.

    It'll bring the total prefab count to 198.

    upload_2016-6-22_11-12-53.png

    - DOWNLOAD (6mb)!
     
    Last edited: Jun 22, 2016
    docsavage and hopeful like this.
  16. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011

    Hi Mirza,

    Have tested that prefab you did. Fantastic. Looks geat and works really well. Performance hit is nowhere near as heavy as expected. It was runnig about 100fps faster than another test I was running. Everything the same just different effects.

    Had a quick look at the rest of the pack as well. Really nice effects. May see more of them in the finished game:)

    Thanks a lot for you work.

    doc
     
    MirzaBeig likes this.
  17. TrainerHol

    TrainerHol

    Joined:
    May 4, 2015
    Posts:
    2
    Importing on a clean project gives me this error:
     
  18. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,420
    You'll get duplicates on image effects if you're not loading into an empty project. It's common for the demo scenes of any Unity store asset to have their own image effects, and when you load them into a project with other plugins, the duplicates clash.

    So when you want to see a demo for the plugin, put it in an empty project. When you want to combine the plugin with your own work or other plugins, delete the image effects after import or simply uncheck them when you import so you don't end up with duplicates.
     
  19. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Exactly what hopeful said. However, the latest (and only) version on the Asset Store doesn't have any external assets (inc. image effects), so you should update to the latest copy if that's the issue.

    This is all you should see with a fresh import of UVFX 2.1:

    upload_2016-6-25_13-5-41.png
     
  20. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Updated my website somewhat and added a page for future downloads which I'll be linking in the product description once I push for an official update on the Asset Store.

    > http://www.mirzabeig.com/products/ultimate-vfx/downloads/

    This way users can check for updates and download them immediately whenever they want. I'm also thinking of integrating auto-update checks into UVFX (and other products) via a menu button, but I'll need to learn how. Probably not too hard?

    So far I've begun to add more prefabs to the Action expansion pack (not yet available for download on the site). The total prefab count is already over 210 now.

    Image in spoiler below.

    upload_2016-6-28_7-40-53.png

    upload_2016-6-28_7-41-22.png

    upload_2016-6-28_7-41-45.png

    [/spoilers]
     
    Last edited: Jun 29, 2016
    hopeful and docsavage like this.
  21. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Alright, the update that brings the prefab count to 210+ is live (second link, July 28th).

    > http://www.mirzabeig.com/products/ultimate-vfx/downloads/

    And! I'm working on a new FREE expansion pack to add to UVFX - "Titles XP". Used for creating background animations using particles, like for game menus and title screens, credits, etc.

    I'll update when this is available for download as a patch, too.

    Image in spoiler below.


    upload_2016-6-29_2-50-11.png

    upload_2016-6-29_2-50-31.png

    upload_2016-6-29_2-57-59.png
     
    Arganth likes this.
  22. blackbird

    blackbird

    Joined:
    Aug 9, 2011
    Posts:
    542
    it really confusing now do u have intension to update it on the asset store because everytime i use this patches everythings breaks
     
  23. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Can you describe what breaks and which patch you used? There are two of them. The second requires Unity 5.3+. I can't update on the store immediately and I have much less control over that because it has to be reviewed by the Unity team and my connection isn't upload-oriented (for a week or two more, at least). I do intend to push a full update later on.
     
  24. blackbird

    blackbird

    Joined:
    Aug 9, 2011
    Posts:
    542
    i get pink image missing prefabs and it throws errors everywhere , even if i delete the duplicate script , i found out that some script or particle are missing that's based on your first patch


    ps: same thing with patch 2
     
    Last edited: Jun 29, 2016
  25. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Hmm, try this: in your project view, do you see "_assets/Mirza Beig"? If so, delete that entire thing. I suspect that's where everything is going wrong, if it exists (or did exist after applying a patch).

    Then, delete the folders highlighted in the image below:

    upload_2016-6-29_20-46-50.png

    Then try applying the b3 patch and everything should work.

    For anyone reading this in the future who hasn't applied any patches, you don't need to do any of the above steps, just apply the b3 patch and you should be good to go.

    The new patch includes a rough version of the Titles XP expansion and is compatible with Unity 5.1.0f3 and above.

    > DOWNLOAD PAGE

    > DIRECT DOWNLOAD (3.1mb)
     
    Last edited: Jun 30, 2016
    blackbird likes this.
  26. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    upload_2016-7-14_22-27-39.png

    More effects inbound with some updates to the demos. On a side note, since I forgot to mention this, if you want the post-processing and their settings, just make sure to have the Standard Assets and Cinematic Image Effects (there's nothing else I'm using for the screenshot here) imported into your project and they should auto-apply themselves to the camera. They're not included with the downloads for cleanliness, but the components are already on the camera.

    Also thinking of making more particle-based tutorials specifically for UVFX, but I'm not sure what people would want to see.
     
    docsavage and hopeful like this.
  27. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,420
    @MirzaBeig - If you have more ideas for particle effects, keep making them. :)
     
    MirzaBeig likes this.
  28. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    I think a tutorial on making a save point/highlight would be handy! It's a common feature in games and there's lots of ways to customize them. Aaand they should be easy for people of all skill levels to follow along with.

    upload_2016-7-18_5-54-46.png

    upload_2016-7-18_6-1-19.png
     
    pixelsteam and docsavage like this.
  29. Mcg

    Mcg

    Joined:
    Mar 28, 2012
    Posts:
    112
    purchased this recently love the effects!

    awesome to see more sci themed effects coming along aswell

    I saw your patch preview which had the fractal screen example

    http://www.mirzabeig.com/wp-content/uploads/2016/06/fractal-title-2.png

    Would be awesome if possible to have ones similar to these themes :p

    https://0.s3.envato.com/files/105223933/Low_Poly_Grid_VJ_Tunnel2_screen.jpg
    http://images.naldzgraphics.net/2015/04/30-ice-low-poly-background.jpg
    http://www.designshock.com/wp-content/uploads/2015/02/ambar3-copia.jpg
     
    MirzaBeig likes this.
  30. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Nice! I'm already working on new effects that are sci-fi based. Might need to start up a new expansion pack with that theme since I could make lots of them.

    I've also added another update (v2.2.0-b4) to the downloads page (http://www.mirzabeig.com/products/ultimate-vfx/downloads/).

    After making some changes to the metadata of the asset on the store, I've submitted an update for approval. After that's done, I'll push a full update to the store. The b4 patch is close to the final release since now the Particle Playground prefabs should work for all users even if they don't own it.

    By the way, I was playing around and took these 4k screenshots of the existing prefabs in UVFX. I think they make decent wallpapers if anyone wants to check them out: http://imgur.com/a/DkLIE.
     
    docsavage likes this.
  31. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    So finally, some things that were long overdue have been done!

    1. Proper documentation.

    Here's a really nice PDF with a working table of contents that details how to use VFX, find prefabs, lists some tutorials, and more over several pages:

    > http://www.mirzabeig.com/products/ultimate-vfx/documentation/

    It will be updated over time to include more sections as required (perhaps how to best learn from the prefabs?). And it'll also be included in the next version update - which is ready to be uploaded, but I need access to a faster connection before I can commit to that.

    2. Publishing expansions as standalone assets.

    This is a link to the Action-based expansion pack on the Asset Store. Anyone who has UVFX already has this, too! Do not purchase it if you already have Ultimate VFX through the Asset Store.

    > https://www.assetstore.unity3d.com/en/#!/content/67669

    For those who may only want a subset of the massive collection of prefabs and textures in UVFX, this might be a more economic solution. I plan to start bumping up the price of UVFX to $35 or so as more expansions role out in future updates and on the store.

     
    docsavage and hopeful like this.
  32. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Added a new component to add global vortices into the scene for particles:

    upload_2016-8-1_8-21-46.png

    Animated GIF: http://gfycat.com/PortlyEssentialArizonaalligatorlizard

    For better or for worse, it'll apply a force to any particle that falls in range (without any additional scripting, attaching components, or whatever). Just browsing through the main demo after dropping a big one in the scene, I see some weird stuff:

    upload_2016-8-1_8-27-26.png

    upload_2016-8-1_8-31-45.png

    I think I'll add an entire set of manipulators like these to see what sort of cool combinations can be made (imagine a seek-like pull towards a vortex...).

    In other news, XP Titles is coming along well with some new effects:

    upload_2016-8-1_8-34-20.png

    And all of this is running on Unity 5.4 now. Unfortunately, there's a known issue with particle seed randomization not working, but that's entirely on Unity's end.

    I plan to submit the full update this week, which should mean an estimated final release of next week on the store. It'll include all of this, plus some new textures I added to the set for fire and sparks.
     
    Last edited: Aug 6, 2016
    hopeful likes this.
  33. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,420
    @MirzaBeig - When you say "vortex" I think of whirlpools or tornadoes, and what you have pictured doesn't look like that. When you have time, maybe you can say a bit more about what a vortex manipulator is, and what it can make.
     
  34. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    The pictures may not show it off well enough, but you'll be able to get a better idea from the GIF. You're right when you imagine tornadoes and whirlpools, but in that case you also have a secondary force in mind which sucks the particles inward. In the GIF, the red gizmo line represents the outward axis of the vortex around which the particles will spin. Adding such a velocity, the particles are flung outward as there's nothing holding them to the center.



    upload_2016-8-1_13-38-56.png

    To get a similar effect as to particles being pulled in, I'd add a simple seek towards the center of the vortex, which would produce this:


    Using a similar system, adding a seek manipulator is easy. And it can be repelled by reversing the seek force as well (negative force value).

    Here's a GIF that offers a very clear look at what happens in UVFX:
    - http://gfycat.com/SimplisticRegalIrishsetter


    The particles are coloured by speed (using the Shuriken color by speed module), and you'll see faster moving particles are red where as the slower ones are yellow, and the ones that are barely moving are white.

    upload_2016-8-1_13-45-40.png

    This way it's easier to see the vortex center.

    You'll notice also that any particles coming within the manipulator's range of effect, like the purple/blue-ish haze, have a similar force applied to them, and there's no limit to the number of vortices that can be used (it's up to whatever the end-device can handle).

    I have another more performance-oriented variant of the vortex that uses the new OnParticleTrigger callback and trigger module from 5.4, but the system then has a limit of 6 vortices and is (slightly) more difficult to set up.

    But even without using the new 5.4 controls, I'm simulating just over 10,000 particles (two particle systems, 5k each) and a single vortex without dropping below 60fps on my laptop.

    All of this is experimental right now, and there's more things to consider, like the force falloff from the center of the vortex to its edge. It's currently linear, but I could add a curve modifier so end-users can make it constant, or exponential, or whatever else suites their needs!

    Multi-threading may also be useful for calculations, as well as using layers to filter which particle systems to account for. My plan is to flesh out the functionality of these manipulators over the next release lifecycle.
     
    Last edited: Aug 6, 2016
    Arganth and hopeful like this.
  35. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    v2.2 is now live on the Asset Store. Still on sale, but the price is going to start ramping up with updates and new expansions in the works. I've also began introducing the changes from my last post.

    Some of the global particle affectors are already included in the current v2.2 release, and the next update will have more. It will include both new controls and forces like turbulence (w/ different noise options).

    Not only that, but I've made global and local variants. You can choose whether to affect all particle systems in the scene, or just attach the script to a single instance and control that. There are no limits to how many of each there can be, plus you can use the External Forces module that's built-in with Shuriken to control the influence accepted from global affectors.

    Screenshots won't do these new features justice, so here are some GIFs!

    Animated GIF #1 (turbulence field): http://gfycat.com/OrganicBarrenDikkops
    Animated GIF #2 (turbulence "missiles"): http://gfycat.com/TheseFemaleIrishwolfhound

    Animated GIF #3 (turbulence + vortex + attractor): http://gfycat.com/AdmirableFreshAmericantoad

    Animated GIF #4 (leaf storm): http://gfycat.com/InsidiousThreadbareAfricangroundhornbill
    Animated GIF #5 (leaf storm 2): http://gfycat.com/ExaltedSecondaryGalapagospenguin

    Animated GIF #6 (leaf storm + lit particles): http://gfycat.com/EnragedFirmBaldeagle


    Screenshots (in spoilers):

    upload_2016-8-6_16-11-52.png

    upload_2016-8-6_16-12-15.png

    upload_2016-8-6_16-12-26.png

    Lit turbulence particles (leaves!).



    Combining turbulence + vortex + attraction affectors:


    upload_2016-8-6_16-31-3.png


    IN THE EDITOR:

    upload_2016-8-6_17-13-18.png

    It's as easy as attaching the component script for the affector to any game object in your hierarchy.

    You can control the dampening of the velocity input on the affectors for stability. They're fairly optimized now as far as the CPU goes. I did some multithreading tests, but those didn't turn out as well as I was hoping, and there were syncing issues (particles are created and die between updates for the worker threads, causing noticeable stutter once they're assigned back to their respective system(s)). I'm also looking into using the GPU.
     
    Last edited: Aug 12, 2016
    konsic, hopeful and docsavage like this.
  36. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Just finished adding GPU-powered variants for the particle affectors.

    upload_2016-8-12_17-15-53.png

    I currently only have an NVIDIA NVS 4200m to test with, so I can't really speak much about the final-build performance impact. At least in the editor, there's a significant 2x performance increase (twice the frame rate) with turbulence for the same number of particles. The GPU variants are using compute shaders, so platforms are also limited based on whatever the requirements for those are.

    I actually had fun working with compute shaders for the first time, and I'm thinking about branching off into making another asset for GPU particles - but I seriously need to take a break for now. :)
     
    hopeful and docsavage like this.
  37. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011

    This sounds great. Looking forward to trying them. Have a good rest:)
     
    MirzaBeig likes this.
  38. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Along with seriously improved documentation that covers the additional scripting components, more prefabs (over 240 now!), and near-finalization of the new force affectors, the next update will also introduce particle lights!

    The core parameters are controlled by the particle system itself for maximum flexibility, while still being able to use the interface to scale the light range and interpolate the colours.



    Documentation is getting pretty detailed now:

    upload_2016-8-17_21-4-1.png

    Preview:

    upload_2016-8-17_21-5-30.png

    upload_2016-8-17_21-9-24.png
     
    docsavage, Bhanshee00 and hopeful like this.
  39. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,420
    Looks super! :)
     
    MirzaBeig likes this.
  40. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Made a quick demo showing off the new features (turbulence, particle lights), and textures coming in the next update. It will be included as a completely optional download that will work with the next version of UVFX to avoid the same mistake I made before with a bloated asset download. Everything in the following media is my own content with the exception of the ship (from Unity). The particles, trails (all from UVFX), and the skybox (4096px!) you can use those for your own projects. Again, all from a separate, optional package I'll upload around the time of release.

    This was also good because I managed to iron out some tweaks and bugs from the final release. If you watch the GIF carefully, you'll notice there are green "energy streaks" swirling around the ship which are all emitting a light.

    Every missile also has a light, and they are NOT prefabs. It's purely particle system-based with no scripting and then the ParticleLight component slapped on for automatic light emission (you can see it as the ship flies through the shots).

    Animated GIF of the demo:
    - https://gfycat.com/ThornyHardtofindIndiancow


    ships.png

    ships3.png

    screen_1280x720_2016-08-22_20-11-51.png
     
    Last edited: Aug 23, 2016
    hopeful and docsavage like this.
  41. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011
    MirzaBeig likes this.
  42. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Just finished the first iteration for GPU particles. I'm easily able to simulate over 100k particles on my laptop GPU (nvidia 4200m) without dropping 60fps. And each of those particles is a fully textured sprite that can be coloured/shaded separately! Right now I have some of the basic options/controls laid out and working, including physics. I'm basically following a similar format to Shuriken and I'll be adding a bunch more later.

    upload_2016-8-25_13-18-50.png
     
    Last edited: Aug 26, 2016
    Sentrigal, docsavage and hopeful like this.
  43. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Benchmarking against Shuriken:

    Notice the Tris and Verts rendered with Shuriken in this screenshot.

    upload_2016-8-29_8-16-20.png

    And the Tris and Verts in this from the GPU Particle System:

    upload_2016-8-29_8-16-49.png

    So it's about 3x faster than Shuriken on my awful GPU when rendering directly to the screen. Shuriken stops rendering if there are no particles visible to the camera, which makes it stop rendering (and simulating?) entirely. In turn, it gets a huge speed boost because it's doing almost nothing. I'll have to see if I can implement this myself for GPU particles.

    I also really, really want to test this on a better GPU soon. I should have access to that this week - so I'll finally be able to see if this is a true viable alternative to Shuriken.

    And these are the settings I have now:

    upload_2016-8-29_8-21-42.png

    I'd imagine that once I add things like turbulence and other forces (and collisions!), the GPU system will quickly overtake Shuriken in performance since it'll be doing far heavier computations than what Shuriken does natively anyway. Other features I have in mind include pixel frame blending (kind of like sub UVs).

    If you've ever used motion graphic software, you'll probably know how per-pixel frame blending can be used to introduce ultra-smooth, seamless transitions between frames. Imagine this applied to particle spritesheets! No more choppy explosions when the framerate gets low.

    That being said, I heard 5.5 will introduce frame blending for Shuriken. I'm not sure if it's per-pixel or not. Because otherwise it's just fading between the frames, not a true transition like this.
     
    Last edited: Aug 29, 2016
    hopeful, radimoto and docsavage like this.
  44. docsavage

    docsavage

    Joined:
    Jun 20, 2014
    Posts:
    1,011
    Hi @MirzaBeig ,

    Really glad I got this asset when I did. Looks like you are going to make particles more doable on mobile and not a concern on higher end:)
     
  45. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    The new force affector components can use either the GPU or the CPU, which means there's no compatability concern (they'll work on all platforms). The GPU Particle System is, as the name would suggest, almost entirely GPU-based and uses compute shaders.

    From the docs (https://docs.unity3d.com/Manual/ComputeShaders.html):

    Compute shaders in Unity closely match DirectX 11 DirectCompute technology. Platforms where compute shaders work:

    • Windows and Windows Store, with a DirectX 11 graphics API and Shader Model 5.0 GPU.
    • Modern OpenGL platforms (OpenGL 4.3 on Linux or Windows; OpenGL ES 3.1 on Android). Note that Mac OS X does not support OpenGL 4.3, so no compute shaders there yet.
    • Modern consoles (Sony PS4 and Microsoft Xbox One).
     
    Last edited: Aug 29, 2016
  46. Sentrigal

    Sentrigal

    Joined:
    Nov 25, 2014
    Posts:
    81
    Hey! I'm the guy who spammed your recent Reddit thread :p

    Can the GPU particle system work with CPU affectors? Not sure why one would want that, but I'm curios. Also, have you looked into particle collisions yet? I mean with the environment, not with each other. That would probably be rather silly.

    And while I'm at it, how hard is it for the GPU system to communicate with the CPU? That is from a pure code point of view as well as from a performance point of view. For example, can you have events for particles? Say an OnCollision event or OnParticleDeath and all that stuff? If so, how would that affect performance? Again, I'm not that fit in GPU programming but I imagine the communication between CPU and GPU might be the biggest problem with these things, no? Oh, another feature I just kinda came up with is bounding volumes for the whole system. I don't think I've ever seen that but I imagine it might be quite useful ... for someone :D

    Anyway, feel free to ignore most of the technical stuff, I'm just very curious how this all works. Not really your responsibility to teach me though ;)
     
  47. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Hello! I'm still not sure who you are, though. I'm assuming sniffle6? Maybe? o_O

    No, but I plan on adding similar features as a native part of the system.

    Not yet. I'm currently working on getting proper timed emission per second.

    EDIT: Found the source of the problem...

    It wouldn't be too difficult to implement, but...

    It would basically destroy any advantage of doing everything on the GPU.

    Absolutely. The biggest bottleneck for the GPU particle force affectors is the communication back and forth from Shuriken to the GPU simulation.

    Can you explain what you mean by bounding volumes for the whole system? As in, what would they be useful for? Shuriken can display the bounds of the system.

    upload_2016-8-29_11-11-8.png
     
    Last edited: Aug 29, 2016
  48. Sentrigal

    Sentrigal

    Joined:
    Nov 25, 2014
    Posts:
    81
    :D
    Nagransham, actually.

    Hm. Again, no idea about shader stuff but is there no way to save specific particles in a list? Of course it'd be a bit complicated to make all imaginable events work that way, but it would be better than nothing. I imagine it basically the same way one would implement multi-threading in Unity. Meaning you'd only communicate every once in a while, perhaps once per frame. Not on every state change. Is that doable? And would that even help?

    Oh, yea, I figured that would need an explanation. Basically the difference would be between an AABB and a "volume". When you have your particles all over the place, but in a structured manner, a bounding box isn't actually all that helpful. Even less so when it's axis aligned, which I'd wager the Shuriken one is, right? I was thinking of something along the lines of a convex hull. I don't actually know if there's some clever math trick to do that on the cheap and if there isn't then it's almost certainly not worth the performance cost. Or even the effort for that matter. Was just some random idea. And it would be useful because it might eliminate the need for actual particle collision events, at least for the most part. Because I'd wager most of the time you don't need to know what particle hit you, just whether or not any particle hit you. But then again, maybe it's not even worth it.

    And one last thing, an actual question this time, any idea if sub-emitters are possible? Because I'm really missing those in TC Particles. And they are so damn useful at times :/

    By the way, please just tell me to shut up if it gets to annoying to answer my crap :p
    After all, these aren't really support questions.
     
  49. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,420
    I'm happy to have the possibility of a fast GPU option, even if it is limited to certain kinds of effects, and certain platforms. Awesome! :)

    @MirzaBeig, when this is finished and ready to go, please be sure to note in some simple way which sorts of VFX are ideal for the GPU option.
     
  50. MirzaBeig

    MirzaBeig

    Joined:
    Dec 27, 2014
    Posts:
    533
    Haha, whoops.

    It's possible, no doubt. But it's not a matter of if it can be done, it's how it affects performance. All the data for the particles is stored on the GPU. Transferring that to the CPU is the bottleneck.

    I can pick and choose (in theory, as I haven't tried it out for reasons I'll explain) certain particles on the GPU, put them in a list, then only retrieve that list, but...

    ...
    there's apparently a known bug with Unity regarding those type of buffers that only affects some hardware, and it hasn't been fixed for years (last I checked). So instead of committing to use this method, I'd want the bug fixed on Unity's end, first. Else I'd end up with a semi-broken system.

    The GPU force affectors also only get the data from the GPU once per frame. It's still pretty bad on my machine. But even so, I've only tested with one awful laptop GPU, so something as complex as this requires a lot of testing with the profiler on several machines to get an accurate idea of exactly where the bottlenecks are on average.

    Because of the bug I mentioned earlier, this also means that either you get all the data from the GPU, or you get none of it. This can, again, be a problem. What I can do is setup a function that the end-user can call to get this data if they want to. That way I'm not doing it every frame myself for people who don't need that data. But then I'm still having to process that extra stuff on the GPU. It's something to think about down the line.

    If I'm understanding this correctly, you're talking about having some sort of geometry that defines the shape of the entire system based on the farthest reaching particles? Haven't considered this at all. I have two separate ideas of how to do particle collisions, but haven't reached that step of implementation.

    Thinking about it now, I have an inkling of an idea of how I'd implement this. But before I even get there I have to fix the problem with proper timed emission that I'm facing right now (literally what has me stuck since early morning). Because right now you can create a field of particles, but they don't "emit in" like Shuriken does by default. At first I assumed it would be trivial to implement, but with GPGPU and all the threads, it becomes more difficult.

    I kind of wish more people would ask me about this sort of stuff across the board (including for the particles) so I can understand what end-users want most! :)
     
unityunity