Quake On an Oscilloscope
An anonymous reader writes: Developer Pekka Väänänen has posted a fascinating report on how he got Quake running on an oscilloscope (video link). Obviously, the graphic details gets stripped down to basic lines, but even then, you need to cull any useless or unseen geometry to make things run smoothly. He says, "To cull the duplicates a std::unordered_set of the C++ standard library is used. The indices of the triangle edges are saved in pairs, packed in a single uint64_t, the lower index being first. The set is cleared between each object, so the same line could still be drawn twice or more if the same vertices are stored in different meshes. Before saving a line for end-of-the-frame-submit, its indices in the mesh are checked against the set, and discarded if already saved this frame. At the end of each frame all saved lines are checked against the depth buffer of the rendered scene. If a line lies completely behind the depth buffer, it can be safely discarded because it shouldn't be visible."
Any game at all on the Vectrex.
Inheritance is the sincerest form of nepotism.
He's displaying it on an oscilloscope. Still cool, though.
The irony is that it's only taken 40+ years to get to display resolutions for raster graphics to approximate vector graphics.
Not to say this isn't cool. I like that the youtube video is basically the following chain: raster Quake -> custom vector renderer -> vector scope -> raster camera capture -> raster video upload -> raster youtube video stream -> you eyes
In *no way* is the video as cool as that scope in real life!
Please vectorize my dog. Thx.
That is by far the geekiest thing I've seen in a long time. As someone who has also ported Quake to run on hardware it wasn't designed for, my hat's off to you.
Better known as 318230.
In an alternative steampunk universe, this is how graphical displays MIGHT work.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
He didn't find all the secrets...
Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)
http://www.lawrenceperson.com/
First off, In the late 90's Tektronix made a series of digital oscilloscopes that ran an embedded version of Windows 98.
But really, the easiest way to get Quake running on an oscilloscope is to take the raster signals from an analog CRT controller (like, for instance, a VGA card) and use the vertical and horizontal signals to properly drive the X and Y axis, and feed the video into the Z axis. Like, duh. Why would you vectorize it?
More of this!
The IBM T221 cost $17,999 when it was released. I can't imagine anyone outside a research lab or government agency buying one back then.
Only the State obtains its revenue by coercion. - Murray Rothbard
A decent vector oscilloscope display uses the Z blanking input to turn off the beam when not drawing a line. I see no mention of this in the writeup, and consequently there are ghost lines all over the screen. It would look a whole lot nicer if the Z input were put to use.
The determined Real Programmer can write Fortran programs in any language.
Where is my upvote button? Why can't I fucking upvote this?
Here's to losing my Karma Bonus again....