Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • 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 /
  • Help Room /
avatar image
1
Question by Danagon · Dec 21, 2017 at 11:14 PM · renderingvroptimizationruntime

Rendering optimization on runtime generated objects

Hi, I have some performance issues caused by rendering quite a lot of objects. I've read about occlusion culling, frustrum culling and call batching, but I either can't use this solutions and the remainder that I can use don't get the job done. The reason I can't use some of those is because I create and instantiate the objects at runtime. Right now I use about 10000 cubes to generate a level, but this can become much more very quickly. Currently they are cubes, which is one of the easiest meshes to render, but I plan on making them have a bit more complex meshes. Can someone give me some ideas for rendering optimization that can be performed during runtime? I am aiming for about 90 fps (I am developing for the Oculus Rift) so every piece of advise is welcome.

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
0

Answer by JPhilipp · Dec 22, 2017 at 08:16 AM

We ran into similar issues due to the need for real-time generated objects and no chance of baking as it's a sandbox universe. Here's some of the things that helped a lot:


  • Merge as many meshes together into one as possible. This can be done during runtime. Look into CombineInstance on how to do it. Only meshes of same color and material can be easily merged. Careful about exceeding vertices max count (which can be increased in Unity 2017.3, look for IndexFormat).


  • Use sharedMaterials created from your own locally managed stack to avoid duplicating memory, as this slows down Unity a lot. Careful, as soon as you adjust on a gameObject a material that you set as sharedMaterial, it will automatically instance itself and create additional memory.


  • Restrict your number of dynamic light sources.


  • Manually only show the nearest objects as your person moves along the scene. The Linq library and OrderBy command can help you order by smallest Vector3.Distance to your person head transform. You may want to add additional signals outside of just distance, like preferring larger objects even if further away.


  • You mention you use cubes and plan to upgrade to other meshes. If you do however end up with cubes only, search Google for [unity voxel engine] and similar, as there's many specialized approaches for that.


  • Look into GPU instancing, like the Shader component's bottom tickbox "Enable GPU instancing". The latest Unity 2017.3 final may help you here, as they say they fixed some more bugs with it. (It didn't work for us in 2017.2.)


Good luck!

Comment
Add comment · Show 1 · 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 Danagon · Dec 22, 2017 at 12:54 PM 0
Share

Thank you very much! I am certainly going to look into these!

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.

Follow this Question

Answers Answers and Comments

156 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 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

problems with VR cardboard rendering. all goes white 0 Answers

Vive HMD not displaying scene, only displaying white room 2 Answers

Count colored pixels of RenderTexture and get this data on CPU. 0 Answers

HDRP Transparency Shader with Runtime GLTF 0 Answers

VR cardboard rendering problem. 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