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 /
avatar image
0
Question by viesc123 · Jan 09, 2018 at 12:35 PM · static batching

How does a MeshFilter know what part of a static batched geometry to render?

I was wondering how a MeshFilter knows what part of a statically batched mesh it should pick. Can I use the same functionality on my own meshes -> picking and rendering only a part of a geometry.

Background: When objects in a scene get combined with static batching, the MeshFilters of the objects reference one huge "Combined mesh" (that has somewhere around 64k vertices). Yet, when I deactivate one of the GameObjects/MeshFilter/MeshRenderer, I can hide the the part of the combined geometry that was the original mesh.

How does this work?

mesh filter referencing combined mesh after static batching

combined mesh in inspector

2018-01-09-13-24-56-settings.png (8.0 kB)
2018-01-09-13-25-09-settings.png (31.4 kB)
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
Best Answer

Answer by Bunny83 · Jan 10, 2018 at 11:09 AM

The static batching feature is internally implemented. Keep in mind that all things that you see in the inspector and that you work with in C# are just wrapper classes. The actual engine is written in C++. The wrapper classes just act as .NET managed interface to engine features.


When an object is marked to be statically batched (either by having "static" checked in the editor or by using the StaticBatchingUtility on runtime generated objects) Unity will actually deactivate the individual renderers and create an internal renderer for each batch.


As you can read in your screen shot the generated combined mesh has 25 submeshes. So the combined mesh shares a common vertex buffer but seperate index buffers. We don't know how Unity finally handles the rendering of the seperate submeshes. It's possible that Unity creates a temporary index buffer with only those submeshes that should be rendered (those which are enabled and not frustum culled) or they create a command buffer sequence to issue all required drawcalled at once.


Anyways the exact internal functionality we can not know and we can't access or modify it. All we can do is tell Unity which objects we want to have statically batched.

Comment
Add comment · 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

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

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

StaticBatchingUtility.Combine crash on device 1 Answer

mesh volume static batching 0 Answers

Is there any problem with deleting static GameObjects? 0 Answers

Does Static batching on 2D sprites work with random color tone? 1 Answer

Static Batching, AssetBundles, and StaticBatchingUtility 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