Portfolio Item: Graphics and Animation (MSc Games Software Development)

This is a first semester module in which we learn how to create graphics and animation using Microsoft DirectX.

Some of the topics covered were:

  • Matrix transformations
  • Lighting
  • Materials
  • Meshes
  • Animation
  • Particle systems

There were two assignments for this module.

Assignment 1: Lego Constructions

Brief

Your task is to develop a Direct3D application that will render an arrangement of Lego bricks. Your application should demonstrate the following graphical techniques:

  1. Rendering meshes
  2. Lighting
  3. Matrix transformations

Results

Videos

I was able to include occlusion culling by creating additional bounding meshes which in certain sections of the scene improved the FPS considerably. The lights included were one directional light and about three point lights.

Assignment 2: Firework Display

Brief

Develop an application to simulate a firework display using a particle system. Your firework display should be as realistic as possible and mimic a real firework display.

  • Your simulation should realistically demonstrate various types of fireworks.
  • You may want to generate an appropriate environment or sky in order to contextualise your display.
  • You should also demonstrate timing and random generation of fireworks/particles.

Results

Instead of writing one very long "script" I took an OOP approach and came up with an easily customisable system. To create a new type of firework users simply extend an Explosion class and implement a method which sets the initial velocity of every particle upon explosion. Fireworks were contained in FireworkBoxes which allowed the user to customise when to set of a series of fireworks from a specific location. A full resolution version of the class diagram is available.

Videos

Images

First week graphics Lego Assignment 1x1 brick (top left is the bounding mesh) Lego Assignment 1x2 brick (top left is the bounding mesh) Lego Assignment 2x2 brick (top left is the bounding mesh) Screen shot of the final submission Fireworks submission