Search Unity

Creative [Beta] Ultimate GPU Particle System

Discussion in 'Tools In Progress' started by MaxProude, Mar 13, 2018.

?

Do you want to have a GPU Particle System in Unity?

Poll closed Apr 13, 2018.
  1. Yes

    100.0%
  2. No

    0 vote(s)
    0.0%
  1. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Hey Pointcloud,
    I don't have a magic leap, so I can't test it. I assume the hardware does not support floating point render textures. Do you know what hardware and os is on the divice? Couldn't find it by googleing it quickly.
     
  2. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Trails are currently not supported. It is on the roadmap, however I don't know how long it will take to finish it.
     
  3. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    I got depth collision working and it will be released in the next update. There is a small problem with it, that prevents me from publishing it yet. Sorry for the delay.
     
  4. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
  5. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Hey, I answerd your email. Did you get it?
     
  6. look001

    look001

    Joined:
    Mar 23, 2017
    Posts:
    111
    Is it possible to control the updating of the particles manually? I would like to create particles in slow motion and freeze the particles in time. The asset is super usefull. Thank you!
     
  7. IRB10010

    IRB10010

    Joined:
    Feb 8, 2017
    Posts:
    5
    have you try to modify
    delta time?
     
    MaxProude likes this.
  8. akuei2

    akuei2

    Joined:
    Oct 17, 2018
    Posts:
    69
    Try send message in timeline
    Stop - kill action
    Pause - Stop action
    Play - Resume or Restart action
     
  9. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    At the moment this isn't possible without a bit of coding. But this actually sounds like a neat feature so I'll put it on the list. I imagine a time scale parameter, that allows you to globally manipulate all values via time. You could also backwards simulate particle systems that way.
     
  10. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Delta time unfortunately only simulates the amount of updates between frames. This is useful for devices, that have a slightly unstable framerate. It prevents sudden jumps in the simulation, because the time is now based on frames.
     
  11. idavida

    idavida

    Joined:
    Nov 12, 2012
    Posts:
    33
    Offsetting the transform for the particlesystem still doesn't work btw. The bounds does prevent culling of the particlesystem when moving away from worlds origo, but the particles behave super weird. This attached screenshot is from your MovementTest scene where i moved the camera and the 16k object -500 units in the x-axis. Moving it more creates even more artefacts and lack of precision in the x-axis.

    500 units may be much for some assets, but its still visible with less transformation. Any fixes?


    [edit] Well, I literally just tabbed back to Unity after writing this, changed the buffed width to something else (what didnt matter) and it looks good. Some better stability on this issue would be epic since I tried changing that before... :)
     

    Attached Files:

    MaxProude likes this.
  12. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Hey idavida,

    The gaps you see in the scene are due to a lack of precision in the render texture. It appears that the device in use only allows for half precision floating points. You can replicate that effect on pc by manually setting precision to half.
    I'm afraid this appears to be a hardware limitation/ limitation by unity.

    Also this effect can happen if Unity is not in focus. This is due to a reduced update count.

    I'll try to find a fix if possible.
     
    idavida likes this.
  13. HenryChinaski

    HenryChinaski

    Joined:
    Jul 9, 2013
    Posts:
    108
    Just bought Ultimate GPU Particles and it doesn't work in my own scenes at all. Your demo scenes work great!

    I hope I am not missing something, but I can't find any way to see or edit the bounding box. You said that there is a button in the general tab. Any idea?

    EDIT: Oh, and one more question. Is it possible that you are at the moment not able to assign the particles to a specific layer?

    EDIT2: I can not fabricate a build, because of these errors:

    Shader error in 'GPUParticles/ParticleStandard': Did not find shader kernel 'frag_surf' to compile (on d3d11)
    Shader error in 'GPUParticles/ParticleStandard': Did not find shader kernel 'vert_surf' to compile (on d3d11)
    Shader error in 'GPUParticles/ParticleStandard': redefinition of '_LightTexture0' at /Unity2018/Editor/Data/CGIncludes/AutoLight.cginc(176) (on d3d11)
    Shader error in 'GPUParticles/ParticleStandard': redefinition of '_LightTexture0' at /Unity2018/Editor/Data/CGIncludes/AutoLight.cginc(203) (on d3d11)
    Shader error in 'GPUParticles/ParticleStandard': redefinition of '_LightTexture0' at /Unity2018/Editor/Data/CGIncludes/AutoLight.cginc(218) (on d3d11)
     
    Last edited: May 9, 2019
  14. sral123

    sral123

    Joined:
    Mar 11, 2018
    Posts:
    3
    Hi, great asset. One question though. Is there a way to decouple the speed of the sprite sheet animation from the lifetime, like with Shuriken via simulation speed? Or is this sth coming in the final version?
    Unless I am missing sth, right now the animations are way too slow, when the life time is longer than 1 for a 10 x 5 sprite sheet for example.
     
  15. wlad_s

    wlad_s

    Joined:
    Feb 18, 2011
    Posts:
    148
    Hi! Congrats on your great work, this looks stunning. Do you plan to make it work in Linear Color Space as well? Is it even possible?
     
    P_Jong and MaxProude like this.
  16. sral123

    sral123

    Joined:
    Mar 11, 2018
    Posts:
    3
    For some reason there is no button in the "General" tab to edit the bounding box and thus I still have the visibility problem.
    The text in the bug reporter tells me that this is version 0.1b, while according to Unity it is the newest version. Any idea?

    will try a reimport
     
  17. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Hmm sounds strange. What Unity / UGPUP version do you use? You might have an older version. I'll look into it!
     
  18. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Not right now. Do you want something like cycles? If I understand correctly, you want to speed up the animation and repeat it after it reached the end?
     
  19. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Linear color space is a bit tricky, because Unity does not support linear-gamma color space conversion for floating point render textures. Im trying to find a solution and if necessary do the calculation myself in the shader somwhere. Im not sure if I can release it with the next update though.
     
    P_Jong likes this.
  20. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    What Unity version are you using? you might want to upgrade to get the latest UGPUP version. I think the download assistant gets an older version if you r Unity version is older than the one I used to upload the asset.
     
  21. sral123

    sral123

    Joined:
    Mar 11, 2018
    Posts:
    3
    That was it thanks! I am using 2018.2 for my current project. Did not know that Unity does not give me the newest compatible versions, when using an older one.
    Importing it to 2019.1 and then copying the files to my older project seems to have worked. Hopefully this will not produce other problems. Really excited to use it now

    yes, just want to speed it up, so that it doesn't look laggy
     
    MaxProude likes this.
  22. HenryChinaski

    HenryChinaski

    Joined:
    Jul 9, 2013
    Posts:
    108
    Thanks for your answer.
    The manual says: Code version v0.21b
    Unity version is: 2018.1.1f1

    The general tab ends with "fixed delta time". No bounding box button. No particles visible if they are not close to 0,0 coordinates.
    And could you validate, that there is no current solution to set the particles to a different layer? Are they even on any layer?
     
  23. HenryChinaski

    HenryChinaski

    Joined:
    Jul 9, 2013
    Posts:
    108
    I fixed the problem by downloading and installing Unity 2019 and was able to download the correct asset version.
     
    MaxProude likes this.
  24. IRB10010

    IRB10010

    Joined:
    Feb 8, 2017
    Posts:
    5
    when can we get the screen space collision update?
     
    MaxProude and HenryChinaski like this.
  25. horeaper

    horeaper

    Joined:
    Oct 30, 2013
    Posts:
    46
    On SetUpGizmo.cs, line 16:
    Code (CSharp):
    1. File.Copy(Application.dataPath + "/Ultimate GPU Particle System/Resources/Gizmos/Icon_big.png", Application.dataPath + "/Gizmos/Icon_big.png");
    can cause IOException if "Gizmos" directory does not exist.

    BTW I don't think putting everything inside Resources folder is a good practices ^_^
     
    MaxProude likes this.
  26. Amvient

    Amvient

    Joined:
    Feb 5, 2016
    Posts:
    24
    Just curious, Is there any roadmap?
     
    MaxProude likes this.
  27. look001

    look001

    Joined:
    Mar 23, 2017
    Posts:
    111
    Is this asset still in development? There are so many things i could think of for this asset
     
    MaxProude likes this.
  28. Amvient

    Amvient

    Joined:
    Feb 5, 2016
    Posts:
    24
    Did something happen with the author? Last time he was online was last month.I just hope this wont be abandoned.
     
    MaxProude likes this.
  29. bonickhausen

    bonickhausen

    Joined:
    Jan 20, 2014
    Posts:
    115
    Is this abandoned?
     
    MaxProude likes this.
  30. Amvient

    Amvient

    Joined:
    Feb 5, 2016
    Posts:
    24
    I won't jump to abandon right away, but the developer has yet to login since "Jun 7, 2019". So we don't know if something happens to him.
     
    MaxProude likes this.
  31. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    MaxProude likes this.
  32. bonickhausen

    bonickhausen

    Joined:
    Jan 20, 2014
    Posts:
    115
    The developer has responded to my email. Said he's improving screen space collision and offered me a preview version after I sent him my invoice. So he's still around!
     
    MaxProude and wetcircuit like this.
  33. Amvient

    Amvient

    Joined:
    Feb 5, 2016
    Posts:
    24
    Thanks for the update. I sent him an email yesterday but no reply yet.
     
    MaxProude likes this.
  34. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    It's coming in the next update as a preview, because there's a small but nasty bug, that I couldn't get a hold of just yet.
     
  35. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    I just wanted to get it done that day :D
    I'll make sure to fix it now.
     
  36. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    @Amvient @look001 @camirving @wetcircuit

    To give everyone a small update.

    I was on parental leave this July and couldn't answer any emails.
    BUT I'm back and already working on the next update. I'll make sure to communicate better next time.
    Sorry for the inconvenience.

    I fixed some bugs already and I'm now prioritizing new features.
    There are a couple of requests, that make a lot of sense:

    1. Trails (Could be very tricky)
    2. Multiple emitters per Particle System
    3. Refraction
    4. Animated particle animations

    If you have an idea, that is not listed here, you can drop me a few lines and I see what I can do.
     
  37. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    akuei2 likes this.
  38. akuei2

    akuei2

    Joined:
    Oct 17, 2018
    Posts:
    69
    Nice to heard where you are back.
     
    MaxProude likes this.
  39. Amvient

    Amvient

    Joined:
    Feb 5, 2016
    Posts:
    24
    Welcome back. Thanks for the update.
     
    MaxProude likes this.
  40. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    I just submitted version 1.0 to be review by Unity. It finally contains the collision with depth texture (as a preview feature), refraction and fixed some annoying bugs. So it's now possible to duplicate Particle Systems using Ctrl + D. Also the limit for shader keywords shouldn't be a problem anymore, because all shaders now use local keywords. Finally, mesh emitters now correctly use the mesh's normal direction to emit particles (instead of simply away from it's pivot). Rain.gif
     
    protopop, wetcircuit and akuei2 like this.
  41. Barritico

    Barritico

    Joined:
    Jun 9, 2017
    Posts:
    374
    Hi.

    I am finishing an off-road and rally car competition game.
    To give the last touches of quality, I need to create particle effects when the car tracks grounds with gravel, sand, etc.

    Particles should get out of the tires and fall on the ground.

    I have studied several options in the asset store. I have also studied tutorials, but I prefer to buy these tools than to try to develop them. I save my time and developers earn their money.

    Almost all tools prioritize the "magic" effects of science fiction and the like. But I don't see too much about natural grounds. More real things.

    My question is this.

    Will this system make it easier for me to create these effects?
    Is it really simple or does it have a high learning curve?

    Thank you.
     
  42. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Hey Barritico,

    If you know shuriken, you shouldn't have any problem working with this tool. It will not necessarily be easier than any other particle system, but enables you to use more and more efficient particles.

    Best regards,

    Max
     
    Barritico likes this.
  43. WelchCompositions

    WelchCompositions

    Joined:
    Sep 30, 2013
    Posts:
    29
    Is there a way to do the equivalent to "prewarm" with the GPU particle systems?
     
  44. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Unfortunately, there is no way to prewarm the GPU Particle System. That is because it is a state preserving particle system. Stateless particle systems can do this without any overhead, but don't have a natural flow. What would be possible however is to save a snapshot during edit time that saves the state to disc, but that would take a lot of storage space depending on how many particles you have. There is really not a good way to implement this, which is the reason why I haven't implemented anything yet.
     
  45. WelchCompositions

    WelchCompositions

    Joined:
    Sep 30, 2013
    Posts:
    29
    Thanks for the reply! Im running into another challenge. A particle emitter keeps vanishing from my camera view based on my cameras rotation. In editor its still visible in scene view but will cut in and out as I rotate the camera. Its not beyond the cameras clipping plane so Im not sure whats happening.

    I also am trying to turn off circular force in a script and while the editor GUI updates saying it turns false its not changing the particle behaviour until I manually click on the already lit up red "off" button. Is there a sort of "refresh" call or something Im missing? Below is the code Im using

    Code (CSharp):
    1. transitionParticles1.useCircularForce = false;
    2.  
     
    MaxProude likes this.
  46. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Have you tried to update the bounding box? You can do so in the generals tab. GPU particles can't generate a width and height, because it keeps changing on the GPU without getting an update. That's why you have to make it larger in order to bot be culled. To actually forward your settings to the GPU you have to call particleSystem.SetCircularForce(); Alternatively, you can call CircularForce(bool active) directly. You can check the editor script to see how it does it.
     
  47. idavida

    idavida

    Joined:
    Nov 12, 2012
    Posts:
    33
    This has been asked about before but I can't see an answer: Is there a way to set the layer for the particles? Just setting the layer of the gameobject your particles on it doesnt seem to do anything with what camera I have set up. One should render, one should not, and its not the MainCam that should render the ps.

    When you create the particles I figure you have to create a new object for them, but where do I change this the easiest way - if possible?
     
    MaxProude likes this.
  48. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    Hey idavida,
    sorry for the delay. Here's a fix for the problem. Simply replace the two files in your project folder.
    The next update will come with this fix!
     

    Attached Files:

    idavida and wetcircuit like this.
  49. GoldFireStudios

    GoldFireStudios

    Joined:
    Nov 21, 2018
    Posts:
    160
    So, if I read this right, this currently won't work if we are using linear color in our project?
     
  50. MaxProude

    MaxProude

    Joined:
    Feb 24, 2013
    Posts:
    175
    It will work, but because of the conversion of the HDR render textures (default by unity), the particles will fly slightly to the side. I'm looking for a fix.