Sigvatr
Can't post

Posts: 852
Registered: 08-07 |
The engine only draws vertical scanlike like thingies. They go from the bottom of the screen up. They cannot rotate.
It's kind of complicated but transformations are applied to 3d renders by matrices, which are usually 4x4 arrays. There are multiple kinds of transformations you can apply while 3d rendering, including scaling, rotation, displacement (transformation), skewing and other advanced stuff if you know how to fuck with matrices. All of these matrices are multipled together before being applied to, say, a model, or a triangle, whatever. It determines how they are displayed (if at all) on the screen.
Doom has almost nothing in common with modern 3d engines. To determine if it needs to render a wall, it will see if the pixel on the floor it begins at is within your field of view, and if it is, draw a column of pixels there. Then it gets kind of complicated juggling around all the other shit that display on screen too, like sprites, floors and other walls.
The Doom engine is basically a highly optimized way of drawing columns of pixels and it was a triumph of computing performance at the time it was released.
True 3d engines like quake, before the rasterization crap begins, interpret the game, data and world completely differently. As a true 3d engine, it uses matrices and fancy mathematical shit. It is approximately 26345 times more complicated than rendering a column of pixels.
Basically if you got in a time machine with a copy of quake and went to someone's house that can run Doom just fine, you will get quake to run at about 2 frames per second on their computer.
Doom and Quake didn't so much come out at the times they did because John Carmack is a smarty man, but because the timing was just right. Or, John Carmack jumped on it at just the right time.
The up and down looking you see in Doom source ports works within the realm of Doom's weird column rendering engine. There's nothing 3d about it, it just sort of distorts the columns of pixels, their projections and positions.
|