Advent Calendar 22: If You Don't Succeed, Tri, Tri Again

Early 3D graphics have a really distinctive look. First you had wireframe, then you added flat shading, and finally we got to a point where could texture and shade the virtual shapes. But they all look kind of simultaneously blurry and pointy. Faceted. Triangular.

You could, in theory, build three-dimensional shapes out of any polygons with any number of sides -- N-gons, in mathematical parlance. You either need a shape that tessellates with itself, like squares, or alternate between two that tessellate together, like squares and hexagons. The problem here, though, is that no matter how round your model is, the computer needs all the individual shapes in it to stay flat. If you're using a shape with more than three vertices on it, there's a chance that manipulating your model will force one or more of the faces to warp such that all of its corners are no longer on the same plane, at which point the computer will have to break it up into smaller N-gons until it finds a solution that has only flat faces again. Triangles have only three vertices to begin with, and if you try to bend them in the middle they just break into smaller triangles, so making your model out of all triangles to begin with is just convenient.

You didn't have to start with triangles, though. It's not enshrined in video game law. And Sega, being rebels with a chronic, crippling lack of planning ability, opted not to.

The decision to make the Saturn a 3D gaming machine was made very late in its development. Originally it was just meant to be a much beefier 32X with a CD-ROM, building on the capacity of the earlier machine in much the same was the Sega CD built on the capacity of the Genesis, only as a standalone console. What made them change their minds? Sony scared the pants off everyone with the games console they constructed almost solely to spite Nintendo. This was crazy stuff to get out of a machine that retailed for $300 in 1995. Sony were building a mad 3D gaming machine, so Nintendo got pissed and they were building a mad 3D gaming machine, so Sega cried for a little bit and then declared that they were building a mad 3D gaming machine, too! This one! Right here!

But Sega didn't really have a lot of experience with 3D, so instead of using triangles like smart people, what they did was build a machine that could draw a lot of sprites, and distort those sprites however you liked. Sprites are always squares, or at least quadrilaterals -- a lot of them don't look it, but that's because some of the square is transparent. So the Saturn did its best to draw 3D with mangled squares. 

Its best was not generally great. Ooh, so many problems. You could technically draw squares as triangles, by collapsing one of the sides to a height of zero, but the fact that it still wanted to color everything in using horizontal lines made it a bitch and a half to do any of the fancy polygon effects that the Playstation could, like transparency and fading. Coding Secrets, a dedicated soul if I ever saw one, recounts how he forced the Saturn to behave nicely and fade the scenery in and out in Sonic R.

In fairness to the Saturn, it performs admirably as the sprite-based 2D powerhouse it was actually meant to be. Genuine sprite-based games looked fabulous on the Saturn. There's a Saturn port of Castlevania: Symphony of the Night that plays beautifully. Street Fighter ports -- fan-fucking-tastic. It just failed to be a very good Playstation, or even N64. 

Not that the Playstation was without flaw. Those of us who spent a lot of time playing PSX games fondly remember the 'wobble' that plagued all of its textures. You got used to it. More accurately called warping, it happened because the console was precise at calculating polygons but had failed to pay attention to the part of art history class that explained perspective. Amusingly, it happens a lot less on emulators, which can take advantage of the floating point processors in your computer or mobile device, but the nostalgia is so strong that at least one person has figured out how to recreate it using shaders in Unity.

Comments

Popular posts from this blog

The mystery of "Himmmm"

WARNING! Sweeping generalizations inside!