fans in the stands

Started by
7 comments, last by webjeff 15 years, 9 months ago
Hello, What approaches are there for rendering people in stands for a stadium. I have looked at games like NBA 2k8 and NFL Madden 08 and their fans are really good. In NBA 2k8, some even get up and walk up and out the door! You can even see people handing out food. It's truly amazing. I don't want to do billboards because they don't look good anymore. 3d models would be waaay to intense I would think. Any thoughts, this would be for a football stadium. In theory you shouldn't see too many fans while playing on the field so I could cull most of them out, but should I use 3d models/animations for those? Should I do billboards with an animated image? Thanks Jeff.
Advertisement
Depends on what your engine can handle. A mixture is probably fine - (animated) billboards for far-away people, models for close-up and animating persons. Or you could implement a LOD system, that gradually transits from high-poly to low-poly to billboard depending on distance to camera or occupied screen space.

So, yeah, it depends. Art quality, available time, technical limitations... I'd say, try both and see which one you can get the best results from.
Create-ivity - a game development blog Mouseover for more information.
The next gen SVR games claim to render the entire crowd as 3d models. Somewhere around 1000 crammed into whatever space is visible, whether it's the whole arena, or a few sections. Clicky They are lower poly as they get further away. They also use DOF to blur them out after a certain distance. The devs had a video demo at one point where they showed off the fully 3d crowd. Trying to find it. They are probably using impostors and other techniques though. Found it: If you watch this, they actually wander into that crowd, and a little after 2:30, they pull back on half the arena and you see it full of individual 3d people. Pretty impressive the first time I saw it, as I'm used to billboards after the 5 fifth row of people.

I haven't seen any other next gen titles with crowds. I played a little of NHL 08 but never payed any attention to the crowd, as the camera is mostly not focused on them. SVR has a big crowd in almost all frames.

Looking at NBA 08, it's not as impressive impressive.
check out this video and whitepaper from the NVIDIA sdk 10. Download the sdk and see it run in real-time
Daaark,

It looks like that pic is from NBA Live 08, here's more of the fans I was talking about Clicky.

Y2kiah,

Nice instancing there, thats great!

If I do instancing with my character models like that, would that mean they all would need to be doing the same animation... I'm thinking yes?

Thanks
Jeff
Yeah, instances would have to be sharing animations. In fact you may want to consider setting up your skinning so that you store all the transformed vertices in a buffer, and then for all instances read from the buffer to get the vertex data. You could do that through R2VB, or vertex buffer texturing, or MEMEXPORT if you're on 360.

In fact, you should probably just check out this presentation: Seven Ways to Skin a Mesh
Quote:Original post by webjeff
If I do instancing with my character models like that, would that mean they all would need to be doing the same animation... I'm thinking yes?


webjeff, MJP

You may not have read the whitepaper. An excerpt from the abstract on page 3:

With this technique we are
able to realize almost ~10,000 characters, independently animating with different
animations and differing meshes at 30fps on an Intel Core 2 Duo GeForce
8800GTX system


They do this with a single draw call.

The technique relies on DirectX 10 of course, so if you don't have vista and a dx10 card on your dev machine you won't be able to reproduce their technique exactly. If you have dx10 hardware but not vista, you could port their technique to OpenGL.

But either way, this is a classic situation for instancing. Even on DX9, you can at least get your characters on different frames of the same animation without too much trouble.
Wow, that's pretty neat. I must have been thinking of a different sample, I guess. Thanks for the correction, y2kiah.
y2kiah,

Yea, that is pretty neat. I must say though, I am not aiming at the higher end hardware (unless I have I time). So, I am currently trying to do instancing with a combination of LOD to get the results I want.

Thanks!
Jeff.

This topic is closed to new replies.

Advertisement