Open GL



             

Давайте что-нибудь изобразим - часть 2


  • b - GLbyte байт
  • s - GLshort короткое целое
  • i - GLint целое
  • f - GLfloat дробное
  • d - GLdouble дробное с двойной точностью
  • ub - GLubyte беззнаковый байт
  • us - GLushort беззнаковое короткое целое
  • ui - GLuint беззнаковое целое
  • v - массив из n параметров указанного типа
  • В нашем случае - glColor3d - означает, что в функцию передается три параметра типа GLdouble. Также можно было вызвать glColor3i, т.е. три параметра типа GLint. Если тип параметров короткое целое, целое, байт или длинное, то компонента цвета приводится к диапазону [0,1]. Приведение к этому диапозону осуществляется по следующим образом. В случае беззнакого типа наибольшее возможное значение приводится к единице, ноль к нулю. В случае знакого максимальное значение приводится к единице или к минус единице, а минус единица будет приведена к единице. Мудрено, сразу и не поймешь. На практике вы будете пользоваться одним из трех случаев, рассмотренных в качестве примера ниже. Например, для беззнакого байта приведение будет осуществленно по следующей формуле: значение_переменной_хранимой_в_байте/255, т.к. 255 максимальное число, хранимое в одном байте. Функция glColor3dv означает, что в качестве параметров передается массив из трех элементов типа GLdouble. Например:

    double array[] = {0.5, 0.75, 0.3, 0.7}; ... glColor3dv(array); glColor3ub(200,100,0); // приводится к 200/256, 100/256, 0,256 glColor3d(0.25,0.25,0); // темно-желтый glColot3ub(0,100,0); // темно-зеленый glColor3ub(0,0,255); // синий

    Функция auxSolidSphere - рисует сферу в начале координат и единичным радиусом. Осещение, создание ламп и установка положения камеры мы рассмотрим чуть позже, а пока давайте по-лучше освоимся и почувствуем насколько здесь все просто. Первую программу под моим руководством вы уже написали. Теперь выполните самостоятельные упражнения.




    Содержание  Назад  Вперед