Fray Trace (codename) is a raytracer on an FPGA. It's not clear what framerates/resolutions will be possible, but I'm hopeful that this project will make it possible to cheaply add raytrace-quality displays to low-power projects.
So far Fray Trace is a working board with working VGA output, plus some architectural ideas for how to build the raytracer; implementation is in progress.
I've successfully brought up the VGA output on v0.3 of the board. v0.3 consists of:
- A 256-BGA Spartan 6 LX16, for the main raytracing
- A 128MB DDR3 memory for the frame buffer and geometry +texture memory
- A backup 64MB DDR memory for if I can't get the DDR3 memory working
I was worried about the BGA-ness of the FPGA; version 0.2 used a QFP fpga, but all the larger FPGAs only come in BGA packages. Since the raytracing performance should scale fairly linearly with the amount of FGPA space, I think it's important to gain access to the larger FPGAs. An LX16 is not that huge, but is the cheapest BGA FPGA on digikey, which I wanted to use for testing since this is my first BGA part I'm trying to use in a real board (I've done some successful tests on test boards though: http://blog.kevmod.com/2014/04/bga-update-first-successes/ ). The footprint on the v0.3 boards can accomodate an LX25, giving more ray processing space, and a similar footprint (same land pattern different pinout) can be used for the newer Artix parts. Anyway, as worried as I was about the BGA-ness, the FPGA worked on the first try and we're getting output:
The monitor on the floor is the FPGA output. Unfortunately I couldn't convince my phone camera to not clip the brightness in that section of the photo, but I swear it's not washed out in real life!
There are two parallel paths of work going forward:
1) getting the dram working (ideally the DDR3 but the DDR would also be acceptable)
2) getting a very basic raytracer working using only the FPGA's internal memory
I'm more concerned about #1, and since fixing that may require a new board revision, I think I'm going to tackle that first. Then again, I'm excited to see something other than a test pattern on the screen, so we'll see!