Upcoming Events
Southwest Gaming Expo
11/20 - 11/22 @ Dallas, TX

Workshop on Network and Systems Support for Games (NetGames 2009)
11/23 - 11/25 @ Paris, France

ICIDS 2009 Interactive Storytelling
12/9 - 12/11 @ Guimarães, Portugal

Global Game Jam
1/29 - 1/31  

More events...


Quick Stats
6186 people currently visiting GDNet.
2341 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!



Link to us

Link to us

  Intel sponsors gamedev.net search:   
Graphics

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
RadiosityCg
VoxelsCartoon Rendering
Graphics
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]
   
Animation
[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]
   
Cross-Fading
[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]
   
Plasmas
[Added: 7/16/1999]
   
Scaling Bitmaps
[Added: 7/16/1999]
   
Scrolling
[Added: 7/16/1999]
   
Starfields
[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. 
Cel-Shading
[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]
   
Gouraud
[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]
PeyloW   
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