Book Cover

Book Contents


About the Authors



About the Authors (in alphabetical order)

Dan Amerson
Dan graduated 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, Eturnum.

Marwan Y. Ansari
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.

Kristof Beets
Kristof made 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 and techniques.

Kevin Buchin
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 ( and the 3D-map software system LandExplorer (

Flavien Brebion
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 a lot
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 Brennan
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 Burton
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.

Dean Calver
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 graphic adventure.
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 Capens
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 Carucci
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.

Gim Guan Chua
Blackbox Technologies 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:

Roger Descheneaux
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
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 F. Engel
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 and DIVE.
Wolfgang wrote several articles in German journals on Game Programming and a lot of online tutorials, that were published on and his own web-site 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
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.

Shawn Hargreaves
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:, 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 PC cards.

O'dell Hicks
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

Oliver Hoeller
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 was lead
programmer at Codecult, was responsible for architecture design of 'Codecreatures' and has developed several demos.

Richard Huddy
Richard Huddy 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 Imagire
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 (Japanese). His goal is to publish his demos immediately after the release of new shader technology

Greg James
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 1000.

Jeffrey Kiel
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 Kime
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

Jakub Klarowicz
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 professionally.

Hun Yen Kwoon
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 exciting?

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 Laeuchli
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 epee fencer.

Sylvain Lefebvre
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 Luce
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 Macri
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, 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

Ádám Moravánszky
Á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 Nübel
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.

Christopher Oat
Christopher 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 Pangerl
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 compilers.

Craig Peeper

Kurt Pelzer
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 Persson
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 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 Preston
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 too important.

Maurice Ribble
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
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 Rued
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:

Scott Sherman
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.

Peter-Pike Sloan
Peter-Pike currently 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

Marco Spoerl
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 Development System.

Natasha Tatarchuk
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.

Nicolas Thibieroz
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 Valient
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

Alex Vlachos
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

Maike Walther
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 (

Daniel Wagner
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.

Arkadiusz Waliszewski
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 Wenzel
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 Werle
Guillaume is a 25 years old graphic engineer at Montecristo ( 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 ( in the following categories:
- Best demo
- Best graphics

Renaldas Zioma
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.

Logo: © 2001-2003 Javier Izquierdo, Lanzarote, Spain
Content: © 2001 - 2003 Wolfgang Engel, Frankenthal, Germany