Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемmsu-cuda-course.googlecode.com
1 CUDA Assignment #3 Работа с текстурами, взаимодействие с OpenGL
2 Задание на выбор zТрассировка лучей: Отражения zТрассировка лучей: Преломления
3 Задание на выбор
4 zНеобходимо реализоватиь один из двух эффектов на выбор: yОтражние yПреломление zСцена: yСферы (минимум 2) xС отражением xС преломлением yСферы должны быть расположены на расстоянии не превышающим своего диаметра от плоскости yПлоскость z = 0 xМожно представить как 2 треугольника xЕсли выбран вариант с отражением – то плоскость обязательно отражающая xПлоскость обязательно с текстурированием zСферы должны двигаться – yможно задать простое движение по окружности вокруг zЗамер FPS yFPS можно выводить название окна zМинимальное разрешение экрана: 640х480
5 zВиртуальный глаз Находится в положении float3 eyePos Смотрит в направлении float3 eyeDir Имеет вектора ориентации float3 eyeUp и float3 eyeRight xeyeRight можно получить как векторное произведение eyeDir и eyeUp x В зависимости от того как взять векторное произведение получится левая или правая тройка векторов x Очевидно, что если eyeUp и eyeDir коллинеарны – то векторное произведение нулевое – это значит что вектор «вверх» выбран не верно. Генерация лучей
6 zЭкран Шириной int ScreenW и высотой int ScreenH Расстояние до экрана – float zNear Генерация лучей глаз Расстояние до экрана – zNear camDir
7 zЭкран yЧерез каждый пиксел экрана пускается луч Генерация лучей глаз
8 Пересечение луча и треугольника zОптимизированный вариант y Барицентрические координаты xu := u/S, v := v/S, t1 := t1/S x t1 = 1 – u - v y 3 уравнения, 3 неизвестных
9 Пересечение луча и треугольника zОптимизированный вариант
10 Пересечение луча и сферы P1P1 P2P2 P0P0 v r O Луч: Пересечени:
11 Пересечение луча и сферы zПри положительном дискриминанте выбирается минимальное положительное t P1P1 P2P2 P0P0 v r P1P1 P2P2 P0P0 v r
12 Отражение zПосчитать нормаль yДля плоскости ее задать просто yНа сфере [нормаль] = [точка пересечения] – [цент сферы] R n RrRr
13 Преломление R n RrRr η1η1 η2η2
14 Текстуры zХраните геометрию в текстурах или в разделяемой памяти. Так как геометрии мало, она туда поместится. zОбязательно текстурировать треугольник y texCoord = u*texCoordA + v*texCoordB + t1*texCoordC; y Используйте режим нормализованной адресации и wrap для заворачивания текстурных координат yИзображение шахматной доски не нужно грузить – его можно создать в отдельном кернеле
15 Отрисовка zРеализовать взаимодействие с OpenGL zКопировать цвет в PBO zНарисовать quad на весь экран с текстурой, содержащей результирующий цвет yКопировать цвет в оперативную память и рисовать с помощью glDrawPixels – защитано не будет
16 Вопросы
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.