Upcoming Events
Unite 2010
11/10 - 11/12 @ Montréal, Canada

GDC China
12/5 - 12/7 @ Shanghai, China

Asia Game Show 2010
12/24 - 12/27  

GDC 2011
2/28 - 3/4 @ San Francisco, CA

More events...
Quick Stats
39 people currently visiting GDNet.
2406 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!
Link to us Events 4 Gamers
Intel sponsors gamedev.net search:

This section has articles related to graphics programming and the theory behind it.

For more information about Graphics, check out:

Resources Listed: 201
Alpha BlendingGeneral
Denthor's Asphyxia TutorialsHidden Surface Removal
DitheringWWH Series
Michael Abrash's ArticlesTexture Mapping
Lighting and Shading Ramblings in Realtime
VoxelsCartoon Rendering
Topic Author Description
Crytek GmbH Presentations
[Added: 6/15/2009]
Various  A repository of lecture slides from Crytek engineers given at various game development conferences on a broad range of graphics and game development - with additional video and PDF documents 
Subcategory: Alpha Blending
Topic Author Description
2D Alpha Blending Using MMX Technology
[Added: 9/1/2001]
Matthias Hofmann  Provides an improvement to a blending technique described in an earlier article. 
8-Bit Indexed Color Translucency
[Added: 7/5/2000]
Travis Bemann  Covers how to use 256 indexed color translucency. 
Additive Alpha Blending Routine in Assembly
[Added: 8/21/1999]
Jim Bellinger  This is example source code of an alpha blending routine in assembly. According to it's author, the code can easily be inserted into VC++, in fact, that's what you're supposed to do. 
MMX Enhanced Alpha Blending
[Added: 10/21/1999]
John Hebert  Covers optimizing alpha belding by taking advantage of MMX. 
Really Fast Software Blending
[Added: 11/20/2001]
Kevin Gadd  Presents the author's method of performing fast alpha blending in software using a variation on lookup tables. 
The CodeDemon's Guide To Translucency
[Added: 12/22/1999]
Jesse Towner  Covers several methods of translucency, focusing on alpha blending. 
True-color Software Blending
[Added: 9/14/1999]
Seumas McNally  Covers additive blending and alpha blending. 
Subcategory: Denthor's Asphyxia Tutorials
Topic Author Description
3d Solids
[Added: 7/16/1999]
[Added: 7/16/1999]
ASM and Fire Code
[Added: 7/16/1999]
Basic 3d Programming
[Added: 7/16/1999]
Circles and Lines
[Added: 7/16/1999]
[Added: 7/16/1999]
Glenzing, Fast Polys, etc
[Added: 7/16/1999]
Hidden Surface Removal
[Added: 7/16/1999]
Lookup Tables
[Added: 7/16/1999]
Mode 13h
[Added: 7/16/1999]
Mode-X Scrolling
[Added: 7/16/1999]
Palette Changing
[Added: 7/16/1999]
Pixel Morphs
[Added: 7/16/1999]
[Added: 7/16/1999]
Scaling Bitmaps
[Added: 7/16/1999]
[Added: 7/16/1999]
[Added: 7/16/1999]
Texture Mapping
[Added: 7/16/1999]
VGA Mode-X
[Added: 7/16/1999]
Virtual Screens
[Added: 7/16/1999]
Subcategory: Dithering
Topic Author Description
8 bit deep b/w dither
[Added: 7/16/1999]
Advanced Dither Needed (untested)
[Added: 7/16/1999]
Advanced Dither Needed (untested) II
[Added: 7/16/1999]
Dither Source
[Added: 7/16/1999]
Dithering (Floyd-Steinberg) Source
[Added: 7/16/1999]
Floyd-Steinberg Notes
[Added: 7/16/1999]
Subcategory: Michael Abrash's Articles
Topic Author Description
256-color VGA Animation
[Added: 7/16/1999]
3d Animation
[Added: 7/16/1999]
80x86 Optimizations
[Added: 7/16/1999]
Catching up (various topics re-examined)
[Added: 7/16/1999]
Color-modeling in 256-color mode
[Added: 7/16/1999]
Fast 3-d Animation : Meet X-Sharp
[Added: 7/16/1999]
Fast Antialiasing
[Added: 7/16/1999]
Fast Convex Polygons
[Added: 7/16/1999]
Fast Texture Mapping
[Added: 7/16/1999]
Further ruminations of the Edsun CEG/DAC
[Added: 7/16/1999]
Mode X: 256-color VGA Magic
[Added: 7/16/1999]
More 3-d Animation
[Added: 7/16/1999]
More on Bresenhams run-length slice algorithm
[Added: 7/16/1999]
More on Texture Mapping
[Added: 7/16/1999]
More undocumented 256-color VGA Magic
[Added: 7/16/1999]
Moving, faster lines and page flipping
[Added: 7/16/1999]
Raw Speed and More (X-Sharp 3-D Prog)
[Added: 7/16/1999]
The Polygon Primeval
[Added: 7/16/1999]
The Sierra Hicolor DAC
[Added: 7/16/1999]
The Simplicity of Complex Polygons
[Added: 7/16/1999]
The Virtues of inexpensive approximation
[Added: 7/16/1999]
Subcategory: Lighting and Shading
Topic Author Description
A Closer Look At Parallax Occlusion Mapping
[Added: 6/28/2006]
Jason Zink  Presents a guide to parallax occlusion mapping as well as a sample implementation. 
[Added: 7/13/2001]
Sami Hamlaoui  Provides an introduction to cel-shading, a technique for creating cartoon-like images using conventional 3D methods. 
Fast Phong Shading (OTMPHONG.DOC)
[Added: 7/16/1999]
Fast Phong Shading by Gary Bishop
[Added: 7/16/1999]
[Added: 7/16/1999]
Gouraud Shaded Polygons
[Added: 7/16/1999]
High Dynamic Range Environment Mapping On Mainstream Graphics Hardware
[Added: 2/22/2005]
Adam Lake and Cody Northrop
Intel® Software Solution Group (SSG)
Modern Game Technologies Project 
This article discusses the capture, storage, and display of high dynamic range images. 
Light Based Tessellation
[Added: 10/11/2001]
Jeff Andrews  Light Based Tessellation technology is used for adding enhanced lighting effects to three-dimensional objects. Current lighting algorithms operate only on each vertex of a polygon in order to create lighting effects. By tessellating (breaking up) a polygon, more vertices will be created with which the lighting algorithms can work, thus producing better lighting effects. 
Phong Illumination Explained
[Added: 8/23/1999]
Paul Nettle  Nettle explains Phong illumination in this article. (not phong shading) 
Phong Lighting and Specular Highlights
[Added: 7/16/1999]
Shaders and Metaprogramming
[Added: 7/3/2007]
Promit Roy  Discusses how to robustly expose shader constant parameters from a .NET 2.0 application using the reflection and metaprogramming abilities of managed code 
Texture Shading by Tom Hammersley
[Added: 7/16/1999]
Subcategory: Radiosity
Topic Author Description
Radiosity in English
[Added: 8/22/1999]
Paul Nettle  In this article, Paul Nettle describes radiosity in an easy to understand way. 
Radiosity in English II: Form Factor Calculation
[Added: 8/22/1999]
Paul Nettle  This is the second part of Paul Nettle's Radiosity in English Series. 
Radiosity Methods
[Added: 12/2/1999]
Hin Jang  A good and somewhat technical introduction to radiosity. 
Real-Time Radiosity
[Added: 2/19/2000]
Nathan Vegdahl  Presents a method of attaining realistic lighting in games using radiosity. 
Real-Time Radiosity Part II
[Added: 7/5/2000]
Nathan Vegdahl  This follow-up to the original article gets into the actual method, explaining radiosity mapping, dynamic light source radiosity, and dynamic object to static object radiosity.  
Subcategory: Voxels
Topic Author Description
Voxel Engine
[Added: 8/22/1999]
Tim Clarke  Newsgroup posting that discusses how to do a voxel engine. 
Subcategory: General
Topic Author Description
3D Basics
[Added: 8/23/1999]
Thierry Tremblay   
3D Decals
[Added: 8/28/2003]
Francis "DeathWish" Woodhouse  This article explores a possible method of implementing true 3D decals in arbitrary places, without splitting up polygons. 
3D Engines for Games: A Broader Perspective
[Added: 10/19/2000]
Sřren Hannibal  Discusses taking your diverse knowledge and bringing it all together to create a complete game engine. 
A Simple Third-Person Camera
[Added: 11/13/2001]
actdevil  Explains how a polar coordinate system can be used to implement a 3rd person camera. 
Advanced Image Panning
[Added: 2/26/2001]
Daniel Wilhelm  Discusses a method to pan images in any direction at any speed with wrap-around. 
Advanced raycasting techniques
[Added: 12/2/1999]
Andreas Christian Seidel  Describes an approach to raycasting that overcomes some of its shortcomings. 
An Introduction To Digital Image Processing
[Added: 10/20/2003]
Frédéric Patin  The aim of this document is to give the reader a little overview of the existing techniques in digital image processing. 
Architecting a 3D Animation Engine
[Added: 2/23/2000]
Scott Corley  Presents some guidelines to developing the C/C++ interface for your animation engine. 
Avoiding Redraw in Graphics
[Added: 11/18/1999]
Joshua Cantrell  Goes over a technique of avoiding overlap/redraw when drawing graphics. This method requires that images are drawn in the order of visible to hidden.  
Basic Line Drawing Algorithm
[Added: 7/16/1999]
Amod Karve   
Behind the Scenes of Messiah’s Character Animation System
[Added: 6/7/2000]
Michael 'Saxs' Persson  Presents some real-world problems, solutions, and nuggets of wisdom learned in the development of Messiah. 
Benefits of A Micro-programmable Graphics Architecture
[Added: 2/16/2001]
Dominic Mallinson  Examines the benefits of a micro-programmable graphics architecture and considers the graphics pipeline and where hardware and software techniques can be applied. 
Bitmap Rotation
[Added: 10/19/1999]
Mike Morton  A series of newsgroup postings where it is explained how to rotate a bitmap. 
Bresenham's Line and Circle Algorithms
[Added: 10/7/1999]
Mark Feldman  A great description of these scan conversion techniques. 
Camera Class Tutorial
[Added: 4/20/2003]
Ian Kerr  Designs and implements a handy camera class. 
Compiled Bitmaps
[Added: 10/19/1999]
John Amato  Covers creating transparent bitmaps by making them part of your code. 
Concatenating Triangle Strips
[Added: 11/27/2002]
Marc Reilly  Explains how to use degenerate triangles to improve batch processing of triangle strips. 
Creating a 3D Game: 3D Basics
[Added: 10/14/1999]
John De Goes  Covers 3D clipping, rotations, perspective view, Z-sorting, and Z-buffering. 
Creating a Custom AppWizard for 3D Development
[Added: 2/17/2002]
Kim Pallister  Shows you how to create a custom Microsoft Visual C++ AppWizard for 3D application development. 
Creating Procedural Objects in 3D Studio MAX
[Added: 6/7/2000]
Gurjeet Sidhu  A procedural object is created by an algorithm that takes a set of parameters that define the object and produces the object representation from that set. This article explains how to write a plug-in to create procedural objects in 3D Studio MAX. 
Devil in the Blue Faceted Dress: Real Time Cloth Animation
[Added: 5/17/2000]
Jeff Lander  A look at simulating cloth in real time. 
Dual Paraboloid Mapping in the Vertex Shader
[Added: 4/17/2006]
Jason Zink  Explains what paraboloid mapping is and demonstrates how to use it with HLSL. 
Entering The 3rd Dimension
[Added: 12/20/1999]
Jeff Weeks  A basic introduction to rotation, translation, and projection. 
Fire How To
[Added: 1/15/2001]
Vaelek  Another explanation of fire using palette animation. 
Fire Tutorial
[Added: 1/15/2001]
Phil Carlisle  Describes a fire technique using palette animation. 
Flex Your Facial Animation Muscles
[Added: 5/17/2000]
Jeff Lander  Jeff continues his examination of facial animation techniques by investigating how to construct and manipulate meshes. 
Four Tricks for Fast Blurring in Software and Hardware
[Added: 2/16/2001]
Alex Evans  Presents a few tricks which can help make real-time blurring possible, and hopefully will provide enough material to inspire you to invent your own hybrid techniques. 
Graphics Programming Black Book
[Added: 2/17/2002]
Michael Abrash  Michael Abrash's legendary book, now available online for free. 
High Dynamic Range Rendering
[Added: 6/19/2004]
Anirudh S Shastry  An introduction that'll help you get your first HDR app running 
Intro to 3D Graphics Programming: Volume I
[Added: 10/19/1999]
Chris Hargrove  Covers the basics of 3D math, the Cartesian coordninate system, and perspective projections. 
Intro to 3D Graphics Programming: Volume II
[Added: 10/19/1999]
Chris Hargrove  Part 2 covers rotations in 2D and 3D 
Intro to 3D Graphics Programming: Volume III
[Added: 10/19/1999]
Chris Hargrove  Discusses the all-important normal. 
Intro to 3D Graphics Programming: Volume IV
[Added: 10/19/1999]
Chris Hargrove  Begins the discussion of polygon fillers with flat and Lambert lighting. 
Intro to 3D Graphics Programming: Volume V
[Added: 10/19/1999]
Chris Hargrove  The last article in this never-finished series covers BSP trees. 
MegaTexture in Quake Wars
[Added: 11/5/2007]
Richard Connery  An overview of MegaTexturing in the new Doom 3 (Tech 4) engine, with a look at advantages and disadvantages of the tech 
Nature in computer graphics
[Added: 9/7/2007]
Shaun Kichenbrand  A research paper outlining various graphical techniques and advancements in rendering natural objects 
Read My Lips: Facial Animation Techniques
[Added: 5/17/2000]
Jeff Lander  This article covers the basics of rendering facial animations in real time. 
Real-Time Rendering Chapter 6: Special Effects
[Added: 2/24/2000]
Tomas Möller and Eric Haines  An excerpt from an essential resource for all graphics programmers. 
Rendering the Great Outdoors: Fast Occlusion Culling for Outdoor Environments
[Added: 4/20/2003]
Michal Bacik  Presents one technique for hidden surface removal usable in 3D engines using tilizing object occlusion. 
Run-Time Pixel Format Conversion
[Added: 3/2/2000]
Michal Bacik  Creates a class to handle general purpose pixel conversion. 
Secrets of Simple Image Filtering
[Added: 9/14/2003]
Christopher Atkinson  This article will explain the theory behind image filtering. 
Spherical Scale Mapping
[Added: 3/4/2005]
Stephan Reiter  Presents a practical approach to the interpolation between arbitrary convex polygonal models. 
Texture Mapping
[Added: 7/16/1999]
Sean Barret  From the PC-GPE 
The Quadratic Curves, Circles and Ellipses FAQ
[Added: 7/29/1999]
hexapod@netcom.com  An FAQ on curves, ellipses, and circles the quadratic way. 
The World of 3-D Graphics Part 1: An Introduction
[Added: 6/26/2001]
David Bull  This new series will provide a complete introduction to 3D concepts. Part 1 introduces the series, and starts off by explaining coordinate systems. 
The World of 3-D Graphics Part 2: Vectors and Planes
[Added: 7/26/2001]
David Bull  The second installment in this series provides a basic introduction to vectors and planes and how to work with them. 
Thinking in 3D - Part I
[Added: 3/30/2000]
Jonathan Tanner  This series introduces the reader to non-API specific 3D graphics. To kick things off, coordinate systems and primitives are explained. 
Subcategory: Hidden Surface Removal
Topic Author Description
3D Backface Culling
[Added: 7/5/2000]
Jeff Weeks  Explains what backface culling is and why it's used. 
A Compact Method for Backface Culling
[Added: 3/24/2000]
Osnat Levi, Ronen Zohar, Haim Barad, Alex Klimovitski  Introduces a method of front-end culling for improved performance. 
Binary Space Partitioning Trees and Polygon Removal in Real Time 3D Rendering
[Added: 2/16/2002]
Samuel Ranta-Eskola  This article documents the author's work developing a BSP-tree engine with physics, radiosity and network optimization. 
Geometry Culling in 3D Engines
[Added: 10/9/2000]
Pietari Laurila  Takes a look at all the major visibility culling algorithms in use today, including view frustum, occlusion, and contribution culling.  
Occlusion Culling Algorithms
[Added: 7/10/2000]
Tomas Möller and Eric Haines  From Chapter 7 of Real Time Rendering, this discusses the class of acceleration schemes known as the occlusion culling techniques. 
Quake Hidden Surface Removal
[Added: 8/22/1999]
Derek Nickel  Covers how Michael Abrash handled hidden surfaces in the original Quake. 
Subcategory: WWH Series
Topic Author Description
WWH - 3D Clipping to an arbitrary FOV with 3x3 or 4x4 Matrices
[Added: 8/23/1999]
Paul Nettle  This WWH describes a 3D Clipper that results in convex n-gons. 
WWH - Calculating a Rotation Matrix Based on Location/Target
[Added: 8/23/1999]
Paul Nettle  The purpose here is to describe how to obtain a proper matrix given a location and a target (or a vector), and an amount of roll. This document also emulates the specific nature of 3DS cameras, when it comes to the degenerate case. 
WWH - Properly Reordering Face Vertex Indices (y/z swap)
[Added: 8/23/1999]
Paul Nettle  The purpose of this WWH is to explain how to properly re-order the face indices of triangular polygon patches when the Y/Z is swapped. 
WWH - Rendering Convex N-Gons
[Added: 8/23/1999]
Paul Nettle  Requires basic understanding of (triangular) polygon rendering and scan conversion. 
WWH - Sub-pixel Accuracy
[Added: 8/23/1999]
Paul Nettle  This WWH describes sub-pixel accuracy. The purpose of a WWH is to expand one's knowledge on a topic they already understand, but need a reference, a refresher course, or to simply extend what they already know about the topic. 
WWH - Sub-texel Accuracy
[Added: 8/23/1999]
Paul Nettle  This article describes sub-texel accuracy. This document relies on the fact that you have already read WWH1 (sub-pixel accuracy) as they are interrelated, and especially since you can't achieve sub-texel accuracy without first achieving sub-pixel accuracy.  
Subcategory: Texture Mapping
Topic Author Description
2D Bump Mapping
[Added: 7/16/1999]
A Texture Mapping Technique
[Added: 7/5/2000]
Joshua Cantrell  General Information about a way to implement perspective projection texture mapping. It may not be standard, but it shows the derivation of the formulae involved. 
A tutorial for 2d and 3d vector and texture mapped graphics
[Added: 7/16/1999]
Applying the Texture Mapping Technique
[Added: 7/5/2000]
Joshua Cantrel  General Information about a way to implement texture mapping. This uses the formula derived in the first article and describes a way to put this into code. 
Bilinear Interpolation Of Texture Maps
[Added: 10/19/1999]
Tom Hammersley  Focuses on bilinear filtering, and touches on trilinear filtering and mip-mapping. 
Constant Slope Texture Mapping
[Added: 7/16/1999]
John McCarthy  Documentation and source for a DOS-based texture mapping routine. 
Environment Mapping
[Added: 10/14/1999]
Tom Hammersley  Describes how to make objects in your game reflect the environment around them. 
Free Direction Texture Mapping
[Added: 1/11/2001]
Hannu Helminen  A very introductory texture mapping tutorial. 
Hardware Accelerated Spherical Environment Mapping using Texture Matrices
[Added: 8/16/2000]
Rob Wyatt  The title pretty much sums it up. 
Midpoint Texture Mapping
[Added: 7/16/1999]
  Incomplete article that describes the mid-point filtering method. 
Mip-Mapping in Direct3D
[Added: 11/9/2000]
Johnathan Skinner  This article explains what mip-maps are, how to create them, and how to use them in Direct3D. 
Perspective Corrected Texture Mapping
[Added: 7/16/1999]
Perspective Corrected Texture Mapping
[Added: 7/16/1999]
Perspective Texture Mapper (source)
[Added: 7/16/1999]
Real-Time Procedural Texturing Techniques Using MMX
[Added: 11/18/1999]
Barad, Atkins, Gerlitz & Goehring  This article focuses on procedural texture mapping. This style of texture mapping is used in raycasters and excels in simulating organic textures. Among this, there are a number of other advantages as discussed in the aritcle. 
Refractive Texture Mapping, Part One
[Added: 11/16/2000]
Gustavo Oliveira  Investigates the use of sphere mapping to simulate curved-surface reflections. 
Refractive Texture Mapping, Part Two
[Added: 11/28/2000]
Gustavo Oliveira  Looks at how refractive texture mapping can be implemented to simulate refractions. 
Rendering to Texture Surfaces Using DirectX 7
[Added: 3/2/2001]
Kim Pallister  Explains using this technique and applying it to dynamic environment maps and soft shadows. 
Run Time Mip-Map Filtering
[Added: 2/23/2000]
Andrew Flavell  An introduction to using mip-maps to overcome aliasing in texture mapping. 
Texture Mapped Polygons
[Added: 7/16/1999]
Texture Mapping
[Added: 8/25/1999]
Thierry Tremblay   
Texture Mapping (Walls only)
[Added: 7/16/1999]
Texture Mapping : A new tool for molecular graphic
[Added: 7/16/1999]
Texture Mapping Mania
[Added: 11/18/1999]
André LaMothe  Introduces the reader to affine texture mapping 
Texture Mapping Polygons in Perspective
[Added: 7/16/1999]
Texture Potential Mapping
[Added: 7/16/1999]
The Power of the High Pass Filter
[Added: 5/31/2001]
Peter Hajba  Offers some solutions to texture tiling problems using incredibly handy little filter that most people seem to ignore - the High Pass filter. 
'Ups and Downs' of Bump Mapping with DirectX 6
[Added: 3/15/2000]
Kim Pallister  Serves as an introduction to the DirectX version of bump mapping. 
Subcategory: Ramblings in Realtime
Topic Author Description
Chapter 1: Inside Quake: Visible-Surface Determination
[Added: 4/24/2000]
Michael Abrash  Reprints of Abrash's Quake articles, originally posted by Blue's News
Chapter 2: Consider the Alternatives - Quake's Hidden Surface Removal
[Added: 4/24/2000]
Michael Abrash  Reprints of Abrash's Quake articles, originally posted by Blue's News
Chapter 3: Sorted Spans in Action
[Added: 4/24/2000]
Michael Abrash  Reprints of Abrash's Quake articles, originally posted by Blue's News
Chapter 4: Quake's Lighting Model - Surface Caching
[Added: 4/24/2000]
Michael Abrash  Reprints of Abrash's Quake articles, originally posted by Blue's News
Chapter 5: Surface Caching Revisited - Quake's Triangle Models and More
[Added: 4/24/2000]
Michael Abrash  Reprints of Abrash's Quake articles, originally posted by Blue's News
Chapter 6: Quake's 3D Engine - The Big Picture
[Added: 4/24/2000]
Michael Abrash  Reprints of Abrash's Quake articles, originally posted by Blue's News
PDF Version
[Added: 4/24/2000]
Michael Abrash  Adobe Acrobat version of the series. 
Permissions and Author’s Note
[Added: 4/24/2000]
Michael Abrash  Redistribution agreement and credits 
Subcategory: Cg
Topic Author Description
Cg Bumpmapping
[Added: 4/15/2003]
Razvan Surdulescu  This article describes how to implement a simple and effective bump mapping effect using nVIDIA's Cg programming language and OpenGL. 
Cg Shadow Volumes
[Added: 9/4/2003]
Razvan Surdulescu  This article describes how to implement a very realistic shadow effect using nVIDIA's Cg programming language and OpenGL. 
Subcategory: Cartoon Rendering
Topic Author Description
Real-Time Cartoon Rendering with Direct-X 8.0 Hardware
[Added: 12/6/2003]
Vishvananda Ishaya  This article focuses on using programmable hardware for creating cartoon-like graphics from 3D models. 
 Key: = HTML article hosted here  , = HTML article hosted elsewhere  = link to another web site  = Adobe Acrobat document  = Zip files  = Word or text document