home / TVC

TVC Release History


Release #5 "Simple Shader"

This release implements a simple shader processor that allows handling graphics at the level of small bundles of triangles. A custom development tool chain was created, including a compiler. A simple software only rendering pipeline is provided running on the shader processor.

Pics/Screenshots

See Demo Pics

Design Documents

R5 Overall Design Document

R5 Shader Processor Design Document (v2a)

Download

opengraphics post

File
License
md5sum
Notes
tvc-20141218.tgz Varies - see each file in archive for license
514f7542862f393aec43348f41d9a22d
Archive contains symbolic links and named pipes

Release #4 "T-Mapper"

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.

Pics/Screenshots

depthbuffered fpga rendered teapot
fpga
                  hardware texture mapping r4

Design Document

R4 Design Document

Download

opengraphics post

File
License
md5sum
tvc-20090311.zip Public Domain
0caaf418af6f66e7a6bd3fbde6a0a0fc

Release #3 "Cleaner-I"

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.

Design Document

R3 Design Document

Download

opengraphics post

File
License
md5sum
tvc-20090222.zip Public Domain
f178f4d04a23d3b9b2e8dc791cc89cc1

Release #2 "Utah Spinner"

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

small
                  teapot tvc r2 hardware rendering

The movie above was captured using a webcam. 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).

Design Document

R2 Design Doc

Download

opengraphics post

File
License
md5sum
tvc-20060917.zip Public Domain
7b4f751b48d97bc4889cdb69a2868acb
teapot.off Unknown copyright status. Random google find.
111ff5c87937260a402c87dc6fee9e72

Release #1 "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

File
License
md5sum
tvc-20060613.zip Public Domain
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

File
License
md5sum
tvc-pre-release-1.zip Public Domain
b873152eb3d06013fdcf2d4e5e1ff458