Room Acoustics

Room Acoustics

A pressure source in a room will cause pressure changes to propagate. Our method of solution uses the Transmission Line Matrix (TLM) approach. Pressure is scattered in four directions at each node (i.e. each pixel in the visualization) and is partially absorbed by walls.

Documents

Download report [.pdf]

Images

Advertisements

PLY Reader

PLY Reader

Together with a friend I developed this application for an assignment at school. The application reads PLY-files and is capable of displaying normals, rendering {polygons | wireframe | points}, smooth or flat shading, and cel shading with edge detection (including interior edges). For efficient geometric queries a partial adjacency list was used.

Images

RenderMan Shader

RenderMan Shader

This shader was written for RenderMan. The initial geometry is a simple sphere. The sphere is displaced along the up-axis and further displacement is done to the surface to achieve the crinkles. Crinkles are produced by a noise function with appropriate frequency and amplitude. Green is mixed with brown on the surface for a more organic appearance.

Images

MojoWorld Landscape

MojoWorld Landscape

MojoWorld is an application that makes heavy use of fractals for landscape modeling. It is rather simple to create a decent-looking landscape, but mastering the parameters of this application could take a life-time! This is an image I made for a school assignment. Note the blue line across the mountains and the psychedelic clouds.

Images

Moonlander 3D

Moonlander 3D

User input controls the moon lander’s five thrusters, visualized by simple particle systems. An inertial system determines rotation and translation of the lander. The moon lander was modeled in 3DS MAX. The main remaining problem here is how to divide thrustor forces between rotation and translation, or to be precise, how to determine the ratio between translation and rotation given a force at a certain point having with a known centre of mass. This factor has been estimated to “feel” good. The simulation was turned into a game, where the user tries to land at a given location within fuel constraints, which is more difficult than it might seem.

Images

Procedural Smoke

Procedural Smoke

Smoke is an extremely complicated phenomenon to simulate. Flow equations (Navier-Stokes) must be solved in order to accurately animate smoke. Here, I simply use a kind of 4D vertex noise to displace particles in a vertex shader. This approach is simple, and produces visually pleasing snapshots of smoke. However, the motion of the smoke suffers from the lack of physical simulation. The noise I use has very small look-up tables since these have to be stored in vertex processor registers, as texture memory access was not available from within vertex shaders on my graphics hardware. Particles are rendered using GL_POINT_SPRITE_ARB, which are simply textured billboards that are automatically calculated on hardware.

Documents

Download report [.pdf]

Images

Relief Texturing

Relief Texturing

Regular texturing has many drawbacks. One of them is the fact that a texture is typically applied to a flat surface. Relief texturing uses a color texture along with a depth map and an algorithm for view-dependent depth occlusion. A level-of-detail engine could benefit hugely from this technique by rendering far-away surfaces with regular textures and closer surfaces with relief texturing. The main part of the calculations are done in a fragment shader.

Images