glNormal
Prev | GL | Next

## Name

glNormal3b, glNormal3d, glNormal3f, glNormal3i, glNormal3s, glNormal3bv, glNormal3dv, glNormal3fv, glNormal3iv, glNormal3sv — set the current normal vector

## C Specification

`void `glNormal3b`` | `(` | `GLbyte `nx`, GLbyte `ny`, GLbyte `nz`);`
`void `glNormal3d`` | `(` | `GLdouble `nx`, GLdouble `ny`, GLdouble `nz`);`
`void `glNormal3f`` | `(` | `GLfloat `nx`, GLfloat `ny`, GLfloat `nz`);`
`void `glNormal3i`` | `(` | `GLint `nx`, GLint `ny`, GLint `nz`);`
`void `glNormal3s`` | `(` | `GLshort `nx`, GLshort `ny`, GLshort `nz`);`

## Python Specification

``glNormal3b`` | `(` | ``nx`, `ny`, `nz`) → `None``
``glNormal3d`` | `(` | ``nx`, `ny`, `nz`) → `None``
``glNormal3f`` | `(` | ``nx`, `ny`, `nz`) → `None``
``glNormal3i`` | `(` | ``nx`, `ny`, `nz`) → `None``
``glNormal3s`` | `(` | ``nx`, `ny`, `nz`) → `None``

## Parameters

`nx`, `ny`, `nz`
  Specify the x , y , and z coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).

## C Specification

`void `glNormal3bv`` | `(` | `const GLbyte *`v`);`
`void `glNormal3dv`` | `(` | `const GLdouble *`v`);`
`void `glNormal3fv`` | `(` | `const GLfloat *`v`);`
`void `glNormal3iv`` | `(` | `const GLint *`v`);`
`void `glNormal3sv`` | `(` | `const GLshort *`v`);`

## Python Specification

``glNormal3bv`` | `(` | ``v`) → `None``
``glNormal3dv`` | `(` | ``v`) → `None``
``glNormal3fv`` | `(` | ``v`) → `None``
``glNormal3iv`` | `(` | ``v`) → `None``
``glNormal3sv`` | `(` | ``v`) → `None``

## Parameters

`v`
  Specifies a pointer to an array of three elements: the x , y , and z coordinates of the new current normal.

## Description

The current normal is set to the given coordinates whenever `glNormal` is issued. Byte, short, or integer arguments are converted to floating-point with a linear mapping that maps the most positive representable integer value to 1.0, and the most negative representable integer value to -1.0.

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.

## Notes

The current normal can be updated at any time. In particular, `glNormal` can be called between a call to `glBegin` and the corresponding call to `glEnd`.

## Associated Gets

`glGet` with argument `GL_CURRENT_NORMAL`

`glIsEnabled` with argument `GL_NORMALIZE`

`glIsEnabled` with argument `GL_RESCALE_NORMAL`

## See Also

glBegin, glColor, glIndex, glNormalPointer, glTexCoord, glVertex

Prev | Up | Next
glNewList | Home | glNormalPointer