DoTextureMapBump(3D)

NAME
DoTextureMapBump - Create a bump map primitive attribute object

SYNOPSIS
C:
DtObject DoTextureMapBump(operator, mapping, raster)
DtMapOperator operator;
DtObject mapping;
DtObject raster;

FORTRAN:
INTEGER*4 DOTMB(OPRATR, MAPPNG, RASTER)
INTEGER*4 OPRATR
INTEGER*4 MAPPNG
INTEGER*4 RASTER

DESCRIPTION

DoTextureMapBump creates a primitive attribute object that specifies a bump map, i.e. a texture map for perturbing shading normals.

A bump-mapped primitive object can be affected by more than one DoTextureMapBump attribute. The parameter operator specifies whether subsequent primitive objects will be affected by this bump map only, or also by other bump maps higher up in the scene hierarchy. The possible values for operator are:

DcMapReplace <DCMR>
    Any bump maps already defined will be ignored by subsequent primitive objects.

DcMapAdd <DCMADD>
    Use this map in addition to the bump maps higher up in the hierarchy. In case of overlapping textures, the one that is defined closer to the primitive object affected by the textures will be evaluated first. Note that a primitive object can only be affected by textures above it in the hierarchy.

The parameter mapping specifies which mapping procedure to use. Possible values for mapping are:

DcStdBumpMap <DCSBM>
    Use the default bump mapping method the renderer provides.

Renderer-specific mappings
    Use any renderer-specific mappings documented in your Dore System Guide.

The parameter raster is the actual bump map data to be used by the texturing procedure. raster is a handle to an object created with either DoRaster <DORS> or DoFileRaster <DOFRS>. One channel of data is typically needed for bump maps. If the raster data is in the standard Dore format, the following convention is used. For rasters of type DcRasterZ <DCRZ>, DcRasterRGBZ <DCRRZ> and DcRasterRGBAZ <DCRRAZ> the Z channel is used. For rasters of type DcRasterA <DCRA> the alpha channel is used. For rasters of type DcRasterRGB <DCRRGB> and DcRasterRGBA <DCRRA> a single intensity value is calculated from RGB data for every pixel. This intensity value is then used as bump map data. Note that some renderers may not adhere to this convention.

DoTextureMapBump is a primitive attribute and is inherited by subsequent primitive objects, as are all primitive attributes. Unlike most other primitive attributes though, DoTextureMapBump also inherits a set of attributes, i.e. the texture attributes. The texture attributes specify things such as which set of primitive uv coordinates to use, how to extend a texture when the primitive uv coordinates extend beyond the limits of the texture, how to transform the primitive uv coordinates before applying the texture, etc. The current values of the texture attributes are bound to the DoTextureMapBump object when it is executed during traversal. Thus the texture attributes are only indirectly bound to the primitive objects.

ERRORS
DoTextureMapBump will fail if raster is not a DoRaster object or a DoFileRaster object.

[WARNING - invalid or deleted object]

SEE ALSO
DoFileRaster(3D), DoRaster(3D), DoTextureMapBumpSwitch(3D), DoTextureUVIndex(3D), DoTextureUVWIndex(3D), DoTextureMatrixUV(3D), DoTextureMatrixUVW(3D), DoTextureScaleUV(3D), DoTextureScaleUVW(3D), DoTextureTranslateUV(3D), DoTextureTranslateUVW(3D), DoTextureExtendUV(3D), DoTextureExtendUVW(3D), DoTextureOp(3D), DoTextureAntiAlias(3D)