Clipping: Crazy Polygon Shenanigans

I won’t ever claim to know anything about game programming or 3D animation beyond what can be learned through the making-of portions of Pixar movie DVD bonus features, but is there any reason why lots of games still have so many objects clipping into each other? I’m sure there are legitimate technical reasons, but it seems the games that are the worst offenders tend to be rather sloppy overall. Plus, there are a lot of games that don’t really do it at all, at least not in obvious places, which would seem to indicate to me that 3D technology in general is at least good enough to avoid the problem with some effort.

I’m sure it’s an issue with development costs or having to cut corners with certain engines or just running out of production time to tweak things, but I really don’t know. I do know that it’s a huge immersion-breaker for me, especially when it shows up in cut scenes and even more especially when it shows up in an animation that you see throughout the entire game. If your character’s holding a sword while idle, that sword shouldn’t appear to be slicing through his ankle. I know MMORPG’s or games with a huge amount of character customizability would make this way more difficult to avoid, but I don’t see any excuse for it in a single player game.

To you folks here in game development, please don’t take any of this as me being condecending. Again, I’m ignorant to the inner workings of games, so please enlighten me. :) I’ve just seen enough games that avoid clipping to make me think that there shouldn’t be so many that still allow it to happen, but I’m sure it’s much more complicated than I’m making it out to be.

basically, afaik, the model you see isnt what the game is bothering to keep track of. It’s likely just keeping track of where it is, or has some simple SUPERBOXY version of the model at best (bounding box) to determine collision.

I think having polygon perfect collision detection on a nice high poly modle would be very expensive performance wise.

Right, but I’m not demanding perfection. I’m talking about avoiding the really obvious object intersection that just looks silly.

Such as?

In general, large straight objects don’t clip through stuff as much this generation as they did last generation, because these are the easy problems to take care of.

However, hair, capes, other small stuff that looks pretty bad still does. It’s not only the per polygon clipping you have to worry about, but also dynamically deforming the mesh somehow. If you want to, for example, prevent clip through on a cape, you have to be able to bunch and gather the cape at points where things would make it naturally bunch and gather. This looks just as horrible if you have a low poly model, but who wants to spend 4000 polygons on just a cape? You can try to divide up the cape so that the points that are likely to bunch have more polys and the rest has less, but then why not just hand animate everything anyway and make sure the animations don’t clip in the first place?

A lot of the time the really obvious ones are due entirely to laziness on the developer’s part. There are many things devs can do to minimize the amount of visible clipping, without resorting to absurd and expensive per-poly collision calculations. A lot of it is making sure the player’s shape (usually a cylinder) always encompasses the entire model of the character at all times.

I mean, on a smaller more precise level, you are going to usually have some, just because there’s a point at which the performance costs outweigh the potential benefits.

the only modern game with clipping that drives me NUTS is WoW. Capes clip through everything I can put on my back, EVERYTHING. Bliz have to be aware of it, and since you stare at the back of your character all the time… it’s kidna worse than the poorly assigned vertices on the flying creature the hordes travel on (his head near his ears or horns or whatever actually seems to have 1 vert on each side linked to his wings or shoulders, so part of his head ‘flaps’)

Nothing alse has really been glaring at me for awhile now, though some psp games are pretty nasty with clipping. (looking at you gundam tactics, with your robot’s feet 40 yards under ground)

Yeah, that annoys me too. Which is why I usually turn capes off. Realistically they could have added a new cape model per armor type, to make sure it doesn’t clip through yourself.

Weapons also should be properly placed and animated so that they clip through as little as possible. The problem comes when some artist makes a wacky weapon that doesn’t conform to the standard weapon shape and size.

As for player on player clipping in WoW, that was a design decision on their part.

I think the issue is that, when it comes down to it, they have more important things to spend their dev time on that cape clipping.

And frankly, I’m glad that’s the case. I’d much rather have them address the hundreds of gameplay/balance/usability issues people whine about (rightly or not) rather than cape clipping.

Entirely true. I do hope they put in optional physics based capes in the expansion though. It would add so much.

If you couldn’t clip through other players, then people could block entrances to things by lining up.

In Asheron’s Call, if you were PVP+ you couldn’t walk through other PVP+ players. We used this to get through at least one dungeon (I think it was the one added for the first monthly event) by stacking players to get over a wall to the other side of a locked door.

Also, we discovered that if you were inside another player when you became PVP+ again after the death immunity expired, you froze that player in place. We used this in one of the “OF THE HILL PEOPLE” events on Darktide (naked noobs vs the world!) to good effect vs lvl 60 players :)

That’s why I said it was a design decision.

Personally though, I’d like for enemy players to be able to block each other. It would add a lot of depth to PvP gameplay.

The whole “looking at your character’s back most of the time” comment raises an interesting, probably unrelated question. All this time is spent making detailed character faces. Faces show the emotion of the character you are playing. Yet when you are playing a 3rd person game, 90% of the time you are walking around you are looking at your character’s back. You’d think that the artist’s time would go into creating a really detailed back.

Backs are to gun models as 3rd person games are to first person. Put “created really good back and butt model” on your resume.

One alleviation of this tedium of looking at your character’s back has been the “lock on” feature of games. For instance, in Fable, Hulk: UD, Link: OoT and WW, and other games, you get to see more of your character’s model because you are not always facing the front while locked on.

Because we need to look forward when moving forward, and in so doing need to show the character’s back, is there any way to break this paradigm? Or are we stuck looking at character’s backs for the next 10, 15, 50 years in gaming?

Didn’t mean to steal this thread, as the clipping issue is one I’m interested in also. Also related is the funny “legs stick out in rigor mortis over ledge” issue.

They have their animators doing gameplay/balance/usability issues?

interesting approach, I guess.

I think the issue is they have to reasonably be able to display Ironforge with everyone in there, wearing conceivably all the different visually distinct armor types, at a reasonable framerate. So the capes are low poly count.

It’s really hard to make low poly count “cloth” look, well, cloth-like.

Yeah, the capes in CoH look a lot better. On the other hand, the armor/character models and such aren’t nearly as ornate as WoW, and are much more limited. (Which is an odd thing to actually type out given the character creation process, but much of that is pushing around vertices to make thick/thin body parts, with a bit here and there for textures and tinting. There’s nothing like the horribly ostentatious epic armor sets and different weapons and different hats and the like, so there’s more resources for cool capes.)

CoH also has some terrible clipping issues, I forgot about those.

What is the opposite of clipping called? Where the objects should be touching/intersecting but you see a gap in between them? In SotC, when you grip one of the colossus and it’s swinging you around, it sometimes looks as though you’ve let go, despite what the grip metre says. Almost caused a few heart attacks.

floating.

The clipping issues in EQ2 are even worse - they’re not just visual, but
a line of sight issue on the server. Enemies often hide in walls in narrow
corridors, and can attack you while being immune to your attacks.

CoH sorta solves its issues by not actually having collision detection for a
lot of the mobile units. Pedestrians are “on rail”, and you’re pushed out
of their way for being in their track rather than within a “bounding box”.
The only actual collision detection is between players and hostile NPCs.
(I haven’t looked at PvP at all, but presume there’s detection there also.)

These are multiplayer games, though, where N players multiplied by every
NPC and wall becomes very expensive for the server to calculate.

In a single-player game, or the typical FPS with no more than 32-64
players, it feels like laziness. Even Half-Life (the Quake 1 engine with
skeletal animation) had reasonable collision detection. Shoot between the
legs of someone, and you hit the wall.

The quick and dirty answer is that it’s hard. As games get more and more complex, it becomes extremely difficult to model every collision that’s taking place in the environment. Sure Half-Life 1 had great collision detections. It had like 1500 polys on the screen at once. Super Mario Brothers had fantastic collision detection too. Doesn’t mean squat when we’re now running around with games that use 10k polys per character.

Collision boxes/capsules are used to simply collision modeling - the math for calculating collisions on a regular geometric object is infinitely simpler than for some crazy thing an artist creates. The problem is that these objects are not malleable - it screws up the math. So you’ve got a collision box around you character. Great, but now you need your character to stick his arm out. What happens then? Well obviously, you either let it go outside the box, or you introduce complications by allowing your box to scale dynamically.

The other problem is that games are not necessarily constant simulations. The vast, vast majority of real-time games operate on a per-frame basis. That means they are only concerned with how much things change between one frame and the next. They don’t care that a bullet “moves” through infinitely divisible space between two frames. It’s in one place, then it’s in the next. This model means for perfect collision calculations you are limited to performing the calculations after all the frame data is ready for rendering, retroactively changing the scene. For slow-moving objects, you can fudge the numbers a bit and get a reasonably good system without much overhead. For fast moving objects you run into something known as the “bullet through paper” problem. It took Havok themselves three full versions to solve the “bullet through paper” problem, and they do it by running a full-on constant simulation of physics data concurrent with the game they’re working on.

So yeah, not the easiest thing in the world, and one of those places where you’ve got to pick your battles.

Actually, it’s pretty easy to determine that kind of thing for a bullet. The problem is for larger objects which move at a reasonable speed, but need to have their entire large size swept through time.