Nearly a year ago, an extremely interesting project hit Kickstarter: an open source GPU, written for an FPGA. For reasons that are obvious in retrospect, the GPL-GPU Kickstarter was not funded, but that doesn’t mean these developers don’t believe in what they’re doing. The first version of this open source graphics processor has now been released, giving anyone with an interest a look at what a late-90s era GPU looks like on the inside, If you’re cool enough, there’s also enough supporting documentation to build your own.
A quick note for the PC Master Race: this thing might run Quake eventually. It’s not a powerhouse. That said, [Bunnie] had a hard time finding an open source GPU for the Novena laptop, and the drivers for the VideoCore IV in the Raspi have only recently been open sourced. A completely open GPU simply doesn’t exist, and short of a few very, very limited thesis projects there hasn’t been anything like this before.
Right now, the GPL-GPU has 3D graphics acceleration working with VGA on a PCI bus. The plan is to update this late-90s setup to interfaces that make a little more sense, and add DVI and HDMI output. Not bad for a failed Kickstarter, right?
Anyone can grab a projector, plug it in, and fire a movie at the wall. If, however, you want to add some depth to your work–both metaphorical and physical–you’d better start projection mapping. Intricate surfaces like these slabs of styrofoam are excellent candidates for a stunning display, but not without introducing additional complexity to your setup. [Grady] hopes to alleviate some tedium with the TightLight (Warning: “music”).
The video shows the entire mapping process of which the Arduino plays a specific role toward the end. Before tackling any projector calibration, [Grady] needs an accurate 3D model of the projection surface, and boy does it look complicated. Good thing he has a NextEngine 3D laser scanner, which you’ll see lighting the surface red as it cruises along.
Enter the TightLight: essentially 20 CdS photocells hooked up to a Duemilanove, each of which is placed at a previously-marked point on the 3D surface. A quick calibration scan scrolls light from the projector across the X then Y axis, hitting each sensor to determine its exact position. [Grady] then merges the photocell location data with the earlier 3D model using the TouchDesigner platform, and bam: everything lines up and plays nice.
Armed with four wingtip-mounted Sienar Fleet Systems L-s9.3 laser cannons and a SFS P-s5.6 twin ion engine, the TIE Interceptor has become the scourge of the Rebel fleet, nearly capable of out-running and out-maneuvering the beloved A-wings of Nomad Squadron. Because of [Matt]’s tireless work, we can now visualize TIE Interceptors on approach with our
targeting computers oscilloscopes.
[Matt]’s oscilloscope visualization of a TIE fighter is a huge improvement on previous scope displays we’ve seen, considering [Matt] used very minimal hardware to display 3D graphics. The build uses an ATMega88 along with a 10-bit DAC to draw lines on the screen. The capacious Mega88 with 8kB of flash and 1kB of SRAM was nearly filled to capacity with [Matt]’s project; to improve the rendering speed of the display, sine & cosine values are pre-computed and stored in flash along with division tables for common values.
The rotation of the TIE fighter is controlled by a serial connection to [Batt]’s desktop. It’s a very impressive piece of work that looks like it would fit into the cinematic aesthetic of The Empire Strikes Back. Check out [Matt]’s video of the TIE rotating in space after the break.
Continue reading “3D Graphics on an oscilloscope”