🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Is it possible to rasterize this many polygons on a GPU?

Started by
46 comments, last by JoeJ 2 years, 11 months ago

Newgamemodder said:
So technically i can have 200 mil at 4K or 1080p?, if so how are the details affected?

I'll do some example to get an approximated answer, just to show i can't do better than you can:

4K: 4.000 x 2.000 = 8M pixels. So if we scale the ship it spans the screen, 200M triangles is too much. If we zoom in to see a details like a FPS would show, 200M triangles might still not show the detail we'd like to see.

So no real answer yet. We add the assumption in your game we will see many ships on screen, and our current model will have an average size of 800 x 400 = 320.000 pixels.
We also target each triangle should cover 10 pixels to work well with current GPUs.
And backsides of ships are culled, so only half of triangles are visible.
Also, many triangles are not all parallel to the screen. They are angled, reducing their pixel coverage. Let's just double our target pixel coverage to 20 to factor this in at least somehow.
We also assume all triangles of the ship are about the same size (which likely won't be the case).
And we assume the model has no interior which we won't see anyway.

We get: 320.000 / 20 = 16k triangles, times two for the culled backfaces = 32k triangles. ('← practical now')

Now assume we can render pixel sized triangles like UE5 would allow, and ignore to factor in angled triangles: 320.000 / 1(target triangle size) x 2(back sides) = 640k triangles.

Now assume we want enough detail to cover the full screen with one ship: 8M / 1 x 2 = 16M triangles.

Now for 8K: 32M x 2 = 64M triangles.

For 16K we get 256M triangles. ('← overestimated utopic wishful thinking?')

So that's simple math, and in the last case i come close to your 200M.
However, it's just guides to give us something. If your spaceship is a cube with no further detail, you'll use just 12 triangles, no matter what's the screen resolution.
So beside theoretical maximums given from pixel densities, what matters mostly is the shapes of your models. If they are flat, you don't need many triangles. If they are curvy, you need much more.
In practice this means you'll use smaller triangle counts than those numbers tell.
And even if engines generate best fitting LOD themselves, you do not want to waste storage by having dozens of 200M poly ships if 4K is the target.
Modeling 200M ships anyways, to be future proof, is not ideal either because we waste artist time.

Now asking: Would using 200M models on HD resolution cause noticeable aliasing like flicker? - Probably no real problem, but depends on the model. Would it cause the engine to slow down? - Depends on engine, but likely to some unknown degree.

So it's not really possible to predict such numbers. It's mostly a matter of mix and match while working on it. This includes testing performance and storage requirements, and you may end up changing your targets during work on the project, or accepting the choices you made before turn out not ideal but still good enough to keep a model as is.

Advertisement

This post shows some numbers of how triangle size affects GPU rasterization performance: http://filmicworlds.com/blog/visibility-buffer-rendering-with-material-graphs/#disqus_thread

So i should assume 1 triangle = 10 pixels?, is there any way to know how they are for other games so one can get an average?

SO I need 2 billion pixels???, so 48K?

“If they are flat, you don't need many triangles. If they are curvy, you need much more.”

Since a star destroyer is very “square” except for some details how many triangles should i assume for it?

This part i don't understand:

  1. Can we efficiently calculate analytic partial derivatives with material graphs?
    • In other words, is this approach viable, at all? If we can't calculate analytic partial derivatives, this approach is a non-starter.
  2. For very high triangle counts (1 pixel per triangle), is the Visibility approach faster?
    • Is this approach faster for future workloads? If we want to hit film quality, eventually we need all triangles down to 1 pixel in size. Backgrounds, characters, grass, props, everything.
  3. What about more typical triangle sizes (5-10 pixels per triangle)? Is the Visibility approach faster there too?
    • Is this approach faster for current AAA game workloads?

I assume my only hope is this gets developed further so i can do 16 x 3:

https://www.ucf.edu/news/ucf-research-bring-drastically-higher-resolution-phone-tv/

So i should assume 1 triangle = 10 pixels?, is there any way to know how they are for other games so one can get an average?

The 10 pixels per tri number is commonly used to get acceptable quad utilization from GPU ROPs. So it applies for any engine except UE5 and Dreams which barely use ROPs, but draw stuff with compute shaders instead.
So it's safe to assume no (other) current game wants to go below that, while they often use larger triangles.

Since a star destroyer is very “square” except for some details how many triangles should i assume for it?

It's about scale. We can capture the overall shape of a Star Destroyer with 100 triangles. But id we zoom in, we see high frequency detail on the surface. Boxes, cylinders, spheres… to create some kind of SciFi decoration. If we want to model this with triangles, it goes up to infinity. To model a simple sphere without any planar sections, we need infinite triangles.
So the answer is always: It depends on what content you want to show. How is the average scale we need the most? If there is a cut scene with close ups, can we model just a small section at high detail for a background? Etc. Thus, you have to answer this to yourself.
In context of a RTS, i would guess something like 100k should give very high detail, but i never worked on modeling spaceships, so what should i say?

This part i don't understand:

That's just implementation detail which matter for gfx devs, but not for you. They test big / medium / tiny triangle sizes for the same ‘model’, and you can see the difference in costs in the tables.

Newgamemodder said:
I assume my only hope is this gets developed further

Further to higher resolutions on iPhones?
“The new 16K display on iPhone20 - higher resolution than you can see!” Does this make sense?

No. To show small scale details, you need to move your camera close to them. If you don't move your camera - no need for small scale details.
It's as simple as that. The fine grained details on a star destroyer are nothing interesting if we see the whole ship like in a RTS.
I don't understand why you have so high expectations here, up to the point where you think we need new display tech just to show a scale of detail which is irrelevant at our context?

JoeJ said:
I don't understand why you have so high expectations here, up to the point where you think we need new display tech just to show a scale of detail which is irrelevant at our context?

It's simple really. I want it with all the details from the physical model so it looks movie accurate. The triangle count i often get told is 10 million. so that's why

But in those movies they do many close ups. Won't happen in RTS.

Beside that, there's always discussion of what's more important: Geometry (detail) or lighting (realism).
Now lighting in space RTS is easy too because GI has little effect, but to come closer to movies and real world, detail certainly is not all we want.

We can only wait and see. UE5 is nice, but we don't know yet how it will be utilized: For insane details, or just to optimize by reducing detail to ‘what we really need’.

y'know what, Your right. Ill use game ready models that already exist instead. I assume they are already optimized.

Guess ill make the ship 700k instead of 10 mil

Newgamemodder said:
Ill use game ready models that already exist instead. I assume they are already optimized. Guess ill make the ship 700k instead of 10 mil

No bad idea. Sounds that content is easy to get. So you can switch to higher details later in case without much loss of work. And getting this high detail content should also be easier later than now.

This topic is closed to new replies.

Advertisement