Main Page   Modules   Class Hierarchy   Compound List   Compound Members  

GAUGE3D::GSurface Class Reference

Represents a surface map. More...

#include <gauge3d/graphics/surface.h>

Inherits GAUGE3D::GObject.

List of all members.

Public Types

enum  tMapType {
  COLOR, TRANSPARENCY, NORMAL, OPACITY,
  BINARY_OPACITY, GLOSS, ELEVATION
}
 Describes how to interpret a particular channel of a map. More...


Public Methods

virtual ~GSurface ()
virtual GArray<SurfaceMapSurfaceMaps ()=0


Detailed Description

Represents a surface map.

GSurface represents a surface map, which is like a texture map but maps more than just colors and alpha. A point on a surface map is referenced by only one set of texture coordinates, but the layers of the map do not need to line up (see below).


Member Enumeration Documentation

enum GAUGE3D::GSurface::tMapType
 

Describes how to interpret a particular channel of a map.

All maps have between one and four channels. The channels are split into the RGB channel(s) and the alpha channel. Note that the RGB channel does not necessarily represent a color, and the alpha channel is not necessarily an opacity value. They are only named as such for historical reasons.

The channels of a map are broken up as follows:

  • 1 channel map: The one channel is the RGB channel (think grayscale).
  • 2 channel map: First channel is RGB, second channel is alpha.
  • 3 channel map: All three channels go into the RGB component.
  • 4 channel map: The first three channels are the RGB, and the fourth is the alpha.
The RGB and the alpha channels are each assigned a map type from the following values.
Enumeration values:
COLOR   The color (RGB or grayscale) of the image.

Duh, this is just regular texture mapping. Color can be RGB or grayscale. A surface may contain multiple color maps. They will be multiplied together to get the final color. (hint: Detail maps.)

TRANSPARENCY   Transparency map. This is different from alpha.

When objects are viewed through a transparent polygon, the colors are modulated (multiplied) by the transparency map. This looks much nicer than opacity maps (alpha transparency) in some situations, and can be used in combination with an opacity map to give good results in all situations. The transparency map can be RGB color or grayscale.

NORMAL   Normal map, used for dot product bump mapping.

A normal map must have three channels (duh). The channels are the X, Y, and Z components of the normal vector to the surface. These are then dot-product multiplied with the light direction to get per-pixel lighting.

OPACITY   This is the same thing as alpha mapping.

An opacity map can only have one channel.

BINARY_OPACITY   An opacity map where each pixel is either fully opaque or fully transparent.

Each pixel in a binary opacity map is either 1.0 or 0.0. When rendered, the edges between opaque regions and transparent regions will be drawn sharp rather than being bi-linearly interpolated like a regular opacity map.

GLOSS   Gives the reflectivity of a surface.

One channel. The specular lighting and environmental reflection effects for each pixel will be multiplied by the gloss map.

ELEVATION   The height of each pixel.

This is a single-channel map which gives the height of each pixel. This can be used to draw an elevation map, which is done by drawing multiple layers, and is rather expensive. Note that this has nothing to do with bump mapping.


The documentation for this class was generated from the following file:
Generated at Tue Jan 30 17:07:34 2001 for gauge3d by doxygen1.2.4 written by Dimitri van Heesch, © 1997-2000