3
$\begingroup$

New 3D enthusiast here with a very basic question: for game assets which is more desirable:

1). The complete lack of ngons? or 2). A reduced triangle count?

Here is a little more detail:

I am building a game asset, a vending machine, which is basically a big, bulky rectangular box (it will not be animated). But, because of the many details on it, it has a lot of faces subdivided, creating a large number of--seemingly--unnecessary faces that could easily be joined. This, however, would obviously create a lot of Ngons. So, I am at a dilemma. I really want to simplify the model by reducing the number of faces (it would not only make the mesh simpler to work with, but I assume the less faces also equal faster rendering, which is crucial for a game component), but I know this would create Ngons, which are supposed to be really bad (although I do not yet complete understand why).

Here is an image of my mesh:

enter image description here

Because I am a beginner, I do not want bad habits to take root in my workflow. I want to approach and learn 3D modeling the right way. That is why I ask this question from you guys with much more experience than myself.

$\endgroup$
  • 1
  • 1
    $\begingroup$ as Lukasz-40sth says, select all the unnecessary edges and press X > Dissolve Edges $\endgroup$ – moonboots May 9 at 10:47
  • $\begingroup$ Do you really need those indents on a game asset? They could be faked with normal map just fine. But if really creating indents for something like mid-poly and avoiding normal baking you would dissolve all unnecessary quads and leave only edges supporting indents. Quads or quads mixed with tris would work fine for asset $\endgroup$ – Mr Zak May 9 at 11:51
  • $\begingroup$ If I understand your question, the ngons will become triangles in game engine. So there is no difference between using ngons or not toward reducing triangles. But it might be a good practice to manually change quads and ngons to triangle when exporting to game asset. $\endgroup$ – Hikariztw May 9 at 16:12
4
$\begingroup$

Let's start with the question first.

Ngons' behavior in game?

It will become Triangle faces that support the ngons vertices, exactly same when you manually triangulate any face in Blender, with some algorithm you don't know or don't care.

So the answer seems to be clear: You need to know when will an Ngons behave as same you want

We could divide the situations in following:

1. The Ngons is flat

Then the algorithm matters, in Blender, most of the ngons can be easily triangulate:

Flat Ngons

But not all game engine use a good algorithm to deal with this thing, it might be confuse by the strange behavior, or the ngons corners is not always convex. And the UV coordinates might be messed up. You should better try it in the game editor to test it.

2. The Ngons is not flat

If the angle is small, it will be OK with the same issue in flat Ngons. But when the angle is quite big. Don't use that ngons. Quick example:

Ngons

The face with 2 vertices in different height cause render engine confuse. When manually triangulate it, it might not be the thing you see in view port before.

conclusion

Don't keep ngons when you are not sure what will happen to it. Use CtrlT to make them triangle, especially when it is not a flat plane.

The rest of the things

And your mesh: Separate those detail mesh if doing it will keep the mesh clean

If you are creating the game asset, then you might want to bake those detail to bump and normal map, or even displacement map. And Ngons might not be bad if the ngons is flat, and clear to triangulate. You should try on rough attempt, export the object to game engine and see what will happen.

And also, it is not that evil to separate the mesh that should be one thing in real-life. If the object is craft in that way (traditional way, not CNC or 3D printing), then do the same thing in modeling.

You may need to decrease the vertices on the large object and use details map textures. But for the tiny thing like buttons and grips, make it separated help a lot in your topologies. Look at the mesh in your vendor machine, those checked edges are meaningless.

It won't cause large overhead using multiple mesh toward rendering. In fact, there is no any cost when the vertices is not connected, the shader(program who draw your scene) only care about the number of vertices, faces and of course the textures. On the other hand, a complicated, well constructed mesh will slowdown your shader by the large amount of vertices and geometry.

But keep in mind: The shader used in these separated meshes should be the same one. Otherwise, this object will be treated as multiple draw calls. That's why it is not recommend to add too much material(shader) to your game object in Unity or other game engine.

$\endgroup$
2
$\begingroup$

As far as this particular model is concerned, you have mostly quads, which are most desirable. Use CTRL+X to dissolve unnecessary vertices to reduce the number of faces.

$\endgroup$
  • $\begingroup$ I have done some of that since I posted this, but there are areas that are tricky and produce ngons. However, the question still stands (in general) of which is more desirable: low polygon count but with some ngons or more polygons but no ngons? $\endgroup$ – Gergely Kovacs May 9 at 12:11
  • $\begingroup$ @Gergely Kovacs: More? I wrote what is most desirable. And ngons are bad when you want to e.g. subdivide faces. If you're not gonna do anything with a face, e.g. it's a base, then it can be an ngon. $\endgroup$ – Lukasz-40sth May 9 at 17:34
2
$\begingroup$

At a short glance I can tell you for sure that, you do not need that many faces if that area is going to be used flat. Like Hikariztw mentioned n-gons can be used but in this case I'm not so sure. Separation is another neat trick which you can use.

You mentioned you want to learn the correct way. And mostly the correct way is to avoid using ngons ; but having said that you must always consider it... because it is not a must. If the new topology you get by having all quads in your mesh is adding up tremendous amount of work and does not really give you any positive benefit in a game engine; then there is simply no point of trying to workout ngons into quads or tris!

You must note that ngons do not :

  • behave good in animation,
  • cannot produce accurate shading
  • light bounces unexpectedly
  • hard to uv
  • and etc problems...

For those reasons, it is usually good practice to avoid them. But if the role of that ngon is not gonna interfere with those circumstances go with it.

$\endgroup$
  • 1
    $\begingroup$ I always think we should talk about in what circumstances Ngons fails in game engines. That is quite important in modeling issue with game. But it might be too deep into rendering pipeline and people just don't care about it... $\endgroup$ – Hikariztw May 9 at 14:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.