Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 /
avatar image
1
Question by hellcats · Apr 21, 2011 at 12:14 AM · iosmeshperformance

iOS Performance with multiple meshes

I am seeing non-intuitive iOS performance when rendering multiple meshes. I start with a single mesh which renders about 30K tris and 120K verts. If I render it as a single object, it takes about 3 ms. on iPad 1. If I dice it up into 64 objects (8x8), it takes about 8 ms, and at 16x16 it takes about 22 ms. (mostly in Render.OpaqueGeometry). This happens even though most of the object is culled and is actually rendering far fewer tris and verts when it is diced (16x16 renders an average of 8K tris and 15K verts for instance). I have tried turning on/off dynamic batching and marking the mesh as static, none of which seems to make much difference. The number of draw calls is basically the same no matter how it is diced. Culling alone couldn't possibly be the cause (how long can it take to cull 64 bounding boxes?) I really want to dice up this object (and more like it), but performance tanks whenever I do. Has anyone seen this effect or know of a work-around? (NOTE: I am not using animations or skinned meshes. This is just a single static mesh with about 17 submeshes).

Update: This is only happening with OpenGL ES 2.0. With 1.1 it is faster drawing fewer tris as expected.

Update 2: I tested on PC and see also weird results. I will try on the iPhone again tomorrow. You can see two distinct performance regions in the profiler snapshot on the PC below.

Test1: A single "static" mesh with no textures. 17 draw calls. 0 Batches. 33K tris, 105K verts. .07 ms.

Test2: The mesh diced into 8x8 (64) objects. 28 draw calls. 125 Batches. 14K tris, 23.5K verts, .4 ms.

The diced version renders fewer tris and verts (as expected because of view frustum culling), but it is much slower.

Performance

Comment
Add comment · Show 7
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 Peter G · Apr 21, 2011 at 12:57 AM 0
Share

I assume that you are on iOS Pro because you are using culling but I figure it doesn't hurt to ask.

avatar image hellcats · Apr 21, 2011 at 05:50 PM 0
Share

Yes. I'm using the 30 day trial. We are actually almost ready to ship, so I'll be buying it soon, but it would be nice to understand this problem.

avatar image hellcats · Apr 21, 2011 at 09:17 PM 0
Share

Actually, I'm not using the occlusion culling thing. This is just normal view frustum culling.

avatar image Peter G · May 06, 2011 at 02:53 AM 0
Share

What kind of numbers are you getting for draw calls?

avatar image Peter G · May 06, 2011 at 02:54 AM 0
Share

P.S. GL ES 2.0 uses VBO's to pass vertex data to your shaders so I would expect different results.

Show more comments

0 Replies

· Add your reply
  • Sort: 

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

No one has followed this question yet.

Related Questions

Mesh collider cost 1 Answer

Connecting two meshes. 1 Answer

GPU performance with tris and verts 1 Answer

Bad iOS Performance after good android build. 2 Answers

How do you change meshes between different target platforms? 2 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