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
0
Question by Bartalo · Sep 15, 2013 at 05:40 PM · performanceverticesmeshescountfaces

Vertex Count versus Face Count

When concerned about performance, if I were to choose between a low face count and a low vertex count, what should I choose? I have a set of meshes and I don't know if it is better to apply huge amounts of edge-splitting, nearly dubling all vertices, or instead keeping the mesh smooth-shaded and adding edge-loops near the angles to get the look i want out of smooth-shading (and thus getting way nicer visuals but increasing face count by almost 3 times). So, what do you guys suggest?

Sorry for bad english.

Comment
Add comment · Show 1
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 · Sep 15, 2013 at 06:17 PM 0
Share

Have you checked to see if this is a performance bottleneck yet?

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by getyour411 · Sep 15, 2013 at 07:46 PM

There is really no difference. If you are are doing an edge-cut/loop, you are creating vertices and thus faces. If you add faces, you add more vertices. The answer is keep them both low, how low is driven by your requirements, target platform, # of rendered meshes, etc.

Comment
Add comment · Show 7 · 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 CHPedersen · Sep 15, 2013 at 08:21 PM 0
Share

Correct. In addendum: The notion of a "face" does not exist for a graphics card. It doesn't process faces; there is no "face shader". Only vertices and, later on in the pipeline, fragments. Even the geometry shader which in some sense can be said to operate on "faces", if it is declared to receive triangle strips as input, ultimately processes and emits vertices.

avatar image Bartalo · Sep 15, 2013 at 09:11 PM 0
Share

Ok thanks. But still if I have these two versions of the same mesh, the first (reading from blender) with 6556 vertices and 12894 tris, the second with 8126 vertices and 4652 tris, what should I prefear? Does the fact that the graphics card ultimately processes only vertices, mean that I should prefear to save 2000 vertices even when they come at a price of 8000 new triangles?

avatar image Bunny83 · Sep 15, 2013 at 09:51 PM 0
Share

@CHPedersen: Well, that's not entirely correct. It is true that the vertexshader just processes vertices and transforms them into screenspace. The fragment/pixel shader just processes the final fragments, but in between there are faces (or triangles to be more precise). Each triangle primitive is made up of 3 transformed vertices. The information each vertex holds is interpolated across the surface of the triangle and produces "fragments" which are sent through the fragment shader.

Fact is the more vertices you have the more load you get on the vertex shader. The more "surface" of your triangles are on the screen the more load you get on the fragment shader. How much GPU load you get depends on the model design and on what shaders you use.

avatar image getyour411 · Sep 16, 2013 at 03:32 AM 0
Share

@Bartalo Without knowing more about your goals, I would have said use the 12k tris model. Now I'm reading Bunny's response and questioning myself.

avatar image CHPedersen · Sep 16, 2013 at 07:28 AM 1
Share

Agreed, go for the lower vertex count. Bunny's correction to my comment is totally true in the sense that the graphics card does operate on the faces during the rasterization of the triangles (where the geometry becomes actual pixels). There is interpolation of things like colors and texture coordinates going on there which does increase by face count, but it's unreliable at best to optimize this stage because it depends on the physical size of each triangle on-screen. I.e. it will vary based on how many actual pixels a triangle will take up during rendering a frame and thus is not view-independent. The only constant value in this regard is the number of vertices that were pushed through the pipeline beforehand. This is much easier to optimize for the user, especially because the vertex stage is programmable (vertex shader) and the rasterization stage is not. So optimize your mesh for vertex count. :)

Show more comments

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

18 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

Related Questions

Does Vertices count affect FPS when making buildings? 1 Answer

Is there a way to use SkinnedMeshRenderer.BakeMesh() in multiple threads? (Mesh Instancing) 0 Answers

How can I ADD vertices and faces to a mesh? 1 Answer

How to count bones? 1 Answer

Will mesh collider have the same tringles/veticies of the base mesh? 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