| 30.05.2011 |
10:00 |
Первое занятие. Кабинет 111...
С собой иметь конспекты по Си (школьные), чистую тетрадь 48 листов и прочую канцелярию...
Если нет полного конспекта ФМЛ № 30 по "Си" - предупредить заранее!!!
|
| |
10:00 |
Способы передачи параметров на Си. Раздаточный материал.
Венгерская нотация (Чарльз Симони [Charles Simonyi] и т.п.). Раздаточный материал.
|
| |
12:00 |
Практика: настройка компилятора и операционной системы для работы.
Простейший вывод окон сообщений. Раздаточный материал.
|
| |
14:00 |
Макет WinAPI. Принципы построения событийно-ориентированных программ.
Основные этапы построения приложений с использованием WinAPI
|
| | | Д/З: повторить указатели-массивы-строки [C-textbook-5.1-5.2-5.3] |
| | | |
| 31.05.2011 |
10:00 |
Разбор простейшего примера с импользованием WinAPI. Исходный текст.
Установка принципов кодирования.
|
| |
11:00 |
Графика Windows Graphics Device Interface (GDI). Идеология получения и работы с контекстом.
Функции рисования GDI.
|
|
11:30 |
Практика: программа слежения за курсором (Eyes).
|
|
13:30 |
Принципы работы с изображениями (загрузка->совместимые контексты->отрисовка).
Пример загрузки и отображения изображения BMP (с масштабированием под окно).
Использование "совместимых" контекстов и изображений ("битмапов") для хранения
буфера кадра и двойной буферизации. Пример.
|
| | | |
| 01.06.2011 |
10:00 |
Замечание о переопределенных типах, сообщениях и их параметрах.
Использование шрифтов (рисование и создание). Фрагмент примера использования.
|
|
11:30 |
Практика: программа отображения аналоговых часов с циферблатом из "битмапа" (Clock).
|
|
15:00 |
Построение системы анимации. Идеология. Требования. Схема работы. Структуры передачи контекста. Функции обратного вызова (callback). Макет для WinAPI с двойной буферизацией (начало).
|
| | | Д/З: выдан материал по линейной алгебре и аналитической геометрии. Разобраться с матрицами и операциями с ними. |
| | | |
| 02.06.2011 |
10:00 |
Практика.
|
|
12:00 |
Макет системы анимации в WinAPI. [OS depended]-[Animation System Core]-[User Level]. Указатели на функцию.
Файлы макета: .:VG4MAIN.C::VG4ANIM.H::VG4ANIM.C::VG4SAMPL.C:.
|
|
16:00 |
Задание: реализации игры настольный теннис с системой анимации.
|
| | | |
| 03.06.2011 |
10:00 |
Практика.
|
|
11:00 |
Матрицы и векторы. Операции над матрицами. Перестановки, инферсии, транспозиции.
Определители матриц и их свойства. Вычисление определителей. Обратная матрица и ее нахождение.
|
|
13:00 |
Аффинные преобразования на плоскости. Задание: arrow follow cursor.
|
| | | |
| 04.06.2011 |
10:00 |
Практика. Работа с системой контроля версий Git (и клиентом SmartGit).
|
|
11:00 |
Матричное представлени аффинных преобразований на плоскости. Композиции преобразований и
запись их единой матрицей.
Аффинные преобразования в пространстве. Матричная запись.
Вектора (основные определения, операции, свойства). Линейная комбинация, линейная независимость векторов, базис на плоскости и в пространстве,
координаты. Скалярное, векторное, двойное векторное и смешанные произведения.
Запись их в ортонормированном базисе.
Раздаточный материал: вывод векторного произведения в определитель матрицы и план по проектированию собственной
библиотеки работы с векторами, матрицами и аффинными преобразованиями в 3D пространстве.
|
|
15:00 |
Практическое задание: создание библиотеки работы с векторами, матрицами и аффинными преобразованиями в 3D пространстве.
|
| | | |
| 05.06.2011 | 10:00 | Выходной |
| 06.06.2011 |
10:00 |
Практика.
|
|
11:30 |
Программирование джойстика.
|
|
12:00 |
Аналитическая геометрия. Алгебраические уравнения 1 степени. Прямая
на плоскости. Уравнения. Плоскость в пространстве. Прямая в пространстве.
Некоторые задачи вычислительной геометрии:
- расстояние от точки до: прямой, плоскости, отрезка;
- поиск пересечения двух прямых, двух отрезков на плоскости;
- поиск пересечения прямой и плоскости;
- поиск пересечения прямой и треугольника (построение косоугольного базиса в пространстве);
- определение порядка обхода вершин в простом многоугольнике на плоскости (clock-wise, counter-clock-wise);
Проекции: параллельная и центральная. Построение проекции в базовом примере вывода 3D объектов.
|
| | | |
| 07.06.2011 |
10:00 |
Виртуальная камера. Принцип разделения систем координат. Задание камеры и ее параметры.
Получение матрицы преобразования мировых координат в СК камеры. План реализации камеры в проекте.
|
|
11:30 |
Практика: реализация камеры. построение нескольких объектов, управление камерой от джойстика.
|
| | | |
| 08.06.2011 |
10:00 |
Практика.
|
|
10:30 |
Оптимизация кода с использованием вставок на ассемблере. Пример с использование вычисления
синуса и косинуса в функциях поворота вектора и построения матрицы поворота.
Реализация на Си.
|
|
11:00 |
Библиотека OpenGL.
- Использование в приложении, необходимые компоненты для разработки.
- Инициализация OpenGL в WinAPI в разработанной ранее системе анимации. Фрагменты кода.
- Примеры использование некоторых элементов OpenGL: примитивы glRectd и треугольники,
преобразование координат, простая анимация, ортографическая проекция.
- Системы коорлинат OpenGL и их преобразования. Проецирование в OpenGL.
Примеры использование некоторых элементов OpenGL: примитивы glRectd и треугольники,
преобразование координат, простая анимация, ортографическая проекция. Раздаточный материал.
|
|
14:00 |
Практика: реализация шейкера, множественное наследование геометрии с использованием
преобразований системы координат OpenGL.
|
| | | |
| 09.06.2011 |
10:00 |
Примитивы OpenGL. Механизмы рисования, параметры. Раздаточный материал.
|
|
12:00 |
Практика: Fazend (элементы анимации).
|
|
16:00 |
Разбор практики. Примеры реализации: усеченный конус, елка, птица.
|
| | | |
| 10.06.2011 |
10:00 |
Практика.
|
|
11:00 |
Текстурирование. Текстурное пространство. Наложение текстур. MIP-mapping.
Параметры вывода с текстурами. Построение текстур в памяти и загрузка из файла.
Примеры текстурирования различных геометрических объектов (сфера, плоскость, конус).
Раздаточный материал.
|
| | | |
| 11.06.2011 |
10:00 |
Освещение и "тонирование" в OpenGL (Illumination & Shading). Основное уравнение
вычисления освещенности в OpenGL. Параметры вычисления освещенности в точке.
Источники света. Задание источников и материалов. Таблицы материалов. Разбор примеров. Раздаточный материал.
|
|
11:00 |
Смешивание цветов (blending) и туман в OpenGL. Раздаточный материал.
|
|
11:00 |
Практика: добавить прожекторные источники света, анимированная вода (с полупрозрачностью и правильным
пересчетом нормалей).
|
|
14:30 |
Motion blur. Буфера OpenGL - использование, установка, очистка. Буфер трафарета - Stencil.
|
|
15:30 |
Построение теней с использованием буфера трафарета (stencil shadow).
|
| | | |
| 12.06.2011 | 10:00 | Выходной |
| 13.06.2011 | 10:00 | Выходной |
| 14.06.2011 |
10:00 |
Разработка форматов представления 3D объектов и сцен. Разбор формата Maya *.OBJ:
реализация парсера данных, обработка материалов, разделение на группы и подобъекты.
Некоторые особенности реализации загрузки 3D объектов. Работа с файлами разных типов.
Фрагмент разбиения-сборки полного имени файла.
|
| | | |
| 15.06.2011 |
10:00 |
Практика.
|
|
11:00 |
Текстуры с "альфа" каналом. Альфа-тест и создание 3D фигур с помощью
полупрозрачных текстур.
|
|
11:30 |
API для воспроизведения звука. OpenAL. Идеология 3D звука: "listener"-"sound source"-"sound buffer". Инициализация OpenAL
и создание источников звука и буферов звука. Загрузка из WAV файла. PCM и теория дискретизации (сэмплирование и квантование).
|
| | | |
| 16.06.2011 |
10:00 |
Практика. Разбор функции перехода в полоноэкранный режим (пример реализации).
|
|
11:00 |
Практика. Подготовка отчетов.
|
| | | |
| 17.06.2011 |
10:00 |
Практика.
|
|
14:00 |
Язык программирования шейдеров GLSL. Инициализация расширения. Вершинные и фрагментные
шейдера. Связывание программ и шейдеров. Переменные uniform, attribute и vcaring. Обзор команд
и языковых конструкций. Предопределенные переменные и функции. Примеры.
|
|
17:00 |
Итоговый семинар. Сдача отчетов по практике. Выдача сертификатов.
|
| | | |
| 18.06.2011 | 10:00 | Итоговое занятие |