Москва, МФТИ 23-30 августа 2009 Проект Аннотация курса Продолжительность (час.) Курс Компьютерная графика в инженерном анализе и научной визуализации. Лектор/ ассистент Турлапов Вадим Евгеньевич Всего Теория Практика 8 4 4 Начало курса 28/08 Боголепов Денис Константинович Цели курса 1. Изучение основ визуализации 3D-сцен и результатов моделирования полей и сред методами компьютерной графики. 2. Приобретение навыков шейдерного программирования и высокопроизводительных вычислений на графических процессорах. Уровень подготовки, необходимый для изучения курса 1. Обязательно знание основ программирования на языке С/С++, С#. 2. Желательно знание основ компьютерной графики. Содержание курса Лекционная часть: 1. Основы визуализации 3D-сцен и результатов инженерно-научного моделирования Роль графики в научной визуализации. Представление о графическом конвейере, обеспечивающем визуализацию 3D-сцен. Место преобразований координат в графическом конвейере. Понятие локального освещения. Различие между понятиями Lighting и Shading. Основы аппаратной реализации графического конвейера: геометрический и пиксельный шейдеры. Программируемость графического конвейера. Понятие глобального освещения. Модели и методы его реализации. Основы метода трассировки лучей. Понятие о методе Photon Mapping. 2. Графические процессоры как вычислительные устройства Причины быстрого развития GPU. Понятие о графических API (DirectX, OpenGL) и шейдерных языках (GLSL, MS HLSL). Визуализация полей и сред средствами OpenGL. Визуализация на основе методов глобального освещения. Проблема реального времени. Графические процессоры с шейдерами 4 версии (на примере GPU от AMD). Средства от производителей (NVIDIA CUDA, AMD Stream) и сторонние средства (BrookGPU, Sh): краткий обзор данных средств, их достоинства и недостатки. Переход к шейдерному программированию. Москва, МФТИ 23-30 августа 2009 3. Общие принципы вычислений общего назначения на графическом процессоре Обсуждение базовых техник GPGPU на примере задачи сложения двух матриц (OpenGL): доступные форматы текстур и работа с ними; технология использование шейдеров в основной программе (загрузка, компиляция, передача параметров); вывод результата в текстуру с помощью буфера кадров; выполнение расчетов на графическом процессоре. Ограничения шейдерного программирования. Практическая работа Пример 1: Моделирование гравитационного взаимодействия N тел Пример использования шейдеров для вычислений: задействует практически все важные техники. Показаны подходы к совместному анализу теоретической и практической производительности приложения, определению узких мест, простейшие подходы к оптимизации производительности. Пример 2: Визуализация неявно заданных поверхностей методом трассировки лучей Задача универсальная для визуализации поверхностей в научно-инженерном анализе и ее решение на GPU. Мастер-класс включает в себя рассмотрение программ сложения матриц, задачи N тел, визуализации поверхностей методом трассировки лучей и их дальнейшию доработку. Учебно-методические материалы по курсу «Компьютерная графика» http://new-rus.itlab.unn.ru/?dir=531 или http://new-rus.itlab.unn.ru/?doc=959 Информация об авторах Турлапов Вадим Евгеньевич, доктор технических наук, профессор кафедры математического обеспечения ЭВМ факультета Вычислительной математики и кибернетики (ВМК) Нижегородского государственного университета им.Н.И.Лобачевского. Основные научные интересы лежат в области компьютерной графики и компьютерного зрения, автоматизации проектирования пространственных механизмов, вычислений на графических процессорах. Опубликовано свыше 70 научных работ. E-mail: [email protected]; [email protected] +7 9030408401 Москва, МФТИ 23-30 августа 2009 Боголепов Денис Константинович, аспирант кафедры математического обеспечения ЭВМ факультета Вычислительной математики и кибернетики (ВМК) Нижегородского государственного университета им.Н.И.Лобачевского. Основные научные интересы лежат в области компьютерной графики, высокопроизводительных и распределенных вычислений, вычислений на графических процессорах. Опубликовано 10 научных работ. E-mail: [email protected] +7 9049246085