Thursday, April 17, 2008

GPU Ray Tracing Project Midterm Update



Con and I sat down and did our mid term update for our project. To this point, we've mostly got images that are the equivalent of checkpoint 2 running entirely on the GPU. The above image demonstrates this. The obvious differences is that we've compromised (so far at least) on using an Infinite plane due to data packing restrictions. Getting scene data into a pixel shader in HLSL is one of the challenges of this implementation.

The app runs at approximately 50 frames per second on my desktop machine, which has a Geforce 6600GT. We find that benchmark to be promising, and we're hoping to maintain real-time frame rates on the final version.

Testing is kind of a pain, since it primarily involves rendering different types of data as color information and reading the maps to see what's going wrong. We've rendered pixel perfect depth maps like that so far to diagnose one error we had in implementation.

We're pretty much on track at this point in the quarter for where we wanted to be on this project.

Thursday, April 10, 2008

Checkpoint 4: We don't waste any time!

The above image is our main submission for checkpoint 4. It demonstrates our procedurally textured red/yellow checkboard plane.

The above image is our texture mapped extra, textured with a somewhat pixalated image of Ramona Flowers dancing the Charleston with Scott Pilgrim.

Wednesday, April 9, 2008

Checkpoint 3: Shading Wow

Conrad and I went to work, and produced the following 3 images for this checkpoint.The above image is our required Phong Shaded image.
The above is a Phong-Blinn shaded image, giving us our first extra on this check point.
Finally, we support multiple light sources. The above image has 3 lights, one pure red, one pure blue, and one pure green. This gives us our second extra for this check point.

Monday, March 24, 2008

Project Proposal: GPU Raytracer Reimplementation

Team: Conrad Kreyling, Michael Ey
Class: 4003-571 (Computer Graphics II Undergraduate)
Professor: Warren C. Carithers

Scene to be created: A reconstruction of the Turner Whitted image used in the raytracer project, with emphasis on real-time rendering. This will sit in the Pixel pipeline on the GPU, but ultimately is a pipeline reimplementation.

Project Objectives:
  • Implementation of a raytracer entirely on the GPU
  • Attempt to achieve interactive frame rates
  • Attempt to implement photon mapping (at least caustics)
Software Used:
  • Microsoft's XNA2.0 Game Development Library (C#)
  • Microsoft's High-Level Shader Language (HLSL) Implementation
  • Microsoft Windows
Hardware Used:
  • x86 Architecture
  • DirectX 9.0c Compatible GPU
  • XBox 360
Project Components:
  • Small wrapper UI, quite possibly taken line for line from the raytracer project
  • A packed scene descriptor language able to be transfered to the card in a 1D texture
  • HLSL view plane generation algorithm
  • HLSL implementation of ray intersection tests
Project Responsibilities: Mike and I have worked on several projects in the past, and have become very accustomed to a organic development process. As such, neither of us have a preset list of responsibilities, but will work closely to ensure the project's completion.

Milestones:
  • By April 17th we intend to be developing a "Checkpoint 2" image. This covers:
    • Generation of scene descriptor language
    • Ray intersection tests
    • View plane generation
  • By April 25th we intend to have the Turner Whitted image rendered fully, with recursive raytracing
  • By May 17 we intend to have optimized the recursive raytracing algorithm to interactive levels (around 15 fps). We also intend to have Photon Mapping implemented, and an image demonstrating this feature.
Presentation:
  • We will provide a short PowerPoint-backed presentation briefly describing our project, and the technologies used
  • With any luck, we will be able to provide a live demo with an Xbox360 unit
  • Failing that, we will provide a live demo with a laptop :(

Sunday, March 23, 2008

Checkpoint 2: I Am A Professional Designer

The above image took Mike and me over 3 hours to render in MS Paint. We feel our work speaks for itself.


Furthermore, Mike was able to apply the "Motion Blur" filter in Photoshop to create the above image. He is truly a genius with computing technology.

In conclusion: Checkpoint 2 is done! Basic non-recursive raytracing is implemented as well as supersampling.

Sunday, March 16, 2008

Checkpoint 1

Conrad and I sat down and got the initial checkpoint done, using XNA. The paramaters of the scene are as follows:

Camera:
Position: x = 0.0, y = 0.0, z = 0.0
Look At: x = 0.0, y = 0.0, z = -1.0
Up: x = 0.0, y = 1.0, z = 0.0
Field Of View: 90.0 degrees
Near Clip: 1.0
Far Clip: 1000.0
Aspect Ratio: 4.0/3.0

Light:
Position: x = 1.2, y = 9.0, z = 5.0
Specular and Diffuse colors are both full white

Green Sphere:
Position: x = 0.3, y = 0.3, z = -3.4
Radius: 1.5

Yellow Sphere:
Position: x = -2.3, y = -0.8, z = -5.0
Radius: 1.5

Plane:
Position: x = -2.0, y = -2.0, z = 0.0
Width = 10.0
Length = 50.0