Projects
Non-Photorealistic Rendering
This independent study proposes to tackle Non-Photorealistic Rendering in a comprehensive way, by implementing a broad variety of techniques, and considering their use in real time simulations. An Introduction
Researching and implementing shading models such as Pen and Ink, Celshading Gooch shading, Anisotropic lighting. Introducing Goochel shading, a combination of Gooch and cel-shading.
I apply and extend Morgan McGuire, Andi Fein, and Colin Hartnett's Real-time Cartoon Rendering of Smoke to the rendering of Pen-and-Ink Trees. For trees, the goal is to mimick the style of Computer-Generated Pen-and-Ink Illustration of Trees by Deussen and Strothotte.
Physics
Implemented a real-time system of convex rigid bodies with collision, contact, friction (kinetic, static), stacking, and fracture. Based on the Nonconvex Rigid Bodies with Stacking paper by Guendelman et Al.
Rendering
For my CS224 class at Brown, I implemented Photon mapping, an extention of ray tracing that can handle Caustics and Diffuse Interreflection (Color Bleeding).
Implemented a ray-tracer for my CS400 class. It supports local and global illumination models, reflection and refraction using Fresnel equations, shadows of transparent objects, and more...
Image-based algorithms
This project, done for my CS224 class, was based on the Image Analogies Paper by Hertzmann et Al.. In this paper, the authors present a single algorithm that can solve many different image-based problems, such as texture synthesis, super-resolution, texture transfer, artistic filters...
Final project for my computer vision class. The goal of this project was to implement an algorithm that combines a photograph taken with a flash and one in ambient light in order to produce a higher quality resulting image. Based on the Removing photography artifacts using gradient projection and flash-exposure sampling paper by Agrawal et Al.
Animation
At DigiPen, CS460 is divided into 4 coding projects: Skeletal animation; Path following and motion blending; Inverse Kinematics; and finally Rigid Body Dynamics. Subjects such as animation file formats, quaternions (interpolation, splines), and Catmull-Rom splines (my favorite kind :) ), are covered in the process.
I was also the TA for the class, where I lectured about importing data from animation file formats, making an exporter for 3D Studio MAX, and other special topics.
I created the character and animation editor for my sophomore game, Crimson Legend. Our goal was to create a 2D fighting game that did not require us to draw each individual frame of animation. We decided to design a 2D skeletal animation system, similar to what is done in 3D animation and modeling package such as Maya, but in 2D.
Misc
So many times I thought: "I would really like to have a C# GUI for this project, but I have to use C++."
This is a library that allows a program to run a separate C# application (side bar) to handles all the GUI, and communicate changes to the C++ app. It's helpful for demos (such as my NPR demo), in which parameters are clearly defined.
Website copyright (c) 2004-2007 Marc ten Bosch, all rights reserved.
Some project and game content copyright (c) 2005 DigiPen (USA) Corporation, all rights reserved.