























Team Fortress 2 Portal 
























Vertex & Pixel Shaders 2.0 via DirectX 9.0b HLSL 

















































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






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 




3D Modeling by Sam Howell and Dan Roeger 
Features include: Environment mapped bump mapping, dual paraboloid environment mapping,
detail textures, 4matrix skinning, glass reflections, mirrors, realistic water simulation,
water caustics, light maps, texture compression, planar reflective surfaces, portalbased visibility,
3D Studio MAX plugins, smooth automated fly paths based on cubic spline interpolation of positions
and orientations as quaternions, etc. 


Jason Mitchell and I developed a twotexture,
singlepass method for simulating refraction mapping. This technique was published in
Game Programming Gems
under the title, "Refraction Mapping for Liquids in Containers"

3D Modeling by Sam Howell 


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 NPatches. 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 userdefined 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 renormalized. 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. 


Features include: Dual paraboloid environment mapping, emboss bump mapping,
detail textures, mirrors, light maps, texture compression, planar reflective surfaces, portalbased visibility,
3D Studio MAX plugins, smooth automated fly paths based on cubic spline interpolation of positions
and orientations as quaternions, etc. 
3D Modeling by Sam Howell 


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 


Written in C DOS Binaries: AVFireTorusDemo.zip (180k) 


Written in C++ using MS Visual C++ v4.0 Windows: AVTetrisClone.zip (32k) 