Народный учебник по OpenGL


Урок 3. Отображение цветов


Colors



В предыдущем уроке я показал, как можно отобразить на экране треугольник и квадрат. В этом уроке я научу вас отображать эти же фигуры, но в разных цветах. Квадрат мы зальем одним цветом, а вот треугольник будет залит тремя разными цветами (по одному на каждую вершину) с гладкими переходами.

Вы можете использовать код из предыдущего урока, изменив лишь процедуру DrawGLScene(). Я переписал ее содержимое, и, если вы планируете изменять предыдущий урок, вам нужно полностью ее заменить, или добавить те строки, которые там отсутствуют.

GLvoid DrawGLScene(GLvoid)

{

        

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        

glLoadIdentity();


        

glTranslatef(-1.5f,0.0f,-6.0f);


        

glBegin(GL_TRIANGLES);

Если вы еще помните предыдущий урок, в этой секции мы рисовали треугольник в левой части экрана. Следующие строки кода используют команду glColor3f(r, g, b). Три ее параметра указывают насыщенность цвета красной, синей и зеленой составляющей. Каждый из них может принимать значение от 0.0f до 1.0f.

Мы установим красный цвет (полный красный, без зеленого и синего). Следующие строки кода указывают, что первая вершина (верхняя) будет иметь красный цвет. Все что мы будем рисовать дальше красным, до тех пор, пока мы его не сменим цвет.

                glColor3f(1.0f,0.0f,0.0f);      // Красный цвет

                

glVertex3f( 0.0f, 1.0f, 0.0f);

Мы отобразили первую вершину, установив для нее красный цвет. Теперь добавим следующую вершину (левую нижнею), но установим для нее уже зеленый цвет.

                glColor3f(0.0f,1.0f,0.0f);      // Зеленный цвет

                

glVertex3f(-1.0f,-1.0f, 0.0f);

Пришло время третьей и последней вершины (правый нижний угол). Перед тем как отобразить ее, мы установим синий цвет. После выполнения команды glEnd() треугольник будет залит указанными цветами. Так как мы указали для каждой вершины свой цвет, каждая часть фигуры будет залита по-разному. При переходе в другую вершину заливка будет плавно изменять свой цвет на цвет вершины. В середине треугольника все три цвета будут слиты в один.




Начало  Назад  Вперед



Книжный магазин