TVC Release History

Except where noted, all files linked for download (i.e. not this html) are placed in the public domain.  I did not create the utah teapot geometry .off file, so I cannot release it as public domain.  It was found via google.

Release #4 aka "T-Mapper" (design doc here)

This release implements hardware texture mapping using a nearest pixel selection in 256x256 pixel textures.  A control bus has been implemented that simplifies the epp control unit and makes most of the design independant of the parallel port.

Download:

opengraphics post

tvc-20090311.zip md5sum: 0caaf418af6f66e7a6bd3fbde6a0a0fc

Release #3 aka "Cleaner-I" (design doc here)

This release offers improvements in both software and hardware.  The software improvement to Engine (the included 3d engine and driver) is to include texture mapping in preparation of a hardware implementation.  The primary hardware improvements have been: #1 to the pixel_pusher to mostly separate the pixel clock from the main logic clock, #2 to improve the reset logic design wide and #3 to somewhat properly synchronize signals that cross clock domains.

Download:

opengraphics post

tvc-20090222.zip md5sum: f178f4d04a23d3b9b2e8dc791cc89cc1

Release #2 aka "Utah Spinner" (design doc here)

This release most importantly adds a Z-buffered polygon scanline routine to the TVC. The MCU has been improved to allow unaligned access to the framebuffer and a real scheduler has built into it to fairly share the framebuffer between memory users and yet give the display priority access to pixel data. A simple C++ 3d engine (included) drives the TVC and spins a flat shaded utah teapot about its y axis in one degree increments. The driver software now only flushes epp data registers that have changed to the TVC. A block set memory user has been added to speed clearing the front and Z buffer. The rp_writer memory user has been removed partly for logic space constraints. The development hardware is unchanged from Release #1.

In order to compile the demo / 3d engine / driver combination you will need the libImg library from here. Untar libImg in the previously extracted driver directory, cd into libImg; ./configure and make to compile libImg first, then cd .. and make all to compile. The make process builds two executables; engine and tvc.  Engine renders the spinning teapot in a 640x480 window in X. Engine was used to develop the rasterization routines.  Tvc is the acual driver program for the development hardware. Tvc presents a simple menu in a terminal to exercise the hardware functional units. You will need to also download the teapot.off file below and put it in the cwd so tvc and engine can find the needed geometry data.

Extract the zip archive then see the file tvc.odt (OpenOffice Text Document) in the tvc-docs directory for more extensive project documentation.

Pics/Screenshots:

Rendered Single Screen

Rendered Movie

This movie was captured using a webcam with Coriander in 24bit rgb then encoded in mpeg4 with Transcode.  The cheap lens on the webcam causes some geometric distortion.

Several pics from Release #1 are still relevant.  The scope CAS pic is unchanged from Release #1.  Release #2 has fixed/removed some of the visual artifacts seen in the solid fill and software rasterized lines.  The solid fill proceeds much faster than before (probably too fast to capture well).

Download:

opengraphics post

tvc-20060917.zip md5sum: 7b4f751b48d97bc4889cdb69a2868acb

The Utah teapot geometry. This file has an unknown copyright status. I do not know the owner/creator of this particular file.

teapot.off md5sum: 111ff5c87937260a402c87dc6fee9e72

Release #1 aka "Pixel Pushing Prototype"

This was the first project snapshot publicly released.  The framebuffer consists of a 8MB 72 pin simm and the connection to the computer is via an EPP parallel port.  The only drawing functionality is get/set pixels in the framebuffer.  This release has a well defined internal interface for more drawing functional units.

Pics/Screenshots:

Software Rasterized lines

Development Hardware

Scope CAS signal

Solid fill progressing

Download:

opengraphics post

tvc-20060613.zip md5sum: f5126da797119bfdda03ec12d21b102a

Extract the zip archive then see the file tvc.odt (OpenOffice Text Document) in the tvc-docs directory for project documentation.

Pre-Release #1

This was a confidence building exercise to be sure I could learn VHDL well enough to do anything useful.  It just generates a test pattern on a VGA display.

Pics/Screenshots:

Test Pattern

Development Hardware

Download:

tvc-pre-release-1.zip md5sum: b873152eb3d06013fdcf2d4e5e1ff458