Final Project

Code and Writeup Due: Thursday, May 2nd, 6:59 PM Presentation Times: Thursday, May 2nd, 7:00 PM -- 10:00 PM Overview For your final project, you will work on a program that demonstrates an advanced computer graphics topic of your choice. Some suggestions are listed below, but you are also free to propose your own topic. You will implement the project, present a demo, and prepare a brief writeup describing the work you have done.
Read more...

Assignment 4: Minecraft

Overview In this project, you will implement a procedural walking simulator inspired by minecraft. You will implement both CPU-side procedural terrain generation, and GPU-side on-the-fly procedural texture synthesis using Perlin noise. Reminder About Teams Per the syllabus, you may work on this project in self-selected teams of up to two. If you work in a team, in addition to the code submission process described below, each team member must submit an individual Collaboration Report on Canvas (either as raw text in the submission system, or as an attached .
Read more...

Required Features for Minecraft Only Milestone

Due: Apr 16, 2024 This page requires JavaScript to display formulas correctly. Minecraft Only Milestone The assignment is broken down into several features described below. Each feature is worth a number of points and will be graded separately (although later feature may build on and require a working implementation of earlier features). Your code should be correct and free of Javascript errors or other buggy behavior. You will not be graded on software engineering (use design patterns and unit tests if they help you) but unreadable code is less likely to receive partial credit.
Read more...

Required Features for Virtual Mannequin Milestone 2

Due: Apr 4, 2024 This page requires JavaScript to display formulas correctly. Virtual Mannequin Milesone 2 In this milestone, you will implement a simple animation editor for posing a virtual character into several keyframes, and then automatically interpolating the results. The assignment is broken down into several features described below. Each feature is worth a number of points and will be graded separately (although later feature may build on and require a working implementation of earlier features).
Read more...

Assignment 3: Virtual Mannequin

Overview In this project, you will implement a skinning system—a way to animate a 3D character by manipulating bones embedded inside the character. You will implement a basic mouse-based bone selection and rotation interface that will let you change the pose of a 3D character, and very rudimentary controls that let you specify several intermediate poses (keyframes) and then automatically animate between them. Reminder About Teams Per the syllabus, you may work on this project in self-selected teams of up to two.
Read more...

Assignment 2: Menger Sponge

Overview In this project you will build a nontrivial WebGL program that shows a procedurally-generated fractal, the Menger sponge, with full user interaction using mouse and keyboard camera controls. You will also be introduced to texturing by writing several simple shaders that draw a checkerboard pattern on an infinite ground plane. Reminder About Teams Per the syllabus, you may work on this project in self-selected teams of up to two. If you work in a team, in addition to the code submission process described below, each team member must submit an individual Collaboration Report on Canvas (either as raw text in the submission system, or as an attached .
Read more...

OpenGL Basics

OpenGL Basics If you look at the source code of Menger Sponge, you will find it is organized into the following sections: Set up OpenGL context Load geometry to render Create Vertex Array Objects and Vertex Buffer Objects Create shader program Compile shaders and attach to shader program Link shader program Create uniform (global) variables WHILE TRUE DO Clear screen Set up camera and light Tell OpenGL what shader program to use Tell OpenGL what to render Render!
Read more...

Required Features for Menger Sponge Milestone 1

Menger Sponge Only Milesone Due: Feb 27, 2024 The assignment is broken down into several features described below. Each feature is worth a number of points and will be graded separately (although later feature may build on and require a working implementation of earlier features). Your code should be correct and free of segfaults, deadlocks, or other buggy behavior. You will not be graded on software engineering (use design patterns and unit tests if they help you) but unreadable code is less likely to receive partial credit.
Read more...

Computer Graphics: How It's Going

Computer Graphics: How It’s Going Due: Mar 7, 2024Overview Most of the graphics class covers “core graphics” topics such as rendering and animation. While still relevant today, the active research in the field is focused on emerging areas that we will not cover in depth. In this group assignment, you will research and brief the class about these areas. I have identified the following four broad topic areas and randomly assigned you to a group.
Read more...

Required Features for Ray Tracer Milestone 2

Ray Tracer Milesone 2 Due: Feb 20, 2024In this second Milestone, you will implement faster handling of ray-object collision detection, and incorporate textures into your ray tracer. You will also implement some optional additional features of your choice. There is no new starter code for this Milestone. Use the code you wrote in Milestone I as a starting point. You will not be re-penalized for broken Milestone I features when Milestone II is graded.
Read more...

Required Features for Ray Tracer Milestone 1

Ray Tracer Milesone 1 Due: Feb 6, 2024The assignment is broken down into several features described below. Each feature is worth a number of points and will be graded separately (although later feature may build on and require a working implementation of earlier features). Your code should be correct and free of segfaults, deadlocks, or other buggy behavior. You will not be graded on software engineering (use design patterns and unit tests if they help you) but unreadable code is less likely to receive partial credit.
Read more...

Assignment 1: Ray Tracer

Overview In this project, which is broken up into two milestones, you will build a program that will generate ray-traced images of complex scenes using the Whitted illumination model. You will implement the core ray-tracing algorithm with basic shading, including computing ray-triangle intersections and casting secondary reflection, refraction, and shadow rays, texture mapping, and build an acceleration data structure to dramatically improve the performance of the ray-object intersection tests. Getting Started Starter Code Starter Code Download Reference Binaries Public Scenes Part 1 Public Scenes Part 2 Cubemap Download (Note: these test scenes are for both project milestones.
Read more...

Dev Notes: Debugging Techniques for Ray Tracer Project

There are different ways to debug your ray tracer according to the problems. Here we list several possible problems you may have in development. To accelerate your debugging procedure, the command line UI is recommended, which has all features required for debugging, although some of them may be difficult to enable (like those must be enabled through the -j option). Segfault This is a (very) common problem for any C/C++ program.
Read more...

Required Features for Virtual Mannequin Milestone I

Due: Mar 28, 2024 This page requires JavaScript to display formulas correctly. Virtual Mannequin Milesone 1 The assignment is broken down into several features described below. Each feature is worth a number of points and will be graded separately (although later feature may build on and require a working implementation of earlier features). Your code should be correct and free of Javascript errors or other buggy behavior. You will not be graded on software engineering (use design patterns and unit tests if they help you) but unreadable code is less likely to receive partial credit.
Read more...