Hacker News new | ask | show | jobs
by efields 965 days ago
That's what I was assuming. Camera is so far away it just wouldn't get rendered.

Aside, anyone else noticing more 'one-shot' posts here? Links to tweets, etc that don't really say much besides 'this is a thing.'

Not necessarily bad, but I don't find myself spending as much time with HN links as I used to.

3 comments

"Camera is far away is it just wouldn't get rendered" is...not quite right.

If the view-frustrum of the camera includes the model, it will typically get rendered.

What typically save performance in these games is a system called "LOD" or "Level of Detail". This typically means that an asset (say the 3D model of the citizen) might have a few different qualities of 3D model. One "high quality" model that should be used when the character is close to the camera, a medium quality one when the character is kinda-far, and a super low quality one when the character is way off in the distance.

What the tweet and screenshot reddit post are claiming is that this LOD system is not present for these citizen characters, so when one is far away, they are still rendering using the high quality model. The GPU still needs to do all of the rendering work required to draw the high-quality model, even if it ends up being far away.

> Aside, anyone else noticing more 'one-shot' posts here? Links to tweets, etc that don't really say much besides 'this is a thing.'

> Not necessarily bad, but I don't find myself spending as much time with HN links as I used to.

A generation raised on retweets and other one-click shares now walks among us professionals and peers. Stuff is going to change as they becomes a larger and larger share of the community. It’s the same reason we see more video posts with the requisite complaints from my fellow greybeards about how they swear reading is a lot faster and easier.

But the curiosity is still there and good, depthful discussion still happens in the comments, so I think the community is staying healthy through these changes.

it's not even a distance thing. that would be LODs which are apparently not done for human models.

Occlusion culling and frustrum culling are what are used to choose what is outside of the camera's view, because of either obstruction (a model is completely behind another and is therefore not visible) or is simply outside of the field of view of the camera. That turns whole models on or off, though, and not parts of a model.

The teeth are rendered, but because of how draw calls work, the performance impact of the teeth is miniscule compared against the overall performance profile of the entire game.

> The teeth are rendered, but because of how draw calls work, the performance impact of the teeth is miniscule compared against the overall performance profile of the entire game.

I agree as to the individual teeth, but in aggregate rendering the "high quality" model (thousands of triangles) for lots of small characters that usually appear off in the distance instead of the "low quality" model (tens of triangles) could drive a pretty non-trivial performance hit. As far as the teeth go, they're a pretty small factor overall, but I would imagine having no LOD on characters that are usually small and distant is a significant performance issue.

yes it is. I didn't say otherwise.

geometry instancing makes even complex models transfer to the GPU quickly (when measured per instance) when you send them all in the same draw call, but sending a few LODs in a few draw calls will take less time to rasterize, yes.

problems in this space are very fun to work on and think about, to me. that's why I work on completely different things. I'd hate it if I did it full-time.

Sure, I guess I was mostly responding to "the performance impact of the teeth is miniscule compared against..."

I might have just over-interpreted how small you meant by "minuscule". I'm not sure what other performance problems exist in that game specifically, too, which could impact it.