https://e.sfu-kras.ru/course/view.php?id=9144
Запись на курс
Предмет и область применения компьютерной графики
Виды компьютерной графики:
Научная графика
Деловая графика
Конструкторская графика
Иллюстративная графика
Художественная и рекламная графика
Компьютерная анимация
О природе света и цвета
Интегральная кривая спектральной чувствительности глаза
Кривые чувствительности различных рецепторов
Цветовые модели компьютерной графики
Субстрактивное формирование оттенков
Цветовой куб для моделей RGB и CMY
Схема смешения цветов для моделей RGB и CMY
1.64M
Categories: informaticsinformatics softwaresoftware

Компьютерная графика

1.

Компьютерная
графика
лекция 1

2. https://e.sfu-kras.ru/course/view.php?id=9144

https://e.sfukras.ru/course/view.php?id=9144
Курсы /
Институты /
Институт математики и фундаментальной
информатики /
базовая каф. Вычислительных и
информационных технологий /
Компьютерная графика

3. Запись на курс

группа
ИМ18-01
ИМ18-02
ИМ18-03
ИМ18-04
ИМ18-05
ИМ18-06
кодовое слово
им18-01
им18-02
им18-03
им18-04
им18-05
им18-06
или кодовое слово им1800

4. Предмет и область применения компьютерной графики

Компьютерная графика - это область
информатики, которая охватывает все
стороны формирования изображений с
помощью компьютера.

5.

6.

7.

8.

9. Виды компьютерной графики:

Научная графика
Деловая графика
Конструкторская графика
Иллюстративная графика
Художественная и рекламная графика
Компьютерная анимация

10. Научная графика

11.

Назначение
научной
графики
наглядное
изображение
объектов
научных исследований, графическая
обработка
результатов
расчетов,
проведение
вычислительных
экспериментов
с
наглядным
представлением их результатов.
К научной графике относятся графики
функций, диаграммы, чертежи и т.д.

12.

13. Деловая графика

14.

Деловая графика предназначена для
наглядного представления различных
показателей работы учреждений.
Виды деловой графики: плановые
показатели, отчетная документация,
статистические сводки и т.д.

15.

16. Конструкторская графика

17.

Конструкторская графика используется
в
работе
инженеров-конструкторов,
архитекторов,
изобретателей
новой
техники. Этот вид компьютерной графики
является обязательным элементом САПР
(систем автоматизации проектирования).
Средствами конструкторской графики
можно получать как плоские изображения
(проекции,
сечения),
так
и
пространственные
трехмерные
изображения.

18.

19. Иллюстративная графика

20.

Иллюстративная
графика
это
произвольное рисование и черчение на
экране компьютера.
Пакеты
иллюстративной
графики
относятся к прикладному программному
обеспечению общего назначения.
Простейшие
программные
средства
иллюстративной графики называются
графическими редакторами.

21. Художественная и рекламная графика

22.

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

23.

Программы для работы с художественной
и иллюстративной графикой:
3D Studio MAX
Adobe Photoshop
Corel Draw
Autodesk Maya

24. Компьютерная анимация

25.

Компьютерная
анимация

вид
анимации, создаваемый при помощи
компьютера.
Мультимедиа - это объединение
высококачественного изображения на
экране
компьютера
со
звуковым
сопровождением.

26.

Программы для создания компьютерной
анимации:
3D Studio MAX
Adobe Flash
Autodesk Maya
Blender

27. О природе света и цвета

28. Интегральная кривая спектральной чувствительности глаза

29. Кривые чувствительности различных рецепторов

30. Цветовые модели компьютерной графики

Цветовая модель — модель описания
представления цветов графики в виде
набора чисел (обычно из трёх или
четырёх
значений,
называемых
цветовыми
компонентами
или
цветовыми координатами).
Цветовые модели подразделяются на
аддитивные и субтрактивные модели.

31.

В аддитивной цветовой модели
задаются три основных цвета, а любой
другой
цвет
представляется
как
взвешенная сумма трех основных
цветов.
Аддитивная цветовая модель
RGB (Red, Green, Blue — красный,
зелёный, синий).

32.

Другая модель смешивания цветов субстрактивная цветовая модель,
или модель CMYK(CMY), использующая
в качестве первичных составляющих
цвета Cyan, Magenta, Yellow (голубой,
пурпурный, желтый), которые являются
дополнительными к Red, Green, Blue.
Связь между значениями (R,G,B) и
(C,M,Y) для одного и того же цвета
выражается формулой

33. Субстрактивное формирование оттенков

34. Цветовой куб для моделей RGB и CMY

35. Схема смешения цветов для моделей RGB и CMY

36.

37.

OpenGL (Open Graphics Library — открытая
графическая
библиотека,
графическое
API) — спецификация, определяющая
независимый от языка программирования
платформонезависимый
программный
интерфейс для написания приложений,
использующих двухмерную и трёхмерную
компьютерную графику.

38.

Основные графические операции, которые выполняет
OpenGL для вывода изображения на экран
1. Конструирует фигуры из геометрических примитивов
(примитивами в OpenGL считаются точки, линии, полигоны,
битовые карты и изображения).
2. Позиционирует объекты в трехмерном пространстве и
выбирает точку наблюдения для осмотра полученной
композиции.
3. Вычисляет цвета для всех объектов. Цвета могут быть
определены приложением, получены из расчета условий
освещенности, вычислены при помощи текстур,
наложенных на объекты или из любой комбинации этих
факторов.
4. Преобразует математическое описание объектов и
ассоциированной с ними цветовой информации в пиксели
на экране. Этот процесс называется растеризацией (или
растровой разверткой).

39.

Визуализация
(rendering)

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

40.

Пиксель (pixel) – это самый маленький
видимый элемент, который монитор может
поместить на свой экран.

41.

Битовая плоскость – это область памяти,
содержащая один бит информации на
каждый пиксель экрана.

42.

Система координат

43.

Порядок формирования кадра
Очистка окна
Установка цвета
Рисование примитивов
Вывод на экран

44.

Очистка окна
glClearColor(1.0,1.0,1.0,0.0);
// функция устанавливает цвет, коотоым будет заполнятся
бцфер при очистке
glClear(GL_COLOR_BUFFER_BIT);
// функция очищает буфер цвета
glClearDepth(1.0);
// функция указывает значение, которое будет присвоено
каждому пикселю в буфере глубины
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
// функция очищает буфер цвета и глубины

45.

Установка цвета
glColor3f(1.0,0.0,0.0);
// Функция принимает 3 параметра,
каждый из которых является
вещественным числом в диапазоне
между 0.0 и 1.0. Эти параметры, по
порядку, указывают красный, зеленый и
синий компоненты цвета.

46.

Примеры задания разных цветов
glColor3f(0.0,0.0,0.0); черный
glColor3f(1.0,0.0,0.0); красный
glColor3f(0.0,1.0,0.0); зеленый
glColor3f(1.0,1.0,0.0); желтый
glColor3f(0.0,0.0,1.0); синий
glColor3f(1.0,0.0,1.0); фиолетовый
glColor3f(0.0,1.0,1.0); голубой
glColor3f(1.0,1.0,1.0); белый

47.

Вывод на экран
SwapBuffers(hDC)
// Функция осуществляет обмен
переднего и заднего буферов

48.

Точки
Точка
определяется
вещественных
чисел,
вершиной.
набором
называемым
Координаты точки заданы в трехмерном
пространстве.

49.

Линии
Линия - сегмент прямой (отрезок).
Линия описывается двумя вершинами.
Примеры: отрезок, ломаная и замкнутая ломаная

50.

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

51.

Вершины
glVertex*() // функция указывает одну вершину для
использования в описании геометрического объекта
void glVertex{234}{sifd}(TYPE coords);
void glVertex{234}{sifd}v(const TYPE *coords);
Для каждой вершины можно указывать от 2 до 4 координат.
Разные версии функции:
glVertex2s - вершина из двух координат, имеющих тип short
glVertex2i - вершина из двух координат, имеющих тип int
glVertex3f - вершина из трех координат, имеющих тип float
glVertex4d - вершина из четырех координат, имеющих тип
double
glVertex3dv - вершина из трех координат, имеющих тип double,
координаты задаются массивом из трех элементов типа
double

52.

Примеры задания вершин:
glVertex2s(1,5);
glVertex3d(0.7,5.224,3.1415926535898);
glVertex4f(2.1,1.3,-2.0,2.0);
GLdouble dvect[3]={5.0,9.0,1992.0};
glVertex3dv(dvect);

53.

Примитив набор точек
glPointSize (20);
glEnable(GL_POINT_SMOOTH);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,
GL_ONE_MINUS_SRC_ALPHA);
glColor3d(0, 0, 0);
glBegin(GL_POINTS);
glVertex2f(0.0,0.0);
glVertex2f(0.0,3.0);
glVertex2f(4.0,3.0);
glVertex2f(6.0,1.5);
glVertex2f(4.0,0.0);
glEnd();

54.

void glPointSize (GLfloat size);
Устанавливает длину и высоту (в пикселях)
для визуализируемой точки, size должен
быть больше 0.0 и, по умолчанию, равен
1.0.
glEnable(GL_POINT_SMOOTH);

55.

void glLineWidth (GLfloat size);
Устанавливает толщину линии(в пикселях)

56.

Примитив линия
glColor3d(1, 0, 0);
glBegin(GL_LINES);
glVertex3d(0, 0, 0);
glVertex3d(5, 2, 0);
glEnd();

57.

Пример программы
#include <iostream>
#include <conio.h>
#include <math.h>
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include "glaux.h"
using namespace std;
#pragma comment (lib,"opengl32.lib")
#pragma comment (lib,"glu32.lib")
#pragma comment (lib, "glaux.lib")

58.

void CALLBACK resize(int width,int height)
{
glViewport(0,0,width,height);
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective(45.0, (GLfloat)width / height, 1.0, 10000.0);
gluLookAt( 0,0,5, 0,0,0, 0,1,0 );
glMatrixMode( GL_MODELVIEW );
glEnable(GL_DEPTH_TEST);
glClearColor(0.2,0.3,0.4,0.0);
}

59.

void DrawLine(float x1, float y1, float z1, float x2, float y2, float z2, float
r, float g, float b)
{
glBegin(GL_LINES);
glColor3d(r, g, b);
glVertex3d(x1, y1, z1);
glVertex3d(x2, y2, z2);
glEnd();
}
void Draw()
{
float dx = 1;
for (int i = -10; i<=10; i++)
DrawLine(i*dx, -10, 0, i*dx, 10, 0, 1, 1, 1);
}

60.

void CALLBACK display(void)
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity();
glTranslated(0, 0, -10);
Draw();
auxSwapBuffers();
}

61.

void RunOpenGL()
{
auxInitPosition( 0, 0, 600, 600);
auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE );
auxInitWindow( "Glaux Template" );
auxIdleFunc(display);
auxReshapeFunc(resize);
auxMainLoop(display);
}
void main()
{
RunOpenGL();
}

62.

Линии

63.

Примитив линия
glLineWidth(1);
DrawLine(0, -10, 0, 0, 10, 0, 1, 1, 1);
DrawLine(-10, 0, 0, 10, 0, 0, 1, 1, 1);
glLineWidth(5);
DrawLine(-5, -2, 0, 5, -2, 0, 1, 0, 0);
DrawLine(-5, -2, 0, -5, 2, 0, 0, 1, 0);
DrawLine(-5, 2, 0, 5, 2, 0, 0, 0, 1);
DrawLine(0, 0, 0, 5, 2, 0, 1, 0, 0);

64.

Спасибо за внимание!
English     Русский Rules