glNormal - встановлює поточний вектор нормалі.
C специфікація
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) ;
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) ;
Параметри
nx, ny, nz - вказує координати x, y, i z нової поточної нормалі. Значення за умовчанням поточного вектора нормалі (0, 0, 1).
v - передає вказівник на масив трьох елементів: x, y, i z компонентів координати нового поточного вектора нормалі.
Опис
Поточна нормаль встановлюється у надані координати через виклик команди glNormal. Цілочисельні типи даних перетворюються на дійсні значення за допомогою лінійної функції перетворення, яка найбільш позитивне значення типу перетворює на 1.0 і найбільш негативне значення типу у -1.0.
Нормалі, вказані за допомогою glNormal не повинні мати одиничну довжину. Якщо увімкнена опція GL_NORMALIZE, тоді нормалі будь-якої довжини нармалізуються після перетворення. Якщо увімкнене GL_RESCALE_NORMAL, нормалі масштабуються коефіцієнтом похідним від матриці огляду моделі (modelview matrix). GL_RESCALE_NORMAL вимагає, щоб оригінально вказані нормалі мали одиничну довжину і матриця огляду моделі містила тільки унікальні коефіцієнти для коректних результатів. Для увімкнення чи вимкнення нормалізаціїї, викликайте команду glEnable і glDisable з параметрами GL_NORMALIZE або GL_RESCALE_NORMAL. За умовчанням нормалізація вимкнена.
Примітка
Поточна нормаль може бути оновленою в будь-який час. Зокрема, команда glNormal може бути викликаною після виклику glBegin і перед відповідним викликом glEnd.
Пов'язані параметри
glGet з аргументом GL_CURRENT_NORMAL
glIsEnabled з аргументом GL_NORMALIZE
glIsEnable з аргументом GL_RESCALE_NORMAL
Перегляньте також
glBegin, glColor, glIndex, glMultiTexCoord, glNormalPointer, glTexCoord, glVertex, Вступ до OpenGL (Open Graphics Library) - відкрита графічна бібліотека
Оригінал
https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glNormal.xml