Which one is most likely to affect performance in any case?

Hello,

This is just a discussion. Here’s a picture:

You can see the big difference between these two objects. Here’s an explanation

Left SIDE: the cube is not united with the cylinder. The total tris is 116. The face where the cylinder is resting on has no hole.

Right SIDE: The cube is united with Cylinder using Boolean (“UNION”). You can see these lines connecting to vertices on the cylinder, The total tris is 214. The face that Cylinder is resting on already has hole due to “UNION” using boolean.

Both of these objects are triangulated… They would have a high detail texture, so I wondered which one is most likely to affect the performance. The objects could be vehicles in general or fixed object that doesn’t move at all.

I would like to hear your opinions. Thanks for joining this discussion if you’ve shared your opinions.

1 Like

left you will have more overdraw. right more triangles.

with such simple objects there shouldn’t be any difference. in huge scenes it depends… on the shaders, on how much overdraw there really is,… but i would guess the left version is a bit faster in most cases?

1 Like

Like the above has stated, It probably won’t affect performance that much. this is a difference of only 100 tris on a model that is under 1K tris. This is in a time where you can easily have 12 or more characters running around on your screen where each character has more than 60K tris.
Unless you are going to have hundreds or thousands of those on screen as they are, then I’d say the best choice would be what looks the best.

Texture / Shade it, then you’ll start to notice what’s it all about.

It would be assumed the model with less vertices will be faster. Is this object two objects or just one? If it’s two objects you might meet a bottle neck when processing the two as two. The one on the right would have more things to draw, more cpu/gpu required. Then there is the size to consider, two objects of same geometry, but one is bigger in size. The bigger one will of course take more time to draw the triangles.

LIke it was said, when textureing and then rendering, a difference in visual quality will be seen. saying, the difference for the segmented object might be what’s desired.

Not only does this change things, but the cpu/gpu cache also changes things. then there is compiled in optimizations. One object with more trianlges could in theory sometimes be faster.

The one on the right should take more computations to finish.

“overdraw”? can you explain what does it mean? :thinking:

I’ll check it out to see what’s it about.

==========================================================================
@Mikequeen123 and @humanartist and other people

these objects may be very simple… but what if it’s a vehicle like this picture:

You can see there are few parts on the roof of the locomotive… now Let’s imagine that the train is just like on left object where it has no triangle or holes. so Left Train would have less tris… I would say 1 to 5K tris less.
while the right train like right object would have more tris because these parts will be united with the train on the roof would gain 1-5K of tris.

There are parts all over the body of the locomotive that could make up 1 to 5K depending on the level of detail you put on geometry. SO, my guess is the Left train (like left object) is most likely to not affect performance because of a fewer tris that it has to be drawn and rendered?
If I am wrong, then I would like to learn more. thanks!

Hi @Xelbayria,

As others have stated, if the total number of polys in the whole scene is low, then it will make no difference on performance, however, from a Game engine point-of-view, it’s worth mentioning that long thin triangles are not desirable. Here’s an overview of the reasons from an in depth article on http://fragmentbuffer.com/gpu-performance-for-game-artists/

Unfortunately the article ( despite it’s length) has not been tagged to allow specific linking to the individual sections, … scroll just over 3/4 of the way down, until you reach this image:

image
( image Copyright © 2019 Keith O’Conor as detailed on that websites footer)

The relevant info starts in the paragraph directly above it.

This also has implications if you have lots of cylinders with radial faces on the ends, irrespective of any other meshes.

Cheers,
Dj.

1 Like

The one on the right is kinda courting artifacts where you can’t use them. It is not just how much topology you have, but where it is that can matter in these things. Performance wise I would expect both of them to be fairly close (yes the one with less poly ‘should’ be faster)

just multiply this model by 1000 in your scene and you will see wether or not it affects perf.

according to my xp, for real time rendering… you got 100 tris or 10000… it’s almost the same.
Vertex are non greedy.
But this depends on what you map on those tris.
flat crappy thingie will give no difference.
complex shader with height, normal, spec, ref, etc… will be heavier. wich means that any overdraw is expensive.

Generally use the correct meshing ( the rightmost pic ) as for shitty shader, it won’t give you any difference, but for PBR shaders, it can give you some.

as sumup. poly count is of no importance today. now, care the overdraw and above all alpha blending thingies.

happy blending :slight_smile:

EDIT: note that am speaking from a real-time-gamin point of view !
Am sure experts of still image rendering will kik my ass :stuck_out_tongue: and prove me am wrong !

Thank you, I understand now.

about the texturing, would a low detail texture and a high detail texture made a big difference on how it affects the performance of any computer? Even the poly count doesn’t matter at all?

to be honest, I am not sure if you know this… there are some games that have strict on how much poly counts you can model an object… for example, Train simulator 2018 - 2019 has a maximum of poly count which happened to be 200K tris. :thinking: if I recall from my memory.

another one called “Minecraft” where it has about 1k tris max depending on the coding that mods can work to rendering these objects in-game. Some mods allowed to have a max of 150K tris (this is because the coder is an excellent programmer, I would assume)

I am told that if your object that goes beyond the max of the poly count could cause lagging when you are playing in-game. I supposed that some games have a limit that modellers and artists must be aware when they are making objects such as vehicles, planes, or trains and implement them into the game.

I got a geforce 610.
a quite shitty video card.

Developping for realtime 3D things ( check my project: Carcassonne )

i sincerely see no difference with 2K models and 20K models :slight_smile:

the difference comes when you load the donkey with better shaders/nodes.

i don’t know wether you target your work towards still frame rendering of realtime rendering.
If it’s still frame, your question is almost without object.
If it’s realtime you’ll have to care about how your engine renders things and abouts its bottlenecks :slight_smile:

for most cards the max vert count is 64K…
This gives to most of us a wide playground. However engines split the bigger model in smaller parts.

happy blending :slight_smile:

:face_with_monocle: interesting castle you have there…

well I have an objective where I want to understand how it work… the object with poly counts and the level of details using shaders or texture image… seeing how they could affect performance. Today, I have seen many high quality games like Resident Evil 7 or project cars 2… they have really good environment looking where it look quite realistic. I was wondering how the hell they make that environment so realistic with the GPU we have today… knowing the potential of that GPU can bring out.

I just want to gain more knowledge by sharing my opinion and see what other people shared with their experiences.

Of course, I learned about the topology 2 weeks ago. I was pissed off that I didn’t know that a bad topology or a good topology can make a big difference when I started to learn how to model… It make me wondered are there other things that I have yet to know about… that’s why I created this topic to learn more.

You can do a performance test.

Duplicate (no instancing!) your object, with an offset.
10 on X, 10 on Y, 10 on Z. Gives 1000 objects. If there is a difference in rendering performance, you could estimate that way.

But, I guess, there is an important point.

Separate meshes could bug collision detection. If a terrain made that way, how to know you cannot ‘fall’ out of overlapping parts of a terrain and watch all others from below? (Could be funny to see other people feet from below, but is there a rope ladder?)

On other hand, it is easier to stick separate meshes together.

You could keep topology clean and simple.
If you like to create something outside scope of gaming, good topology also affects subdivision surface, which will give you a nice clean flow. If you try to create a single complicated surface, it also might affect smoothness of your subdiv mesh. Or, in other cases you end up working hours to get better topology for subdivision.

:thinking:

there are many ways to do performance test, but I am sure if they are accurate or whatever.

Separated meshes on terrian and other stuff related to terrain?.. hmm. I am not sure what you are talking about. Sorry :man_shrugging:
separated meshes could bug collision detection… that I can understand. :thinking:

Yeah, That’s why I have been practicing to do a different method and create a different topology to see which one is better. So I just made good rules I made based on experimenting and playing around to create good or bad topology. BUT Even I make a good and a clean topology, there are some issues with how it flow… it doesn’t matter if I used Subdivisiion modifier or not. I could see on the surface where there is a sharp line (i don’t even use “Mark sharp”)

It doesn’t matter what type of clean/good topology I create to get a good smooth surface with “auto-smoothing” applied. I supposed the fault is within Blender 2.8. There is nothing I can do about the issue, so I’ll just use a good/clean topology for now.