- Home /
Editing particle systems to not disappear when not in view?
Hello,
I dont know any other say this... is there any way to Edit a particle system to not disappear when not in view?
thanks
Edit: Bump
I'm not in front of unity right now so I can't give a proper answer, but it'll be with either your occlusion culling options or the particle emmiter itself. GL
Ok im using basic so no occlusion culling.. It has to be something with the emitter.. I don't think that it is a visible setting. I am quite familiar with unity's particle Systems and I have never seen anything that could be the problem.
Hi 3dDude, I'm just curious. What would be the use of telling the particle system to not disappear when you wouldn't be able to see it in the first place? (I'm currently looking for the answer btw, 100 rep ftw! :> )
Well I am making a rain particle effect, and to make it performance friendly, I am using a small amount of big particles with each texture having a lot of little dots on it. So to make it looked like its stretched I used the stretched particle setting. but when the player looks down. you are not looking at the center of the particle but you should still see it. So the result is that when looking down the rain disappears.
I can't reproduce the problem, could you make a simple scene with just a camera and a particle system setup such that you problem is apparent? It's not the center, but the bounds of the particle system that are used for culling, so as long as some of your particles reach the camera's frustum they should be visible.
Answer by femi · Jan 06, 2011 at 10:13 AM
Your particle system disappears when looked at sidewise because the ellipsoid is flat. So now and then you'll manage to look in a direction where there is nothing.
You can have similar effect to what you're trying to achieve using a ball-shaped emitter parented to the camera / character and set to use world space. I made a quick video using your scene as a starting point.
(will edit this when video is online).
Update 1
Well, while vimeo is delaying my video in its encoding queue, here is my suggestions in text:
- parent the particle system to the camera, so that wherever character looks it sees particles
- make the particle system use world space. this way rain drops / textures will not "stick to the screen", instead character will be able to move through the rain
- use the same size for ellipsoid in all direction
- use wide range of energies (e.g. 0.1-1.0). this way particle system will regenerate quickly while still have enough particles with longer life span to look like rain. as character moves the particle system will regenerate at its new position
- set the world speed to the direction of the raindrops falling, add small random (x, z) speed for more natural feel.
play with the parameters as you actually moving the character, to find what works best.
Update 2
Ok everyone, thank you for all your help... I have found a solution. if I set the stretch length to be lower and add motion blur to the texture then it seems sworks better. With much thought I have decided to accept artm answer, It has helped me the most. you can look at the finished picture here:
Answer by NinjaSquirrel · Jan 03, 2011 at 07:48 PM
Do you mean when it is outside the camera's field of view? Then no, I don't believe so, however you could temporarily switch to another camera with a larger field of view, maybe?
If you mean behind an object then, no I don't believe Unity has an option for that, sorry.
Ahh ok.. I did not think so but I was just checking :( anyone else have a idea?
NO, nao give me mah 100 reputation!!!! LOL J$$anonymous$$
LOL, You can gain reputation by answering questions... I got what I got from answering almost 100 questions.
:p well technically I DID answer the question. And if no one else answers...+50 rep, boo ya!
Answer by efge · Jan 05, 2011 at 09:08 AM
Instead of a particle system you could use a 2D-animated-texture projected on a plane (or cyinder or sphere) in front of your camera. (Maybe a GUITexture could also work.)
The texture could look like this:
- in the upper part falling rain drops seen from bootom up
- the lower part with bubbles and/or ripples
- in the middle standard raindrops
(Not shure how to "paint" that. ;-)
Show only a part of the texture and when the player looks around modify the u coordinates and v for up and down.
After reading all the other answers I would prefer kennypu's suggestion (separate particle system for looking down) because I like the idea of having an extra visual effect when the raindrops hit the ground.
Answer by Jeston 1 · Jan 05, 2011 at 08:39 PM
Particles would be cheaper than animating large textures I think. At least to sell the effect of rain effectively. There are many styles to rain though and depending on if your making a racing game or a shooter, would be a different technique. Using a plane emitter allows you to racast to the sky for logical indoor / outdoor checks
Ideally, you would just write a shader for this tho. From standard unity I would attach a particle system to your character and if occulsion is an issue: make a 2nd camera that only renders a weather layer. Rain is discussed here: http://forum.unity3d.com/threads/9965
If you want rain that looks like a cobblestone city, the magic is really in the puddle effects and not in the rain drops :) For some internet digging im sure you can find someone that has this in a prefab already tho. Dig around: http://danim.tv/blog/archives/unity3d-experimental-fx-exemple/
Answer by kennypu · Jan 06, 2011 at 01:07 AM
One thing you can do that is specific to your situation is to check the player's rotation angle to see if he is looking down. If he is at a point where the particles don't show, have a separate, smaller particle for this and emit that instead. This particle can just drop around the player as he is looking down and won't be able to see far anyways.