Metodichka по компьютерной графике. Е. А. Снижко, Н. А. Флерова, А. В. Воронцов программирование компьютерной графики с использованием
Скачать 1.31 Mb.
|
3) Пример рисования на поверхности визуального компонента. (пример 10, часть 2). {**********************************************************************} program Dots; uses Forms, Unit1 in 'Unit1.pas' {frmGL}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TfrmGL, frmGL); Application.Run; end. {**********************************************************************} unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, OpenGL; type TfrmGL = class(TForm) procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormDestroy(Sender: TObject); private hrc: HGLRC; end; var frmGL: TfrmGL; implementation {$R *.DFM} {==========================================Перерисовка окна} procedure TfrmGL.FormPaint(Sender: TObject); begin wglMakeCurrent(Canvas.Handle, hrc); glViewPort (0, 0, ClientWidth, ClientHeight); // область вывода 54 glClearColor (0.5, 0.5, 0.75, 1.0); // цвет фона glClear (GL_COLOR_BUFFER_BIT); // очистка буфера цвета glPointSize (20); // размер точек glColor3f (1.0, 0.0, 0.5); // текущий цвет примитивов glBegin (GL_POINTS); // открываем командную скобку glVertex2f (-1, -1); glVertex2f (-1, 1); glVertex2f (0, 0); glVertex2f (1, -1); glVertex2f (1, 1); glEnd; // закрываем командную скобку SwapBuffers(Canvas.Handle); // содержимое буфера - на экран wglMakeCurrent(0, 0); Canvas.Brush.Color := clGreen; Canvas.Ellipse (10, 10, 50, 50); end; {==============================================Формат пикселя} procedure SetDCPixelFormat (hdc : HDC); var pfd : TPixelFormatDescriptor; nPixelFormat : Integer; begin FillChar (pfd, SizeOf (pfd), 0); pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER; nPixelFormat := ChoosePixelFormat (hdc, @pfd); SetPixelFormat (hdc, nPixelFormat, @pfd); end; {=============================================Создание формы} procedure TfrmGL.FormCreate(Sender: TObject); begin SetDCPixelFormat(Canvas.Handle); hrc := wglCreateContext(Canvas.Handle); end; {=================================Завершение работы приложения} procedure TfrmGL.FormDestroy(Sender: TObject); begin wglDeleteContext(hrc); end; end. {**********************************************************************} Приложение 3. Ссылки на Интернет-ресурсы по использованию библиотек OpenGL в программировании графики. http://www.opengl.org http://gl.satel.ru http://www.sgi.com/software/opengl www.opengl.org.ru/ - Подборка материалов книг, документации, учебников. Примеры программ написанных с использованием OpenGL. opengl.gamedev.ru/ - Программирование компьютерной графики средствами OpenGL. Документация, статьи, советы. www.codenet.ru/progr/opengl/ - Минимальная программа OpenGL. Введение в OpenGL. 55 nehe.gamedev.net/ - главная страница компании NeHe, учебники, ресурсы. www.rsdn.ru/article/opengl/ogltut2.xml - Учебное пособие по OpenGL. www.citforum.ru/programming/opengl/index.shtml - книга Игоря Тарасова «OpenGL». talk.mail.ru/forum/fido7.ru.opengl - Форумы@Mail.Ru: Форум Стандаpт визуализации OpenGL. pmg.org.ru/nehe/ - OpenGL - уроки от NeHe: переводы по OpenGL, трехмерная графика, игры, мультимедия Translations Russian OpenGL. www.firststeps.ru/mfc/opengl/opengl1.html - первые шаги в создании программы с OpenGL www.bib.com.ua/cat_art28.html - руководство по написанию программ. 56 Библиографический список. 11. Боресков А. Графика трехмерной компьютерной игры на основе OpenGL. – М.: Диалог-МИФИ, 2005. 12. Гашников М. и др. Методы компьютерной обработки изображений. - М.: Физматлит, 2001. 13. Павлидис Т. Алгоритмы машинной графики и обработка изображений. - М.: Радио и связь. 1986. 14. Петров М. Компьютерная графика. Учебник для вузов. - СПб.: Питер, 2002. 15. Рейбоу В. Компьютерная графика. Энциклопедия. - СПб.: Питер, 2002. 16. Роджерс Д. Алгоритмические основы машинной графики. - М.: Мир, 1989. 17. Снижко Е. Компьютерная геометрия и графика: Конспект лекций. – СПб.: Изд. БГТУ, 2005. 18. Шикин Е., Боресков А. Компьютерная графика. Динамика, реалистические изображения. - М.: Диалог - Мифи, 1985. 19. Шикин Е., Боресков А. Компьютерная графика. Полигональные модели. – М.: Диалог-МИФИ, 2005. 20. Эйнджел Э. Интерактивная компьютерная графика. Вводный курс на базе OpenGl. - М.: Изд. Дом «Вильямс», 2001. 21. Херн Д., Бейкер М. Компьютерная графика и стандарт OpenGL. – М.: Изд. Дом «Вильямс», 2005. 57 Оглавление. ПРЕДИСЛОВИЕ .......................................................................................................................... 3 ЛАБОРАТОРНАЯ РАБОТА № 1. ПОДКЛЮЧЕНИЕ БИБЛИОТЕК; КОНТЕКСТ УСТРОЙСТВА, КОНТЕКСТ ВОСПРОИЗВЕДЕНИЯ; ОБЩИЙ ВИД ПРОГРАММЫ. ......................................................................................................................................................... 4 Ц ЕЛЬ РАБОТЫ . .............................................................................................................................. 4 Н ЕОБХОДИМЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ . .............................................................................. 4 Основные понятия, используемые в данной лабораторной работе: контекст устройства, контекст воспроизведения, формат пиксела. ............................................. 4 П ОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ . ................................................................................................ 4 К ОНТРОЛЬНЫЕ ВОПРОСЫ . .......................................................................................................... 10 ЛАБОРАТОРНАЯ РАБОТА № 2. ПРИМИТИВЫ OPENGL, ОСНОВНЫЕ ПРИЕМЫ ПОСТРОЕНИЯ ДВУМЕРНЫХ ОБЪЕКТОВ. ..................................................................... 11 Ц ЕЛЬ РАБОТЫ . ............................................................................................................................ 11 Н ЕОБХОДИМЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ . ............................................................................ 11 Командные скобки. Использование функций glBegin и glEnd. ........................................ 11 Аргументы функции glBegin. .............................................................................................. 12 Включение и отключение режима сглаживания (антиэлайзинг). ................................. 12 Вывод точек в OpenGL. ...................................................................................................... 12 Линии: одиночные, ломаные, замкнутые ломаные. ......................................................... 12 Вывод треугольников: одиночные треугольники, ленты треугольников, веера треугольников. ..................................................................................................................... 13 Вывод четырехугольников. ................................................................................................. 14 Рисование полигонов, передние и задние грани полигонов. ............................................. 14 Построение невыпуклых полигонов. .................................................................................. 15 Особенности режимов закрашивания для многоугольников. ........................................ 15 З АДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ ......................................................................................... 16 В АРИАНТЫ К ЗАДАНИЮ . ............................................................................................................ 16 Д ОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ . ................................................................................................... 17 К ОНТРОЛЬНЫЕ ВОПРОСЫ . .......................................................................................................... 18 ЛАБОРАТОРНАЯ РАБОТА № 3. ИСПОЛЬЗОВАНИЕ МАССИВОВ ВЕРШИН. ПРЕОБРАЗОВАНИЯ КООРДИНАТ. .................................................................................... 18 Ц ЕЛЬ РАБОТЫ : ............................................................................................................................ 18 П ОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ . ................................................................... 18 Н ЕОБХОДИМЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ . ............................................................................ 18 М АССИВЫ ВЕРШИН . ................................................................................................................... 18 Включение/выключение режима. ....................................................................................... 18 Заполнение массива вершин ................................................................................................ 19 Команды рисования. ............................................................................................................ 19 Г ЕОМЕТРИЧЕСКИЕ ПРЕОБРАЗОВАНИЯ . ....................................................................................... 19 Матрица моделирования. ................................................................................................... 19 Преобразование переноса: .................................................................................................. 20 Преобразование поворота: ................................................................................................ 20 Преобразование масштабирования: ................................................................................. 20 З АДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ . ......................................................................................... 20 В АРИАНТЫ К ЗАДАНИЯМ . .......................................................................................................... 21 Д ОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ . ................................................................................................... 21 К ОНТРОЛЬНЫЕ ВОПРОСЫ . .......................................................................................................... 21 58 ЛАБОРАТОРНАЯ РАБОТА № 4. ТРЕХМЕРНЫЕ ПОСТРОЕНИЯ. БУФЕР ГЛУБИНЫ. ВИДОВЫЕ ПАРАМЕТРЫ. ПАРАЛЛЕЛЬНАЯ И ПЕРСПЕКТИВНАЯ ПРОЕКЦИИ. ............................................................................................................................... 22 Ц ЕЛЬ РАБОТЫ . ............................................................................................................................ 22 П ОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ . .............................................................................................. 22 Н ЕОБХОДИМЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ . ............................................................................ 22 Трехмерные координаты. ................................................................................................... 22 Буфер глубины. ..................................................................................................................... 22 Проекции. .............................................................................................................................. 23 Видовые параметры. ........................................................................................................... 23 Место команд в программе. ............................................................................................... 23 Матрица проецирования. .................................................................................................... 24 З АДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ . ......................................................................................... 24 В АРИАНТЫ ЗАДАНИЙ . ................................................................................................................ 24 Д ОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ . ................................................................................................... 26 К ОНТРОЛЬНЫЕ ВОПРОСЫ . .......................................................................................................... 26 ЛАБОРАТОРНАЯ РАБОТА № 5. КВАДРИК-ОБЪЕКТЫ. КАМЕРА. ........................... 26 Ц ЕЛЬ РАБОТЫ . ............................................................................................................................ 26 П ОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ . .............................................................................................. 26 Н ЕОБХОДИМЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ . ............................................................................ 26 Квадрик-объекты. ............................................................................................................... 27 Перспектива. ....................................................................................................................... 28 Моделирование камеры. ...................................................................................................... 29 З АДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ ......................................................................................... 29 В АРИАНТЫ К ЗАДАНИЯМ ЛАБОРАТОРНОЙ РАБОТЫ . .................................................................. 29 Д ОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ . ................................................................................................... 30 К ОНТРОЛЬНЫЕ ВОПРОСЫ . .......................................................................................................... 30 ЛАБОРАТОРНАЯ РАБОТА № 6. ОСВЕЩЕНИЕ. ............................................................. 30 Ц ЕЛЬ РАБОТЫ . ............................................................................................................................ 31 П ОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ . .............................................................................................. 31 Н ЕОБХОДИМЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ . ............................................................................ 31 Модель освещения................................................................................................................ 31 Фоновый, диффузный, зеркальный и исходящий свет. .................................................... 32 Цвет материала и света. ................................................................................................... 32 Включение фонового освещения. ........................................................................................ 33 Задание параметров материала. ...................................................................................... 33 Создание, позиционирование и включение одного или более источников света........... 34 Параметры источника света. ........................................................................................... 34 Цвет. ..................................................................................................................................... 35 Позиция и ослабление. ......................................................................................................... 36 З АДАНИЯ ЛАБОРАТОРНОЙ РАБОТЕ . ............................................................................................ 36 В АРИАНТЫ К ЗАДАНИЮ ЛАБОРАТОРНОЙ РАБОТЫ . .................................................................... 36 Д ОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ . ................................................................................................... 36 К ОНТРОЛЬНЫЕ ВОПРОСЫ . .......................................................................................................... 37 ЛАБОРАТОРНАЯ РАБОТА № 7. ТЕКСТУРЫ: РЕЖИМЫ ФИЛЬТРАЦИИ, РЕЖИМЫ ВЗАИМОДЕЙСТВИЯ ТЕКСТУРЫ С НАКЛАДЫВАЕМЫМ ОБЪЕКТОМ, АВТОМАТИЧЕСКАЯ ГЕНЕРАЦИЯ ТЕКСТУРНЫХ КООРДИНАТ. 37 Ц ЕЛЬ РАБОТЫ . ............................................................................................................................ 37 Н ЕОБХОДИМЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ . ............................................................................ 37 59 Подготовка изображения для использования в текстуре. ............................................. 38 Создание текстуры ............................................................................................................ 38 Использование текстуры. .................................................................................................. 41 Пример наложения текстуры с растяжением на прямоугольный объект. ................ 42 Пример наложения текстуры на треугольник. ............................................................... 42 Пример мозаичного(тайлового) покрытия текстурой .................................................. 43 Пример создания с помощь текстур эффекта отражения. ......................................... 43 З АДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ И ПОРЯДОК ВЫПОЛНЕНИЯ . ............................................... 44 ПРИЛОЖЕНИЯ. ........................................................................................................................ 46 П РИЛОЖЕНИЕ 1. М ИНИМАЛЬНЫЙ КОД ПРОГРАММЫ O PEN GL НА C++. ................................... 46 П РИЛОЖЕНИЕ 2. М ИНИМАЛЬНЫЙ КОД ПРОГРАММЫ ДЛЯ ИСПОЛЬЗОВАНИЯ O PEN GL В ПРОГРАММЕ НА D ELPHI . ............................................................................................................ 49 1) Оконное приложение (пример 20, часть 1). ................................................................. 49 2) Консольное приложение (пример 21, часть 1). ........................................................... 50 3) Пример рисования на поверхности визуального компонента (пример 10, часть 2). ............................................................................................................................................... 53 П РИЛОЖЕНИЕ 3. С СЫЛКИ НА И НТЕРНЕТ - РЕСУРСЫ ПО ИСПОЛЬЗОВАНИЮ БИБЛИОТЕК O PEN GL В ПРОГРАММИРОВАНИИ ГРАФИКИ . ............................................................................................ 54 БИБЛИОГРАФИЧЕСКИЙ СПИСОК................................................................................... 56 |