Hi,

How triangles are counted in DebugHud? I see that I have counted about 8 times more than it is in models. What could be the reason for this surplus?

More info, plz. Shadows, viewports, text, anything.

E.g. screenshot of Uhro window.

I found same problem some time ago. DebugHud always add its text triangles to summary triangles count. It adds about 10000 triangles if DebugHud is in DEBUGHUD_SHOW_ALL mode.

Sorry to reply this old post.

I am having the same question.

I have two terrains, each is constructed by a 65*65 heightmap.

So for each terrain, I expect 64 * 64 * 2 = 8192 triangles. Total would be **~16,000 triangles.**

But I am seeing **61,559 triangles instead,** about **4 times more**!

Attached two screenshots.

Overview

Zoom In (you can count the size manually)

It looks to me that you have 64 x 64 **quads** per height map, so 128 x 128 triangles x 2. That puts you at ~33k. The rest is apparently taken up by the HUD text and logo.

Correct me if I am wrong, but **1 quad = 2 triangles**, so 64 x 64 **quads** = 64 * 64 * 2 = 8192 triangles. Two terrains make it into **~16k**. I think you double counted it.

Even by your calculation, the logo and HUD is making up the rest ~30k triangles which does not make any sense to me?

I did a simple test, just rotate the camera to the background and no terrain showing.

The base count of triangles **~11k**.

This agrees with @ KonstantTom’s result

My bad. I misread your post and didn’t see that you multiplied by 2 before doubling (and yeah, if counting the triangles across, my formula should have been 128 x **64** x 2 = ~16K).

So, I did a test with an empty scene and got ~12k tris. Then I threw a model in and got 97k tris. However, that model in Blender is only 28k Tris… So, it looks like something **is** wrong. I never questioned it before

That’s interesting.

So basically for my case,

*the display triangles / real triagnels = (62k - 12k) / 16k ~ 3 times;*

For your case,

*the display triangles / real triagnels = (97k - 12k) / 28k ~ 3 times;*

A quick guess would be the calculation counted **vertices** instead of **triangles**.

But I took a quick look at the source code, could not find anything suspicious. For example, in `D3D11Graphics.cpp`

or `OGLGraphics.cpp`

, we can get the `primitiveCount`

number.

```
static void GetD3DPrimitiveType(unsigned elementCount, PrimitiveType type, unsigned& primitiveCount,
D3D_PRIMITIVE_TOPOLOGY& d3dPrimitiveType)
{
switch (type)
{
case TRIANGLE_LIST:
primitiveCount = elementCount / 3;
d3dPrimitiveType = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST;
break;
...
}
}
```

Anyway, I believe it should be just a mis-count somewhere, not mistakenly rendering more triangles than we need. So it should not impact the performance.

Note that in forward rendering, each per-pixel light will re-render the affected geometry. If you have an unlit scene there should be just a single pass.

For shadowed lights, there will be also shadow map pass, which renders even more triangles.

Ah! That explains it!

I do have 3 lights in the scene.

When I leave only one light there, the total triangle count is ~28k, exactly 16k + base 12k.

Thanks so much for pointing this out ! Lasse!

I am still learning all those computer graphics rendering techniques. I am writing a custom terrain class to dynamically create/destroy patches for a super large world.