David M.Oard
Graphics Programming Portfolio
  

Overview

Throughout the years I have been sharpening my skills in computer graphics programming and C++.

TinyRay - Simple path ray tracer

Team:

David Oard

Summary:

One of my biggest interest in computer graphics is ray tracing. After playing around with several ray tracers I decided to try to write one my self. Tinyray is a CPU based path tracer where I got most of my material from the PBRT book. I tried to simplify is as much as possible by reducing inheritance and recursion. It's not perfect but it does generate a pretty picture.

Technology used:

  • C/C++
  • FreeImage, FreeGlut and pthreads
  • XML scene configuration

Raytracing Features include:

  • Multithreaded
  • DOF (Depth Of Field)
  • Real-time linear tone mapping
  • Area sphere lighting
  • Area quad lighting
  • HDR Background lighting
  • Light emission on materials
  • Sun/Sky lighting
  • Ply geometry files
  • UV Texture maps
  • UV Normal and bump maps
  • Gamma control on texture maps and film
  • BRDF - diffuse, glossy, mirror, and anisotropic
  • Soft reflections
  • BTDF - glass and thin glass
  • QBVH accelerator

Screen Shots - None of the renderings have been modified outside of Tinyray
Click on Image for full size screen shot
Anisotropic test
Click on Image for full size screen shot
800k polygon count test
Click on Image for full size screen shot
Complex finished scene
Click on Image for full size screen shot
Sun/Sky with HDR test
Click on Image for full size screen shot
Sun/Sky test
Click on Image for full size screen shot
Sun/Sky with HDR test
Click on Image for full size screen shot
Sponza
Click on Image for full size screen shot
WinOSi test scene
Click on Image for full size screen shot
Environment HDR lighting
Click on Image for full size screen shot
Sun/Sky lighting
Click on Image for full size screen shot
Area sphere lighting
Click on Image for full size screen shot
Teapot
Downloads: TinyRay.zip (14.9MB)

WinBall - A bouncy ball for windows

Team:

David Oard

Summary:

My brother-in-law had a bouncy ball on his Mac that would bounce around the screen, and he
told me that this wasn't possible in windows. I took the challenge upon myself to prove him wrong.
Here is the result.

Warning: I am not responsible if the user accidentally drags files, folders, and the like into
unwanted areas. So when playing catch with the ball please be careful!

Features include:

  • C/C++
  • System Tray
  • Windows programming using MFC
  • Layered windows with alpha blending
  • Supports multiple monitors

Screen Shot (638x440)
Click on Image for full size screen shot
Downloads: WinBall.zip v0.11 (344K)

Radiosity

Team:

David Oard

Summary:

A summer project where I experimented with radiosity lighting.

Features include:

  • C/C++
  • OpenGL API
  • Windows programming using MFC
  • High polygon count object loading (slow)
  • Radiosity engine using the Hemecube method
  • Radiosity patches can be either vertices or pixels on texture maps
  • Depth Of Field using Accumulation Buffer (not real-time)
  • Full Screen Antialiasing using Accumulation Buffer (not real-time)

Screen Shot (1024x768)
Click on Image for full size screen shot Click on Image for full size screen shot Click on Image for full size screen shot Click on Image for full size screen shot
Downloads: Radiosity.zip v0.92 (648K)

Entity Editor

Team:

David Oard

Summary:

This was a summer project where I experimented with texturing and manipulating
large polygon models in OpenGl. This included a robust particle systems engine.

Features include:

  • C/C++
  • OpenGL API
  • Windows programming using MFC
  • High polygon count object loading
  • Saving objects in custom format
  • Particle Systems
  • Vertex Arrays
  • Normal averaging
  • Spherical environment mapping
  • Auto texture coord generation
  • Multi textures

Screen Shot (1024x768)
Click on Image for full size screen shot Click on Image for full size screen shot Click on Image for full size screen shot
Downloads: Alpha v0.72 (257K) , Test objects and images (498K)

Lake Side

Team:

David Oard

Summary:

This was my final project in CS452 (Computer Graphics).

Features include:

  • C/C++
  • OpenGL API
  • Glut API wrapper
  • Billboard
  • Caustics
  • Spherical object clipping
  • Sky box
  • Shadow maps
  • Lens flare refraction
  • Particle Systems

Screen Shot (640x480)
Click on Image for full size screen shot Click on Image for full size screen shot Click on Image for full size screen shot
Downloads: Lake Side (2.85MB)

MapGen

Team:

    Brian Bailey, Tony Money, Dale Niemeyer, David Oard

Summary:

This was a project for an independent study course at MSU. The idea behind this
was to have the ability to create custom 3D worlds. Unfortunately, the scope of the project
was too large for the time allowed, so it is unfinished. During this project, I learned how to
manipulate MFC to handle OpenGl graphics.

Features include:

  • C/C++
  • OpenGL API
  • Windows programming using MFC
  • Portal engine
  • Multi Textures
  • Lighting and Fog
  • Physics
  • Background music (mp3,etc.)

Screen Shot (1152x837)
Click on Image for full size screen shot

Asteroids

Team:

Brian Bailey, Dale Niemeyer, David Oard

Summary:

This is a basic asteroids game with computer generated 3D graphics on a 2D surface
including an integrated menu system. This was my first learning experience with DirectX
as well as different types of sound paradigms (wav, midi, cd).

Features include:

  • C/C++
  • win32 API
  • direct draw
  • direct input
  • direct sound

Screen Shot (640x480)
Click on Image for full size screen shot
Downloads: Asteroids2000 (3.63Mb)

Borg

Team:

Dale Niemeyer, David Oard

Summary:

This project was created in 1994 while I was attending Northern Montana College.
It was my first attempt to create a computer game; this game only consists of
walking around in a maze.

Features include:

  • 100% Assembly code for x86
  • Direct access to the video hardware
  • Video mode 320x200 with 256 colors

Screen Shot (320x200)
Click on Image for full size screen shot
Downloads: borg.zip (58k)
Home
Resume
Programming Projects
Contact Me
Copyright © 2005 -   David Oard