• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by mynameisjohnj · Nov 06, 2017 at 04:46 PM · particlesculling

ParticleSystem.Emit disables culling?

Hi All,

I'm working a lot with particle systems on mobile VR. I've found this blog post extremely useful, but I have a question about one of its points.

In the section Invalidating procedural mode in the player it says that emitting via script will cause the particle system to enter procedural mode, and that the "tell" for that is that the system's bounds will keep reconfiguring.

I am emitting via script, but as far as I can tell the yellow bounds stay static. I can see that if I switch to world space they do start reconfiguring every frame, but this isn't what I see after calling Emit - the box looks fixed, as it did before, and I can't tell if emitting via script is actually invalidating the system's bounding box.

Is this something that changed in an update to Unity? And is there a definitive attribute I can query on the particle system to see if it's in a "procedural" mode?

Thanks,

John

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Bunny83 · Nov 06, 2017 at 05:57 PM

Well, you only see a bounds change if your particles actually move and require a bounds change. It highly depends on the kind of particle effect you try to create. Certainly nothing has changed in regards to procedural mode and non procedural mode. If you actually understand what that blog post was telling you it should be clear.


The procedural mode can only work when it can actually predict where each particle is in the future and past. Of course when you manually emit particles this is not the case.


You also seem to have misunderstood the information about culling. Both, a procedural and a non-procedural particle system are culled based on their bounds. Culling means frustum culling. So when the systems bounds leave the visible area the system is not rendered anymore. However not being rendered does not mean it's not updated. Procedural systems don't need to be updated when culled because they can simply "jump" to a new state in the future when the system comes back into view. Non procedural systems can't do this because you could actually call Emit while it''s off screen. The newly emited particle needs to be simulated every frame in order to know it's position.

Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image mynameisjohnj · Nov 06, 2017 at 06:22 PM 0
Share

Ok, to summarize - manually emitting particles breaks the predictable nature of a procedural system, and so the system must be updated even if off screen.

What I'm really interested in is occlusion culling. You specifically mention frustum culling but the blog post does not. The blog post does mention using culling groups for custom implementations, and I think those can use pre-baked occulsion maps to deter$$anonymous$$e visibility. What I'd like to do is make sure my particle systems don't get rendered if they are occluded. Is this possible?

avatar image Bunny83 mynameisjohnj · Nov 06, 2017 at 07:02 PM 0
Share

Yes, they should be occlusion culled as well (if you actually baked the occlusion culling data). Note that occlusion culling only makes sense in certain situations.

Though occlusion culling should actually work on every visual renderer by testing it's bounds.

ps:

What I'm really interested in ...

Why didn't you ask this in the first place? ^^

avatar image mynameisjohnj Bunny83 · Nov 06, 2017 at 07:51 PM 0
Share

As you correctly pointed out I had confused render culling with update culling. Because the article mentions culling groups I thought it was clear that both occlusion and frustum culling were on the table.

Does the following situation make sense for occlusion culling?

I have numerous particle systems in my scene but all are not visible together. I don't want to render particle systems that are in front of me if I know I can't see them (thanks to the occlusion map.) I can see that my geometry is being culled correctly by my occlusion map, but I wasn't sure if the particle systems (and my invalidation of them via script) would have an impact.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

74 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

hiding particles near camera / adjusting near clipping plane per layer? 0 Answers

Particle trail dissapears when emitter is off screen. 1 Answer

[5.1.2f1] Unnecessarily agressive culling - how to tweak it? 1 Answer

shuriken particle system not rendering particles when off screen 7 Answers

Is it possible to trigger a Visual Effect event manually? 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges