Slashdot Mirror


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."

3 of 71 comments (clear)

  1. Looks a lot like... by fibonacci8 · · Score: 3, Insightful

    Any game at all on the Vectrex.

    --
    Inheritance is the sincerest form of nepotism.
  2. Vector Graphics by danomatika · · Score: 5, Insightful

    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!

  3. Nice work by gatkinso · · Score: 1, Insightful

    No snarky commentary to offer like the above posters.

    --
    I am very small, utmostly microscopic.