3D Graphics
Resume available at http://alex.vlachos.com/resume

Valve - Counter-Strike: Global Offensive - 2012


Valve - Portal 2 - 2010-2011
My slides from SIGGRAPH 2010: Vlachos-SIGGRAPH10-WaterFlow.pdf (6.3 MB)


Valve - Left 4 Dead 2 - 2009
My slides from GDC 2010: Vlachos-GDC10-Left4Dead2Wounds.pdf (4.3 MB)


Valve - Left 4 Dead - 2008


Valve - The Orange Box - 2006-2007


Naughty Dog - Uncharted: Drake's Fortune - 2005-2006


RADEON X800 Demo: The Double Cross - 2004
Download the demo from ati.amd.com

Written in C++ for DirectX 9.0b
Vertex & Pixel Shaders 2.0 via DirectX 9.0b HLSL


RADEON 9800 Demos - 2003
Download the demos and screen savers from ati.amd.com

Written in C++ for DirectX 9.0 (Vertex & Pixel Shaders 2.0) and OpenGL

RADEON 9700 Screen Savers - 2002
Download the screen savers from ati.amd.com

Written in C++ for DirectX 9.0 (Vertex & Pixel Shaders 2.0) and OpenGL

RADEON 9700 Demo Suite - 2002
Download the demos from ati.amd.com

RADEON 9700 Animusic Demo
A real-time version of "Pipe Dream" from Animusic's DVD entited ANIMUSIC: A Computer Animation Video Album. This was shown in offline-rendered form in the Electronic Theater at SIGGRAPH 2001. One year later, we're rendering this animation in real-time.

RADEON 9700 Rendering With Natural Light Demo
A real-time implementation of Paul Debevec's Rendering With Natural Light as published in his 1998 SIGGRAPH paper. This shows the use of light captured from the real world to illuminate synthetic objects. Extensive use is made of the high internal floating point precision of the Radeon 9700 to reproduce the high dynamic range images necessary for this technique.

RADEON 9700 Bear Demo
This demo shows a number of techniques for rendering fur in real-time including combing, natural curling, per-strand coloring, and per-pixel anisotropic lighting.

RADEON 9700 Car Paint Demo
DirectX 9.0 pixel shaders are used to simulate the light interaction of 2-tone car paint. In addition, this demo uses high precision normal maps (16 bits per component) to provide a high level of detail from a low polygon model.

RADEON 9700 Real-Time Hatching Demo
Based on a paper from SIGGRAPH 2001, this demo shows real-time hatching with shadows.

Written in C++ for DirectX 9.0 (Vertex & Pixel Shaders 2.0) and OpenGL

RADEON 8500 Screen Savers - 2001
Download the screen savers from ati.amd.com

These four screen savers developed for the ATI RADEON 8500 are based on the Sushi graphics engine I developed at ATI. This is the same engine as the 8500 Demo Suite below. These screen savers are downloadable from ATI's web site.

Written in C++ for DirectX 8.1 (Pixel Shaders 1.4) and OpenGL


RADEON 8500 Demo Suite - 2001
Download the demos from ati.amd.com

These were the launch demos for the ATI RADEON 8500 and are downloadable from ATI's web site.

We created a new graphics rendering engine for these demos which we named the ATI Sushi Engine. This engine has three distinct pieces: 3D engine, character animation engine, and a shader library. The engine, like previous ones, compiles for DirectX 8.1 and OpenGL (for both Windows and Mac). We focused on DirectX 8.1 Vertex Shaders v1.1 and Pixel Shaders v1.4.

Written in C++ for DirectX 8.1 (Pixel Shaders 1.4) and OpenGL


Radeon's Ark - RADEON 7500 Demo - 2000
Download the demo from ati.amd.com

3D Modeling by Sam Howell and Dan Roeger
This was the launch demo for the ATI RADEON. (This demo was based on the radiATIon engine I developed earlier...see below)

Features include: Environment mapped bump mapping, dual paraboloid environment mapping, detail textures, 4-matrix skinning, glass reflections, mirrors, realistic water simulation, water caustics, light maps, texture compression, planar reflective surfaces, portal-based visibility, 3D Studio MAX plugins, smooth automated fly paths based on cubic spline interpolation of positions and orientations as quaternions, etc.
Written in C for DirectX 7 (Fixed Function Rendering) and OpenGL


Refraction Mapping for Liquids in Containers - 2000
Jason Mitchell and I developed a two-texture, single-pass method for simulating refraction mapping. This technique was published in Game Programming Gems under the title, "Refraction Mapping for Liquids in Containers"

This technique, when combined with environment mapping using a Fresnel term, produces a realistic rendering of a pool of water. Given a water simulation algorithm that outputs a new polygonal mesh each frame, refraction vectors are computed for each vertex based on the vertex normals using Snell's law. These refraction vectors are then ray-intersected with the walls of the container and output texture coordinates corresponding to a refraction map.

3D Modeling by Sam Howell

N-Patches / Curved PN Triangles / TRUFORM - 1999-2000
Patent: U.S. Patent No. 6,940,503
Publication: 2001 ACM Symposium on Interactive 3D Graphics
Download the demo and 3D Studio MAX 3.1 exporter with source: NPatchViewer.zip (212k)

This is a curved surface algorithm I developed while employed by ATI. This method generates a triangular cubic Bezier control mesh based on a single polygon comprised of 3 vertices and 3 normals. This is one of the curved surface primitives in Microsoft's DirectX 8 known as N-Patches.

The control mesh contains 10 points: the original 3 vertices, 6 border control points, and 1 center control point. Each of the border control points are computed by projecting a point 1/3 the way along a given edge into the plane defined by the closer vertex and its normal. The center control point is computed as a weighted average of the original 3 vertices and the 6 border control points.

The surface is then tessellated based on a user-defined tessellation level (the image to the right shows a tessellation level of 7). At each new vertex, all quantities except normals and other vectors are interpolated linearly (such as texture coordinates, vertex colors, fog values, etc.). Vertex normals and other vectors can be interpolated across the surface either linearly or quadratically and then re-normalized. In the case of quadratic interpolation, a Quadratic Triangular Bezier control mesh is generated based on a method published in ACM's Transaction on Graphics in 1997.


radiATIon Engine - 1998-1999
Designed and developed this advanced hardware accelerated rendering engine for the purposes of showcasing ATIís current and next generation technology. This engine was primarily used as an educational tool for game developers and for ATI's sales and marketing teams geared towards the Rage 128 Pro.

Features include: Dual paraboloid environment mapping, emboss bump mapping, detail textures, mirrors, light maps, texture compression, planar reflective surfaces, portal-based visibility, 3D Studio MAX plugins, smooth automated fly paths based on cubic spline interpolation of positions and orientations as quaternions, etc.
Written in C for OpenGL


3D Modeling by Sam Howell

3D Software Rasterization Engine - 1997
This is a software rendering 3D engine that uses Quake's levels, textures, BSP trees, and Visibility lists. It renders perspective correct mip-mapping with sub-texel accuracy.

It runs at a decent speed considering I developed this on my free time back in college. I haven't touched this engine since 1997, so who knows how well it runs on today's OS's.
Written in C
DOS Binaries: AV3DSoftwareEngine.zip (930k)


Primitive Raytracer - 1996
These are 4 images from a raytracer that I wrote in one of my Computer Graphics classes at Boston University. It's a primitive raytracer that handles spheres, planes, multiple light sources, and surface properties.
Written in C

Fire-Torus Demo - 1996
This is about 20 seconds of a demo I was working on with a friend. This sequence uses a fire algorithm with a superquadric torus rotating and scaling in 3D and eventually catching fire. (Note: This ran very nicely on a Pentium 90...however, faster systems run this a bit too fast)
Written in C
DOS Binaries: AVFireTorusDemo.zip (180k)

Tetris Clone - 1996
I wrote this back in college for one of my classes. It handles both keyboard and joystick support. It's fully functional as is but still needs some better timing code (I wrote this in 20 hours straight).
Written in C++ using MS Visual C++ v4.0
Windows: AVTetrisClone.zip (32k)