glNormal — set the current normal vector

C Specification

void glNormal3f(GLfloat nx,
 GLfloat ny,
 GLfloat nz);
void glNormal3x(GLfixed nx,
 GLfixed ny,
 GLfixed nz);


nx, ny, nz

Specify the x, y, and z coordinates of the new current normal. The initial value is (0, 0, 1).


The current normal is set to the given coordinates whenever glNormal is issued.

Normals specified with glNormal need not have unit length. If GL_NORMALIZE is enabled, then normals of any length specified with glNormal are normalized after transformation. If GL_RESCALE_NORMAL is enabled, normals are scaled by a scaling factor derived from the modelview matrix. GL_RESCALE_NORMAL requires that the originally specified normals were of unit length, and that the modelview matrix contain only uniform scales for proper results. To enable and disable normalization, call glEnable and glDisable with either GL_NORMALIZE or GL_RESCALE_NORMAL. Normalization is initially disabled.

Associated Gets

glGet with argument GL_CURRENT_NORMAL

glIsEnabled with argument GL_NORMALIZE

glIsEnabled with argument GL_RESCALE_NORMAL

See Also

glColor, glEnable, glMultiTexCoord, glNormalPointer


Copyright © 2003-2004 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see