About the Authors (in alphabetical
from NC State University in 2001 with a BS degree in Computer Science.
During his undergraduate studies, he focused on artificial intelligence
research for automated camera control and positioning. After graduation,
Dan joined NDL in late 2001. Since joining NDL to work on the NetImmerse
and Gamebryo engines, Dan has worked primarily on console rendering technologies.
Most recently, he served as lead programmer for the Gamebryo shader demo,
Marwan Y. Ansari
is a member of the 3D Application Research Group at ATI Research, Inc.
He has a Masters in Computers Science from the University of Illinois
at Chicago and a Bachelors of Science in Computer Science and Mathematics
from DePaul University. He has worked on OpenGL drivers for desktop products
as well as set top boxes but has finally found his niche writing cool
3D Demos for ATI.
his first steps in the 3D World by running a technical 3D Fan Site, covering
topics like the differences between traditional and tile based rendering
technologies. This influenced his electrical engineering studies in such
a way that his thesis was written about Wavelet Compression for Textures
in Direct3D, a paper that won the Belgian Barco Prize. He pursued his
studies by obtaining a Masters degree in Artificial Intelligence. In the
meantime he continued his work as a technical editor for Beyond3D writing
various technical articles about 3D hardware, effects and technology.
As a freelance writer he wrote the "FSAA Explained" document
for 3Dfx Interactive to explain the differences between various types
of Full-Screen Anti-Aliasing. This document resulted in a full time job-offer
at 3Dfx. Currently he is working as a Developer Relations Engineer for
PowerVR Technologies, which includes research into new graphical algorithms
Kevin is currently working on his Master's Thesis at the Hasso Plattner
Institute for Software Engineering in Potsdam, Germany, on real-time non-photorealistic
terrain rendering, and expects to graduate in April 2003. He has studied
Maths, Logic and Computer Science in Muenster, Germany, and Leeds, England,
and is involved in the 3D rendering engine VRS (www.vrs3d.org) and the
3D-map software system LandExplorer (www.landex.de).
Flavien always had a passion for video games since i got an Amstrad CPC,
at the age of 12. He still remember himself typing hundred of page listings,
just to see a small sprite appear on screen. When he grew up, he started
studying computing science at the university of Nantes, France, where
he graduated ( bachelor, then master's degree ) in 2000. But he also did
of research and developed many small games and rendering engines on his
own; he currently work in a virtual reality company in Brussels, called
VRcontext, where his job is to develop a software designed to display
industrial models made up of millions of triangles. He is still working
on amateur games and graphical demos in his spare time, trying to get
the most of our new, filled-of-power video cards.
Chris graduated with a BS in Computer Science and another BS
in Electrical Engineering from Worcester Polytechnic Institute in '97
and joined Digital Equipment Corp's Workstation Graphics group doing hardware
design and verification. When Digital died, Chris joined ATI as a 3D ASIC
designer for the Radeon line of graphics chips and then moved over to
their 3D Application Research Group where he tries to get those chips
to do things that were not originally thought possible.
Aaron has been a Developer Relations Engineer at PowerVR Technologies
since he received his Honours degree in Information Systems Engineering
in 1998. His first computer was a VIC 20, though his fascination for 3D
graphics began with the Atari ST. At PowerVR he has been able to indulge
this interest in developing a variety of demos, benchmarks, and debug/performance
tools, and supporting developers in creating faster and better games.
When he's not out climbing, spare time projects include both ray-tracing
and real-time 3D demos.
Games are fun; I figured that out at age 2 and have spent the following
years working out how to make better games. For the last 5 years people
have even paid me to do it. Having no real preference for console or PC
has meant a mixed career flipping between them for every project. Professionally
I started on a war game, I then did 3 years of racing game followed by
an X-COM style game, then arcade classic updates, currently doing a 3D
I still study various subject including optics, mathematics and other
geeky things for fun. This incredibly stupid preoccupation with learning
means that I have been doing exams every year for over half my life (which
is really stupid given I work full time). At least I'll be ready for to
write the first game for a quantum computer.
Nicolas is a masters student Civil Engineering in Computer Science in
Ghent, Belgium. He has started becoming interested in graphics programming
after getting in contact with some Quake mods, and he quickly learned
C++ and x86 assembly by himself. His main interest still is software rendering
and optimization. For over two years he has been developing his own software
renderer in his spare time. He is currently focusing on implementing shader
emulation using the MMX and SSE instruction sets and dynamic code generation.
Francesco has been a professional game programmer for 2 years and had
been studing graphics programming relates subjects at university for 5
years before that. He currently works for Kuju Entertainment both on xbox
and ps2. His passion for videogames and 3d graphics help him in spending
many sleepless nights after meaningless shader code.
is an experimental platform for innovative usage of interactive 3D. It
uses OpenGL and a component-based software architecture to add programmable
behaviours (and properties) to generic 3D objects, and lets them exist
without a 2D window frame. The creator, Gim Guan Chua, is a freelance
graphics programmer based in Singapore. He has been developing 3D applications
for more than 6 years, and likes to dabble in 3D modelling in his spare
time. The website: http://toybox.150m.com
Roger has been working on 3D graphics since the late 1980's, and he has
a vaguely uncomfortable feeling that he should somehow be better at it
by now. In 1991 he graduated to working on 3D graphics device drivers
for IBM. The first driver he worked on was for a 5-card graphics solution
which sold for $30,000 and couldn't do texture mapping. The graphics hardware
is slightly faster and somewhat cheaper these days. He currently works
on OpenGL device drivers for ATI Research in Marlborough, MA, for graphics
chips that can definitely do texture mapping.
Sim Dietrich manages the U.S. Technical Developer Relations team at NVIDIA
Corporation. Sim has written chapters for Game Programming Gems 1 &
2, and served as editor of the Graphics Display section of Gems 2. Sim
was a key contributor to the CgFX effort, bringing real-time shaders to
Max, Maya and SoftImage for the first time. Sim's interests include new
shadow techniques and improving graphics workflow through efforts like
Cg and CgFX.
Wolfgang is the editor and co-author of "ShaderX - Vertex and
Pixel Shader Tips and Tricks", the author of "Beginning Direct3D
Game Programming" and a co-author of a book called "OS/2 in
Team" for which he contributed the introductory chapters on OpenGL
Wolfgang wrote several articles in German journals on Game Programming
and a lot of online tutorials, that were published on www.gamedev.net
and his own web-site www.direct3d.net. During his career in the game industry
he build up two game development units with 4 and 5 people from scratch,
that published for example six online games for the biggest european TV
show called "Wetten das..?". As a member of the board or as
a CEO in different companies, he was responsible for several game projects.
Tom Forsyth has been obsessed by 3D graphics since seeing Elite
on his ZX Spectrum. Since then he has always tried to make hardware beg
for mercy. Tom has written triangle-drawing routines on the Spectrum,
Sinclair QL, Atari ST, Sega 32X, Saturn, Dreamcast, PC, GamePark32 and
XBox, and he's getting quite good at them now. Tom's coding past includes
writing curved-surface stuff for Sega and graphics drivers for 3Dlabs.
Currently he works in Guildford at Muckyfoot Productions, where past projects
are Urban Chaos, StarTopia and Blade II.
After finishing a degree in music, Shawn has been writing games for the
last six years, most recently as lead programmer on Climax's MotoGP bike
racing game. Having started out coding 2D graphics by hand in DOS (where
he created the popular Allegro library: http://www.talula.demon.co.uk/allegro/index.html),
and then spent time on the N64 and PS2, he is still in awe of the sort
of things that are possible with programmable shaders on Xbox and modern
O'dell has been a professional game programmer since 1998 and a hobbyist
several years longer than that. He has done work on both the PC and Xbox.
One day he hopes to finish a spare time game that he is working on by
himself. His website can be found at http://odellworld.com/
Oliver currently works as senior engine programmer at Piranha Bytes, which
developed the RPGs Gothic I + II. Before this job, he was director of
development at H2Labs/Codecult responsible for development of the 'Codecreatures'
game system. He started programming at age 10 on his Commodore VIC20,
working his way through 6502(VIC20), 6510(C64) and
68000(Amiga) Assembler. His first gameproject was with 15 a Jump&Run
Game named Platou (Kingsoft, C64). He was an active member of german demo
scene in the 80´s and
early 90´s. After going for a trip in different areas - developing
a music software, creating a security program and working as consultant
for web services - Oliver returned to the roots and developed his first
3D engine ("Warrior Engine", 1995-98). Since October 1999 he
programmer at Codecult, was responsible for architecture design of 'Codecreatures'
and has developed several demos.
is the President and CEO of The Code Mafia. He has worked in games for
more than 14 years. For most of that time, he has specialized in high-performance
3D graphics. He worked with both RenderMorphics and Criterion Software
developing their low-level APIs before moving on to work as a device driver
writer specializing in Direct3D optimization. Immediately before founding
The Code Mafia, Richard spent four years at NVIDIA running their European
Developer Relations team. Richard's primary focus is now teaching game
programmers how to get the best from modern high-performance architectures
using Direct3D. Richard is a regular contributor at Microsoft's Meltdown
conferences and teaches at the annual GDC and Creativity events. He lives
in England and is proud of that fact.
Takashi has been a professional game programmer for 5 years and
has mainly done work of PlayStation & PlayStation2.
Currently, he is programming real-time 3D graphics in his sparetime, while
focusing on the newest shader technology. A big number of articles and
demos on shader programming can be found on his website http://www.t-pot.com/
(Japanese). His goal is to publish his demos immediately after the release
of new shader technology.
Greg is a software engineer with NVIDIA's technical developer relations
group where he develops tools and demos for real-time 3D graphics. Prior
to this, he worked for a small game company and as a research assistant
in a high-energy physics laboratory. He is very glad to have avoided graduate
school, and even happier to be working in computer graphics, which he
picked up as a hobby after his father brought home a strange beige Amiga
Jeff started work in graphics as an undergrad at UNC doing volume rendering
research. After a stint in the corporate world, he moved on to work at
Interactive Magic as a Lead Programmer on Destiny (one of the first 3D
strategy games), iF18, and WarBirds. Then, he joined Sinister Games to
work on Shadow Company (3D squad based strategy game), and the Dukes of
Hazzard I and II on PS1. Finally, Jeff returned to his passion for graphics
by joining NVIDIA. While here, he has worked on a couple of 3D engines,
incorporating shader technology into real world applications. Shader experience
covers standard transform/lighting/shading to special effects, mesh animation,
particle systems, etc.
Shaun is a software engineer at NDL where he is the lead developer on
their 3ds Max tools pipeline. Prior to working at NDL, he worked on the
Mimesis project at NC State University doing research on integrating narrative
planning into virtual worlds. When he isn't at work, he can be found reviewing
local pubs at http://www.drinktheworld.com.
Jakub is an engine programmer at Techland where he works on all low level
aspects of game engine development. His biggest interest is of course
realtime 3D graphics. To have solid grounds he graduated in 2001 with
a MS in Computer Science from Wroclaw University of Technology. He has
been programming computers since he was 10 that is for 17 years now. Jakub
always wanted to push the hardware to its limits so he started learning
assembler while his friends still played games. For all these years he
went the long way from software rendering to the shader programming. He
has been playing with hardware accelerated rendering for 5 years, using
Glide, OpenGL and Direct3D. For the last 3 years he worked with 3D graphics
Hun Yen Kwoon is an Electrical
engineering graduate from the National University of Singapore. After
spending a good 16 years ploughing through the entire education system,
he decide he wants to be a programmer more than an electrical engineer.
He promptly joined an IT businesss solutions company, developed an online
debit system for a local bank before realizing that Java is boring. He
is now working as a software engineer with Silicon Illusions (Singapore).
His work involves 3D visualization software engineering, SSE/SSE2, OpenGL
and Direct3D. Recently he had also been fiddling with game networking
architecture and dead-reckoning techniques. What kind of work can be more
Scott Le Grand
Scott is a senior engineer on the Direct3D driver team at NVIDIA.
His previous commerical projects include BattleSphere for the Atari Jaguar
and Genesis for the Atari ST. Scott has been writing video games since
1971 when he played a Star Trek game on a mainframe and he was instantly
hooked. In a former life, he picked up a B.S. in biology from Siena College
and a Ph.D. in biochemistry from The Pennsylvania State University. Scott's
current interests are his wife, Stephanie, and developing techniques to
render planets in real-time.
Jesse is a self-taught programmer who now makes his home in Budapest,
Hungary. As a child of a Foreign Service officer, he has lived in foreign
countries such as China, Taiwan, Africa, and Saudi Arabia. He has written
for several computer magazines books, and Web sites. He is also an avid
Sylvain is a PhD student in
the iMAGIS team at the French National Institute for Research in Computer
Science, working on the rendering of natural scenes. He is also interested
in many aspects of game programming and real-time graphics. He is currently
focusing on developing new approaches with vertex and pixel shaders to
handle the complexity of natural scenes.
You can visit his home page here.
Jean-Sebastian has been a professional game programmer specialized in
computer graphics for 3 years in the Nadeo studio where he worked on the
games VirtualSkipper 1 and 2. He has been studing applied mathematics,
computer science and image synthesis in a French Natinal Institute (ENSIMAG)
for 5 years before that. He is currently working in improving their graphic
engine quality by using more complex shaders.
Dean is a software
engineer with Intel Corporation where he works with software developers
in optimizing the processor specific aspects of their titles. He wrote
his first graphics application, a line and circle drawing program in TMS9900
assembly language in 1984 on a Texas Instrument’s 99/4A. Since then he’s
been hooked on graphics and programming, majoring in computer science
as an undergraduate student and graduate student. Starting in 1992, he
spent five years developing high-speed assembly routines for 2D graphics
transition effects at a multimedia kiosk development company. Then in
1998 he joined Intel where he continues to evangelize the benefits of
new processors and technologies to software developers and provide their
feedback to the processor architects.
Jason L. Mitchell
Jason is the team lead of the 3D Application Research Group at ATI
Research, makers of the RADEON family of graphics processors. Working
on the Microsoft campus in Redmond, Jason has worked with Microsoft for
several years to define key new Direct3D features. Prior to working at
ATI, Jason did work in human eye tracking for human interface applications
at the University of Cincinnati, where he received his Master's degree
in Electrical Engineering in 1996. He received a B.S. in Computer Engineering
from Case Western Reserve University in 1994. In addition to this book's
chapters on HLSL Programming, Advanced Image Processing and Procedural
Shading, Jason has written for the Game Programming Gems books, Game Developer
Magazine, Gamasutra.com and academic publications on graphics and image
processing. He regularly presents at graphics and game development conferences
around the world. His homepage can be found at http://www.pixelmaven.com/jason/.
Ádám is recent graduate of the Swiss Federal Institute of Technology.
After finishing his thesis in the field of real-time 3D graphics, he co-founded
NovodeX, a company providing game
physics middleware. He works there as chief software architect.
Markus holds an McS in Computer Science and has been programming professionally
for over 8 years now. Some years ago he discovered his passion for graphics
and gameprogramming. He has been into shader programming since Nvidia
launched CG and is spending every free minute to enlarge his knowledge
of interesting graphic programming algorithms.
Oat is a software engineer in the 3D Application Research Group at ATI,
where he explores novel rendering techniques for real-time 3D graphics
applications. His focus is on pixel- and vertex-shader development for
current and future graphics platforms. Christopher has contributed as
an original member of the RenderMonkey development team and as a shader
programmer for ATI's demos and screen savers. He has been published in
Game Programming Gems 3 (2002, Charles River Media) and ShaderX (2002,
Wordware). Christopher is a graduate of Boston University.
David's addiction to computers and games started early in
his life and the vision to create virtual worlds continues to be the strong
force in his life. He was involved in the production of several games,
including Crash, Casanova, Hitchcock, Hannibal and most recently Mistmare.
His main interests are computer graphics, artificial intelligence and
As a Senior Programmer at Codecult Kurt developed several realtime simulations
and technology demos build on CC's high-end 3D-Engine Codecreatures (e.g.
a launch demo for NVIDIA's GeForce4 Ti generation and the well-known Codecreatures-Benchmark-Pro).
He designed the innovative fx systems of Codecreatures and was involved
in creating a simulation of the Shanghai TRANSRAPID track for SIEMENS
AG. Kurt also worked on Piranha Bytes PC game Gothic and the top-selling
Gothic II - both awarded as 'RPG of the year' (2001 & 2002, in Germany).
In prehistoric times Kurt started programming on C64 and Atari's ST; later
on he studied mathematics always focused on computer graphics. When he's
not scribbling down equations or reading the book of seven seals, Kurt
works at Piranha Bytes to guarantee a high level of visual quality for
PB's future products.
Emil is currently studying Computer
Science and Engineering at Luleå University of Technology in Northern
Sweden and expect to graduate in summer 2003. Over the years Emil has
gathered experience from early software rendering attempts to advanced
techniques in the APIs
of Glide, OpenGL and Direct3D. He is operating a website at http://esprit.campus.luth.se/~humus/
with focus on real-time 3d graphics.
In the future you'll probably find Emil working as a game developer working
on the next generation game engines.
Tim is a software engineer working on the Direct3D sections of the Gamebryo
game engine at NDL. He graduated from Princeton University in 1997 with
a degree in Chemistry and a desire to do pretty much anything but chemistry.
He went to the University of North Carolina for a Masters in Computer
Science, where he did a lot of molecular modelling work that led to an
interest in 3D graphics. When he graduated in 1999, the game industry
was a good match for his experience and his goal of not doing anything
Maurice graduated in 2001 from the Milwaukee School of Engineering with
a BS in computer engineering. During his junior year he had the opportunity
to take part in a summer internship at Los Alamos National Labs. He was
somewhat disappointed that other people worked on million-dollar workstations
while he worked on consumer-level hardware, but after writing an application
that performed lighting calculations for volume textures on first-generation
consumer fragment shader hardware he realized that consumer-level hardware
was in for exciting changes, and he wanted to be part of the action. He
currently works on the OpenGL device driver team at ATI Research.
Guennadi Riguer is a software developer at ATI Technologies,
where he is helping game engine developers to adopt new graphics technologies.
Guennadi holds a degree in Computer Science from York University and has
previously studied at Belorussian State University Of Computing and Electronics.
He began programming in mid-80's and has worked on a wide variety of software
development projects prior to joining ATI.
Thomas started his programming career at the local mall in 1983, doing
small graphics programs in basic until an angry salesperson turned the
computer off and he had to start all over. Later on he programmed multimedia
programs for InterVision in assembler and Pascal. Then he decided that
education was in order and took a degree in Computer Science. He moved
on to Interactive Vision, where he, for several years, worked as a Senior
Software Engineer. Here he worked on 3D applications plus the inhouse
frameworks for game development and similar using C++ and DirectX.
Currently Thomas is focusing on high-end 3D visualization stuff in real-time
using modern 3D hardware. In his spare time he is the co-coordinator of
the Danish IGDA chapter.
Check out his homepage at: www.digitalarts.dk
Scott is a software engineer at NDL where he is the lead on the
Xbox version of their graphics engine. After receiving degrees in Physics
and Electrical Engineering, a short stint in the hardware side of the
computer industry lead to doing on-air statistics and scoring systems
programming for sporting event broadcasts. Once the excitement of live
television wore off, he moved into his dream field - game programming.
After spending a couple of years focusing on network programming, he shifted
to real-time 3D graphics development.
works on D3DX at Microsoft. Prior to that he worked in the Microsoft Research
Graphics Group, the Scientific Computing and Imaging group at the University
of Utah, PTC and Evans & Sutherland. His primary research interests
revolve around interactive graphics techniques. Most of his publications
are available at http://research.microsoft.com/~ppsloan
Just as everyone else, Marco started programming way back on a C64. After
buying a PC (actually just for playing Doom) he got hold of computer graphics.
After receiving his diploma in computer science he started to work as
a freelance software developer. His current responsibilities include the
character animation and shader support modules in the Codecreatures Game
Natasha Tatarchuk is a software engineer working in the 3D Application
Research Group at ATI Research, Inc. where she is the programming lead
for the RenderMonkey(tm) IDE project. She has been in the graphics industry
for over 6 years, working on 3D modeling applications and scientific visualization
prior to her employment at ATI. Natasha graduated from Boston University
with a BS in Computer Science and another BS in Mathematics as well as
a minor in Visual Arts.
Like many kids of the same generation, Nicolas Thibieroz discovered
video games on the Atari VCS 2600. He quickly became fascinated by the
mechanics behind those games, and started programming on C64 and Amstrad
CPC before moving on to the PC world. Nicolas realised the potential of
real-time 3D graphics whilst playing Ultima Underworld. This game inspired
him in such a way that both his school placement and final year project
were based on 3D computer graphics. After obtaining a BEng of Electronic
Engineering in 1996 he joined PowerVR Technologies where he is now responsible
for Developer Relations. His duties include supporting game developers,
the writing of test programs or demos and generally keeping up-to-date
with the latest 3D technology.
Michal is a
student of computer graphics at the Faculty of Mathematics, Physics and
Informatics, Comenius University, Slovakia. Hopefuly he will graduate
in June 2003 after finishing his master's thesis about special effects
for computer games. Previously he worked as director of development for
"a bigger company", but the call of realtime rendering was too
strong and now he is fully concentrated to this area. His homepage can
be found at http://www.dimension3.host.sk.
Alex is currently part of the 3D Application Research Group at ATI Research,
where he has worked since 1998 focusing on 3D engine development. Alex
is one of the lead developers for ATI's graphics demos and screen savers,
and he continues to write 3D engines which showcase next-generation hardware
features. In addition, he's also developed N-Patches (a curved surface
representation which is part of Microsoft's DirectX 8). Prior to working
at ATI, he worked at Spacetec IMC as a Software Engineer for the SpaceOrb
360, a 6 degrees-of-freedom game controller. He has published in Game
Programming Gems 1, 2, & 3, ACM's I3DG, and ShaderX. Alex is a graduate
of Boston University. He can be contacted at http://alex.vlachos.com.
Maike's research interests lie in computational and cognitive aspects
of computer depiction. She has studied Maths, Logic, Computer Science,
and Psychology at the Universities of Muenster, Germany, and Leeds, England.
Currently Maike is writing her Master's Thesis in Computer Graphics at
the Hasso Plattner Institute in Potsdam, Germany, working on algorithms
for real-time non-photorealistic rendering of 3D city models. She expects
to receive her diploma in April 2003. Maike is developing for the Virtual
Rendering System (www.vrs3d.org).
Daniel Wagner was fascinated by programming computer graphics since he
got his first PC in 1991. In 1995 he developed the software SimLinz for
the Ars Electronica Center (museum of the future) in Linz/Austria. During
his study he worked for Reality2 a company creating virtual reality software.
After finishing his Master's thesis 'EndoView: a System for Fast Virtual
Endoscopic Rendering and Registration' in summer 2001 he worked as a lead
developer for BinaryBee a company developing arcade style webgames. Daniel
is currently working on his PHD thesis on augmented reality at the Interactive
Media Systems Group at the Vienna University of Technology.
I hold a Masters degree in Computer
Science from Poznan University of Technology and I am currently a software
engineer in Poland. I started my adventure with computer graphics, when
I got my first computer (Atari 65XE) and I am addicted until now. Beside
real-time computer graphics I am also interested in object-oriented programming
and design. I like good movies,
dry wines and big fluffy carpet slippers.
Carsten has been passionate about computer graphics ever since he got
a hold of intros and demos for Amiga and PC. Although never really been
active in the demo scene himself it's always been a big inspiration for
him. As a 3D programmer at Totally Games he developed a lot of the pixel
and vertex shaders used for special effects in a Xbox game. At that time
he also wrote a tech demo for NVIDIA's GeForce3. His latest demo "Meshuggah"
was released in spring 2002. Carsten expects to receive his M.S. degree
in Computer Science in December 2002.
Guillaume is a 25 years old graphic engineer at Montecristo (www.montecristogames.com).
He joined the R&D departement team last year were he is working on
the next generation 3d engine. In the game industry since 1998, he has
done two playstation games for Infogrames and one PC game for Montecristo.
Despite the few spare time he has, he is still an active demoscener, his
last demo "Raw Confessions", has been nominated for the Demoscene
Awards (http://awards.scene.org/) in the following categories:
- Best demo
- Best graphics
Renald Zioma has been driven (mad) by computer graphics since he saw ZX
Spectrum. After learning assembly and writing Tetris clone for his ZX,
he switched to PC, finished school, wrote couple small non-commercial
games, gained experience with object-oriented programming and design while
working at the software development company, received BS degree in Computer
Science from Kaunas University of Technology and returned to his roots
while working as a professional game programmer for the last 1.5 years.
Recently he has finished demo of 3D fighting game based on real-time motion
recognition for Interamotion, LLC. On the sparetime he is programming
demos, games and organizing small demo/gamescene related events in Lithuania.