June 2nd, 2010

Modeling and Animation

June 1st, 2010

I’m right now taking a class in modeling & animation. In this course we will cover topics such as half-edge meshes, subdivision and decimation, implicit surfaces and fluid animation. The course is based around six lab sessions and each session will result in a short report. Below are my reports.

  1. The Half-edge Data Structure
  2. Quadric based mesh decimation
  3. Splines and subdivision
  4. Implicit surfaces
  5. Level set methods
  6. Fluid simulation

Example images

Fluid simulation

May 22nd, 2010

Fluid simulation programmed in C++.

The solver can solve for: self-advection, viscosity, external forces, volume conservation, energy conservation, collisions with solid objects.
The solver was developed as part of the course Modeling and Animation at Linköping University.

Created by me and Mihai Aldén.

Water rendered in Houdini (Mantra).

Slime rendered in Maya (Mental Ray).

Volume rendering lab session

April 23rd, 2010

These are four renders from the third lab session about parallel volume rendering in the course Advanced Computer Graphics Programming. The volumes rendered are the foot(256^3), skull(256^3) and lobster(301 x 324 x 56) models from volvis.org.

Please click on the images to view them in full resolution.

Real-time tessellation on the GPU

April 18th, 2010

This is a first test on tessellation (subdivision) on the GPU.
In this test a geometry shader is used to tesselate triangles facing upward. Each triangle is split into four new ones.
This is also our first step in creating a real-time procedural snow texture.

Created by Dan Eidmark and Gustav Gahm

3D Ocean Plugin for Houdini

December 10th, 2009

This is a project I’m doing in the courses SFX – Tricks of the Trade and Procedural Methods for Images. The goal is the create a plugin to model and render ocean surfaces inside Houdini and Mantra.

The ocean surface is modeled as described by Tessendorf. The technique is implemented in Houdini as a surface operator (SOP) and in Mantra as a displacement vex operator (VOP). All the shading is done inside Houdini.

You can find more about the project in this pdf.

A first test render of a close up ocean surface.

A first test render of a large ocean surface (500 x 500 m).


December 10th, 2009

LaserDoom is a FPS that I and some friends1 wrote in a class called TNM061 – 3D Computer Graphics in 2007. The game is written in C++ with the help of Ogre3D (graphics), RakNet (network) and FMOD (sound), and was developed in about 4 weeks. Modelling, animation, level design and texture baking where all done in 3ds Max.

Download (24.3 Mb, Windows)

Created by: Christoffer Ahlbin, Rickard Berg, Gustav Gahm, Filip Gruvstad, Isac Jinton and Niklas Oldéen.

Union Jack

November 27th, 2009

Some days ago we had an exercise in school where we had to write shaders in GLSL. I wrote a fragment shader that generates the pattern (more or less) of Union Jack, and a vertex shader to mimic the motion of a waving flag.

Volumes in Houdini

November 22nd, 2009

This is a first test on volume modeling and rendering in Houdini. The volume is rendered with mantra using ray marching in 7.5 hours. The volume has a resolution of 128x128x128 voxels.

RenderMan SL exercise

November 17th, 2009

Today I created an orange shader in RenderMan SL as a exercise in school.