продолжать
В предыдущем разделе я научил вас рисовать треугольники и четырехугольники. В этом разделе вы узнаете, как добавить два разных типа штриховки к треугольникам и четырехугольникам. Используйте плоскую раскраску, чтобы закрасить четырехугольник фиксированным цветом. Используйте Плавную окраску, чтобы смешать разные цвета трех вершин треугольника, чтобы создать красивое сочетание цветов.
Продолжайте изменять glDraw в предыдущем разделе.
ПРОЦЕДУРА glDraw();
Начинать
glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT // Очистить экран и буфер глубины);
glLoadIdentity(); //Сбрасываем матрицу наблюдения текущей модели
glTranslatef(-1.5, 0.0, -6.0 // Перемещение влево на 1,5 единицы и на экран 6.0);
glBegin(GL_TRIANGLES); // Рисуем треугольники
//glColor3f(r,g,b). Три параметра в скобках — это по порядку компоненты красного, зеленого и синего цвета.
//Диапазон значений может быть от 0,0 до 1,0. Аналогично команде очистки фона экрана, упомянутой ранее.
//Мы устанавливаем красный цвет (чисто красный, без зеленого и синего).
//Следующая строка кода устанавливает первую вершину треугольника (верхнюю вершину треугольника),
//И используем текущий цвет (красный) для рисования. Отныне все нарисованные объекты будут окрашены в красный цвет.
//Пока мы не заменим красный цвет на что-то другое.
glColor3f(1.0, 0.0, 0.0); //Установим текущий цвет на красный
glVertex3f(0.0, 1.0, 0.0); // Верхняя вершина;
//Установлена первая красная вершина.
//Далее мы устанавливаем вторую зеленую вершину. Нижняя левая вершина треугольника окрашена в зеленый цвет.
glColor3f(0.0, 1.0, 0.0); //Установим текущий цвет на зеленый
glVertex3f(-1.0, -1.0, 0.0); // Внизу слева
//Нижняя правая вершина треугольника. Установите синий цвет
//После появления glEnd() треугольник будет заполнен.
//Но поскольку каждая вершина имеет свой цвет, создается впечатление, что цвет выливается из каждого угла,
//И встретившись ровно в центре треугольника, три цвета смешиваются друг с другом. Это плавная штриховка.
glColor3f(0.0, 0.0, 1.0); //Установим текущий цвет на синий
glVertex3f(1.0, -1.0, 0.0); // Внизу справа
glEnd(); // Конец рисования треугольника
glTranslatef(3.0, 0.0, 0.0 // Сдвиг вправо на 3 единицы);
//Теперь рисуем квадрат однотонного цвета — фиолетового.
//Самое важное, что нужно помнить, это то, что все, что нарисовано после установки текущего цвета, является текущим цветом.
//Каждый проект, который вы создадите с этого момента, будет использовать цвет.
//Даже когда наложение текстур полностью используется,
//glColor3f по-прежнему можно использовать для настройки цветового тона текстуры.
//Подожди..., поговорим об этом позже.
//(Ха-ха, оригинальная книга синяя, но мне нравится фиолетовый)
glBegin(GL_QUADS); // Рисуем квадрат
glColor3f(0.6, 0.2, 2.0); //Установим текущий цвет на фиолетовый
glVertex3f(-1.0, 1.0, 0.0 // Верхний левый);
glVertex3f(1.0, 1.0, 0.0); // Вверху справа
glVertex3f(1.0, -1.0, 0.0); // Внизу слева
glVertex3f(-1.0, -1.0, 0.0); // Внизу справа
glEnd(); // Конец рисования квадрата
Конец;