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.
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.
tvc-20090311.zip md5sum:
0caaf418af6f66e7a6bd3fbde6a0a0fc
tvc-20090222.zip md5sum:
f178f4d04a23d3b9b2e8dc791cc89cc1
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.
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).
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: 111ff5c87937260a402c87dc6fee9e72tvc-20060613.zip md5sum:
f5126da797119bfdda03ec12d21b102a
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.
tvc-pre-release-1.zip md5sum: b873152eb3d06013fdcf2d4e5e1ff458