Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Беляев Владимир Сергеевич

Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности
<
Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Беляев Владимир Сергеевич. Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности : Дис. ... канд. техн. наук : 05.13.18 СПб., 2005 151 с. РГБ ОД, 61:05-5/4302

Содержание к диссертации

Введение

2. Некоторые понятия, связанные с системами виртуальной реальности 9

2.1. Понятие текстуры 9

2.2. Использование современной аппаратной базы в системах виртуальной реальности 10

2.3. Синхронизация процессов, происходящих в виртуальной реальности, с физическим временем 14

2.4. Требования, предъявляемые к моделям и алгоритмам, использующимся в системах виртуальной реальности 17

3. Моделирование геометрии водной поверхности 19

3.1. Математические модели водной поверхности, используемые в компьютерной графике 19

3.2. Модель мелкой воды 24

3.3. О методах численного интегрирования систем уравнений гиперболического типа 34

3.4. Схема расщепления матрицы коэффициентов 36

3.5. Разностная схема расщепления вектора потоков (одна пространственная переменная) 39

3.5.1. Расщепление вектора потоков 40

3.5.2. Метод конечных объемов с расщеплением вектора потоков 44

3.5.3. Разрывной метод Галеркина с расщеплением вектора потоков 46

3.5.4. Тестовые задачи 51

3.6. Разностная схема расщепления вектора потоков (две пространственные переменные) 58

3.6.1. Построение схемы 58

3.6.2. Решение задачи о набегании волн на твердую стенку 62

3.6.3. Расчет волн, набегающих на пологий берег 64

3.7. Стохастический метод для построения открытой водной поверхности (вдали от берегов) 66

3.7.1. Построение повторяющегося участка водной поверхности 66

3.7.2. Спектр, определяющий конфигурацию волн 70

3.8. Сопряжение решений в прибрежной и открытой областях 71

3.9. Тестовый пример, демонстрирующий построение геометрии водной поверхности в прибрежной зоне 73

4. Методы построения треугольной сетки для визуализации водной поверхности 76

4.1. Постановка задачи 76

4.2. Существующие методы построения треугольной сетки 78

4.3. Новый подход: использование подвижной сетки с фиксированной триангуляцией 80

4.4. Структура триангуляции сетки 82

4.5. Тестовый пример 86

5. Моделирование оптических явлений, происходящих на поверхности и в толще воды 88

5.1. Введение 88

5.1.1. Терминология и обозначения 88

5.1.2. Постановка задачи 91

5.2. Модель распространения света в толще воды 94

5.2.1. Аппроксимация светового поля для случая неоднородного дна 94

5.2.2. Обзор существующих моделей и выбор наиболее подходящей модели 95

5.2.3. Описание выбранной модели 100

5.2.4. Параметры модели 104

5.2.5. Результаты работы модели 109

5.3. Модель человеческого зрения для визуализации оптических явлений 110

5.3.1. Введение 110

5.3.2. Обзор существующих моделей 112

5.3.3. Яркостная адаптация 114

5.3.4. Хроматическая адаптация 115

5.3.5. Совмещение обеих адаптации в единую модель 115

6. Визуализация водной поверхности с учетом построешюи модели оптических явлений 117

6.1. Визуализация в открытой области 117

6.1.1. Модель визуализации для открытой области 117

6.1.2. Нелинейность модели человеческого зрения 119

6.1.3. Вычисление коэффициента Френеля 121

6.1.4. Имитация ряби для визуализации в открытой области 122

6.1.5. Результаты визуализации 126

6.2. Визуализация в прибрежной зоне 127

6.2.1. Модель Йенсена и ее недостатки 127

6.2.2. Модификация модели Йенсена 131

6.2.3. Имитация ряби для прибрежной зоны 133

6.2.4. Имитация размытости отражения и преломления 135

6.2.5. Тестовый пример 139

7. Заключение 144

8. Литература

Введение к работе

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

В неинтерактивной графике на расчет кадра может тратиться от нескольких секунд до нескольких дней. Типичным примером может являться создание спецэффектов для фильмов (например, сериал "Star Wars" или "Ночной дозор") или создание самих фильмов и мультфильмов средствами компьютерной графики ("Final Fantasy X", "Shrek"). Научная визуализация также может принадлежать к нсинтерактивной графике.

Использование интерактивности обычно связано с необходимостью вмешательства оператора в рассчитываемый и отображаемый процесс. Для этого обычно требуется, чтобы время, необходимое для расчета одного кадра, не превышало нескольких секунд. Однако такая скорость реакции годится только для медленно протекающих процессов. Для отображения быстрого процесса, управляемого пользователем, например, вождения автомобиля, требуется графика реального времени. Принято считать, что она начинается со скорости отображения порядка 10-15 кадров в секунду.

В современном мире компьютерная графика реального времени приобретает все большее значение. Например, графический интерфейс должен отображаться в реальном времени, чтобы не вызывать раздражения у пользователя. Наиболее популярное применение компьютерной графики реального времени — это системы виртуальной реальности (ВР). К ним относятся виртуальные музеи, виртуальные путешествия, различные автомобильные, авиационные, морские и другие тренажеры, многие компьютерные игры.

Популярность подобных систем во многом вызвана удешевлением аппаратных средств. Если раньше для системы ВР требовалась графическая станция, то сейчас достаточно персонального компьютера, оснащенного современным видеоакселератором (графической платой). Например, в настоящей работе для оценки производительности в качестве типового компьютера использовался компьютер с процессором Intel Pentium IV - 3 ГГц и графической платой ATI Radeon 9800 Pro.

Конечной целью разработчиков систем ВР является достижение так называемого эффекта присутствия. Под эффектом присутствия принято понимать такое восприятие системы пользователем, при котором он перестает осознавать, что работает на компьютере, а не участвует в реальном процессе. Для достижения подобного эффекта необходимо, чтобы на экране были отображены подробности окружающего мира. Поэтому при разработке систем ВР уделяется большое внимание задачам, связанным с моделированием природных явлений и объектов. Трудность их моделирования с одной стороны заключается в сложности самих явлении, а с другой стороны в том, что у пользователя есть свой сформировавшийся образ, и расхождение изображения на экране с этим образом может привести к потере эффекта присутствия. Поэтому, в дальнейшем, говоря о качественном изображении явления, полученном в результате работы того или иного алгоритма, мы будем иметь в виду то, что это изображение является вполне достоверным с точки зрения экспертов и пользователей продуктов, использующих эти алгоритмы [1]. Будем называть такое изображение визуально похожий на само явление.

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

На заре моделирования природных явлений, из-за низкой производительности оборудования, в основном использовались методы направленные на имитацию явления. Такие методы используют не физические модели, а эмпирически подобранные алгоритмы, целью которых является достижение правдоподобности (или визуальной похожести) получаемого изображения1. Однако эти алгоритмы имеют один общий недостаток - большое количество параметров, которые необходимо эмпирически подбирать, что обычно оказывается весьма трудоемким процессом. Поэтому с появлением более производительных аппаратных средств в системах виртуальной реальности все чаще стали использоваться достаточно точные физические модели, которые не нуждаются в подборе параметров. Эти модели обычно приходят из области неинтерактивиой графики, где используются для построения фотореалистичных изображений. Такая тенденция сохраняется до сих пор. Однако в тех случаях, когда использование физических моделей приводит к чересчур трудоемким вычислениям, по-прежнему используются имитационные методы.

Для получения визуально похожего изображения водной поверхности необходимо моделировать как геометрию поверхности, так и оптические явления, происходящие на границе и в толще воды. Моделирование геометрии водной поверхности в системах ВР в основном представлено имитационными или подобными им методами. Использование точных физических моделей ограничивается их высокой сложностью. Из таких моделей в современных системах ВР используются только стохастический подход, впервые опубликованный Тессендорфом [3].

В области моделирования оптических явлений существует только одна известная автору работа [4], предлагающая методы, пригодные для использования в системах ВР. Однако в связи с тем, что она не рассматривает распространение света в толще воды, изображение, получаемое этими методами, не является визуально похожим па реальную водную поверхность.

Поэтому для моделирования водной поверхности в системах ВР требуются новые методы и алгоритмы, которые бы позволяли получать визуально похожее изображение и удовлетворяли бы поставленным требованиям к быстродействию. Для этого ставится задача сделать очередной шаг в сторону использования физических моделей, так как это позволит сделать изображение более реалистичным и уменьшит трудоемкость подбора параметров в сравЕїеиии с существующими методами.

Результаты работы были частично использованы при разработке нескольких систем ВР. Приведенный в работе алгоритм построения сетки был применен при разработке судового тренажера, который используется для обучения капитанов вхождению в Таллиннский порт. Для расчета геометрии водной поверхности в этом тренажере применялся стохастический метод, использованный в данной работе. Разработанная модель оптических явлений была использована при создании компьютерной игры "Wakeboarding".

Результаты работы были доложены на международных научных конференциях "Nondestructive Testing and Computer Simulations in Science and Engineering (St-Petersburg)" в 2002, 2003 годах; "Graphicon" (Москва) в 2003 и 2004 годах; научной конференции "Формирование технической политики инновационных наукоемких технологий" (Санкт-Петербург) в 2003 и 2004 годах.

По результатам проведенных исследований в открытой печати было опубликовано 7 статей.

Диссертационная работа состоит из 7 разделов. Первым разделом является настоящее введение. Во втором разделе раскрываются основные понятия, связанные с системами ВР, дается описание ограничений и особенностей, обусловленных современной аппаратной базой.

Моделирование водной поверхности состоит из двух частей: моделирования формы (или геометрии) водной поверхности и моделирования оптических явлений, происходящих на поверхности воды и в ее толще. Очевидно, что для получения визуально похожего изображения водной поверхности необходимо рассматривать обе части явления.

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

В пятом разделе производится построение моделей оптических явлений, включая модель распространения светового излучения в толще воды и модель человеческого зрения. Рассматривается возможность модификации полученной модели для применения ее в системах реального времени. В шестом разделе описывается визуализация водной поверхности с учетом построенной модели оптических явлений. Разрабатываются методы имитации ряби. Приводятся результаты работы методов.

В заключении формулируются основные результаты диссертационной работы.

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

Использование современной аппаратной базы в системах виртуальной реальности

Исторически первой аппаратной базой для систем виртуальной реальности были так называемые графические станции - специальные высокопроизводительные компьютеры, созданные для графических приложений. Однако они имели весьма существенный недостаток - высокую стоимость. С появлением дешевых графических акселераторов и их дальнейшей эволюцией значимость графических станций сошла на нет.

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

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

Более того, современные графические процессоры, реализующие графический конвейер [6], состоят из двух основных блоков, также работающих параллельно: вершинного и пиксельного конвейеров. Вершинный конвейер обычно отвечает за перевод вершины в проекционную систему координат, проецирование в экранную систему координат, вычисление освещения, генерацию текстурных координат и так далее. Пиксельный конвейер отвечает за выборку цветов из текстур, расчет результирующего цвета пикселя с использованием выбранных из текстур цветов и данных, пришедших с растеризации треугольника. Также он отвечает за тест z-буфера, смешивание результирующего цвета пикселя с пикселем в буфере кадра и др. [б]. Современные графические процессоры имеют программируемый вершинный конвейер и ту часть пиксельного конвейера, которая отвечает за вычисление цвета пикселя. Программирование осуществляется с помощью так называемых шейдеров (от англ. shader) - специальных программ. Вершинный и пиксельный процессоры имеют различный набор векторных инструкций (инструкции работают с вектором из четырех компонент). Однако, в силу специализации процессоров, их количество весьма невелико в сравнении с количеством инструкций центрального процессора. Это приводит к принципиальной невозможности использования сложных шейдеров. Например, циклы и условные операторы появились только в самых последних версиях вершинных процессоров, но их использование сильно снижает производительность.

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

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

Примером данного подхода является реализация так называемой модели освещения с двунаправленной функцией распределения отражения (BRDF3 модели) [7, 8, 6]. Эта функция 7(1, е) показывает, какая часть энергии, пришедшей от источника с направления 1, будет отражена в направлении е (см. рис. 2.2).

Функция 7(1,е) характеризует отражающие свойства материала и используется в системах виртуальной реальности для фотореалистичного моделирования поверхностей. Она задается формулой, определяемой моделью материала, или получается с помощью экспериментального измерения свойств материала и хранится в виде таблиц. Как правило, формула оказывается слишком сложна для того, чтобы использовать ее в пиксельном шейдере, поэтому функция (1,е) дискрстизируется и помещается в таблицу так же. как это делается для экспериментальных данных. Однако в общем случае эта таблица четырехмерна и не может храниться в виде текстуры. Чтобы использовать текстуры для хранения p(l,e), применяется разложение вида [7] (i,e) = f;(i)G,(e), (2.2.1) в котором берутся первые несколько членов. Обычно один или два. Функции Ft(\) и G,(с)помещаются в виде таблиц в специальные кубические текстуры [6]. Это текстуры, содержащие шесть подтекстур - граней куба (см. рис. 2.3). Для таких текстур в качестве текстурных координат выступает вектор. Расчет векторов I и е производится в вершинном шейдере, после чего они передаются в пиксельный шейдер. В пиксельном шейдере версии 2.0 можно рассчитать два члена суммы, в шейдере версии 3.0 - четыре.

Разностная схема расщепления вектора потоков (одна пространственная переменная)

Эта схема, построенная для решения уравнений газовой динамики в работе [43], по-видимому, является новой для уравнений мелкой воды. Дело в том, что она использует одно частное свойство уравнений газовой динамики, несправедливое для уравнений мелкой воды. Однако если расширить систему уравнений мелкой воды, включив в нее уравнение энергии, упомянутое свойство будет выполнено для расширенной системы. Тогда для нее можно построить схему расщепления вектора потоков (РВП) так же как это делается для уравнений газовой динамики, а затем отбросить лишнее уравнение.

Перейдем к выполнению намеченной программы. Недостатком построенной в предыдущем пункте схемы расщепления матрицы коэффициентов является ее неконсервативность. В то время как исходные дифференциальные уравнения отражают законы сохранения массы и количества движения жидкости, их разностный аналог (3.4.3) таким свойством не обладает. Для того чтобы построить консервативную разностную схему, следует отталкиваться от дивергентной формы записи исходных уравнений (3.2.9).

Для того чтобы была максимально понятна суть проводимых далее построений, целесообразно вначале рассмотреть уравнения с одной пространственной неременной. Дивергентная форма записи (3.2.9) в случае одной пространственной переменной имеет следующий покомпонентный вид дН дНи + = 0 (3.5.1) dt дх dh м

Введем новую зависимую переменную М=Ни - удельный поток массы, и обозначим через р - вектор неизвестных, через F - вектор потоков. Будем иметь (3.5.2) F = р = м Ни $-Н2 + Ни2 и Ни Вычислим матрицу Якоби др{НуМ) еН г 2— 5 Н2 Н)

Для вектора потоков в уравнениях газовой динамики справедливо равенство F(Ap) = AF(p) (к-любое число), (3.5.3) которое означает, что F является однородной вектор-функцией первой степени от своих аргументов. По теореме Эйлера об однородных функциях это приводит к соотношению F = Ap, (3.5.4) на котором основаны построения в основополагающей работе [43]. Легко видеть, что в данном случае свойство (3.5.3) не выполняется. Сравним разностную схему (3.5.13) со схемой, построенной методом конечных объемов. Запишем закон сохранения, соответствующий системе (3.5.1), на отрезке і = іхі-і/2 хі+і/г\ Jt Jl»A + F(tW-F_w = j№ Здесь величины ltlj2 определяют потоки через границы рассматриваемого отрезка. Полагая р = р, = const на Clh будем иметь ft+yfovj-O- - (З-518) Возникает вопрос, как вычислять потоки itlf2. Сравнивая (3.5.13) с (3.5.18), заключаем, что обе схемы совпадут, если в последней положить F,+,/;(P, P,J=F+(P F ,J. F (pMfft)-r(p )+r(pf), (3.5.19) где компоненты F вычисляются по формулам (3.5.14)-(3.5.17) вточках xltl/2.

Представление потоков в виде (3.5.19) имеет наглядный физический смысл. Рассмотрим для определенности поток Fl+/„ через границу хмр . В эту точку приходят характеристики из области Q,, соответствующие положительным собственным числам, и из Q/+/, соответствующие отрицательным собственным числам. Следовательно, поток FM/2 складывается из потока F (p,), приходящего из области С1, (где р = р, ) и определяемого положительными собственными числами, и потока F"(plW) , приходящего из области Qi+/ (где р = р/+; ) и определяемого отрицательными собственными числами.

Сравним введенный способ вычисления потоков с другими методами. Так как решение в пределах ячейки Q, предполагается постоянным, то на границах оно испытывает разрыв. Следовательно, здесь можно использовать решение задачи о распаде разрыва. Такие решения разработаны для уравнений мелкой воды по аналогии с уравнениями газовой динамики [39]. Так как точное решение соответствующей задачи достаточно трудоемко, были предложены различные приближенные методы, среди которых наиболее употребительным является метод Роу [49]. Более простым является метод линеаризации Куранта-Изаксона-Риса [50], построенный на основе точного решения линейной задачи. В нем потоки вычисляются по формулам Г,.,/; = - + \A[tl/1 2lZ L, А = L- \A\L , Л = diaS(\ t\Y

В методе Лакса-Фридрихса [52] эти формулы еще более упрощаются путем замены матрицы Л на диагональную матрицу А = тахЛ Е, где Е - единичная матрица. Последние два метода, хотя и являются достаточно простыми, не обеспечивают выполнения условий на разрывах и правильной скорости их распространения.

Гак как в данной работе при построении расщепления векторов потоков используется дивергентная форма записи уравнений, то при использовании формул (3.5.19) выполняются условия на разрыве и правильно передается скорость их распространения. Кроме того вычисления по этим формулам более просты, чем по методу Роу, что является предпочтительным с точки зрения использования их в системах виртуальной реальности.

Существующие методы построения треугольной сетки

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

Существуют демонстрационные программы, которые представляют те или иные технологии визуализации (например, NVidea TLWater demo6) или различные методы создания водной поверхности (например, демонстрационный продукт, созданный Ченом7), в которых эта поверхность ограничена стенками бассейна. Естественно, что для таких демонстрационных программ или для приложений, не являющихся сложными системами ВР, достаточно простой равномерной сетки, не требующей большого времени на построение.

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

Рассмотрим общие принципы работы подобных алгоритмов. В качестве источника информации о ландшафте обычно выступает карта высот. Целью алгоритма является локальное динамическое перестроение треугольной сетки с целью обеспечения с одной стороны минимально возможного количества треугольников, с другой стороны обеспечения выполнения условия где Q - некоторая метрика метода, определяющая качество триангуляции Т для текущего положения камеры и карты высот; с- заданная точность.

Существует множество таких методов, среди которых основными являются: прогрессивная треугольная сетка (progressive mesh) [59,60], квадратичное дерево (quadtree) [61], треугольная сетка, оптимально адаптирующаяся в реальном времени (ROAM - Realime Optimally Adapting Meshes) [62,63,64], методы подразбиения поверхностей (subdivision surfaces) [65], использование поверхностей Бсзьс [66].

Первый метод - прогрессивная треугольная сетка - используется только для статических ландшафтов, поэтому к нашей задаче не применим.

Часто встречающимся методом является квадратичное дерево. В этом методе ландшафт представляется в виде квадратов (рис. 4.3), для каждого из которых происходит рекурсивное подразбиение до тех пор, пока не выполнится (4.2.1). Алгоритм успешно решает проблемы стыковки соседних треугольников и участков поверхности.

Алгоритм ROAM похож на предыдущий алгоритм. Для представления ландшафта в нем используются квадратные участки поверхности, которые в свою очередь представляются двумя бинарными деревьями, листьями которых являются треугольники. Этот алгоритм также решает проблемы, связанные с необходимостью деления соседних треугольников, и проблемы стыковки участков поверхности. В работе [63] заявлено, что он достаточно легко модифицируется под случай динамической карты высот (например, водной поверхности).

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

Таким образом, для поставленной задачи могут подходить только ROAM-алгоритм или квадратичное дерево. В работе [64] приведены данные о времени, необходимом для поддержания треугольной сетки с помощью ROAM-алгоритма.

Для процессора Intel Pentum III - 600 MHz, поддержание сетки из 2000 треугольников обходится в 12.7 мс/кадр. В пересчете для персонального компьютера, заявленного во введении и 10000 треугольников (приблизительно столько нужно для качественного отображения поверхности), это будут все те же 12.7 мс/кадр. При временном бюджете в 8 мс/кадр, отводимом на водную поверхность, использование такого алгоритма не представляется возможным.

Работа [61] не дает никаких оснований полагать, что алгоритм квадратичного дерева окажется заметно (хотя бы в два раза) быстрее ROAM. Следовательно, его использование в наших целях также неприемлемо.

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

Условно, в целях иллюстрации, разделим метрику Q на два слагаемых: Q\ и Qi зависящих от расстояния до камеры и от карты высот соответственно. На различных участках ландшафта значение Q2 может сильно отличаться. Для триангуляции горного массива с большим количеством складок требуется больше треугольников, чем для равнины. В этом смысле водная поверхность (быть может, за исключением одиночной волны) имеет более однородную структуру, следовательно, количество треугольников для представления различных участков различается мало, и составляющая Qi практически меняется. Таким образом, свойство адаптации к карте высот описанных методов является излишним для пашей задачи.

Это наталкивает на мысль, что треугольную сетку можно построить предварительно с учетом уровней детализации. Рассмотрим подобный подход.

Вокруг проекции позиции камеры на плоскость XZ (плоскость спокойной водной поверхности) создается сетка с фиксированной структурой (см. рис. 4.4). При движении камеры, сетка, не претерпевая структурных изменений, перемещается вместе с ней. Возвышение водной поверхности в вершинах вычисляется по текущей позиции вершины. Таким образом, вокруг камеры постоянно присутствует водная поверхность. При этом для той части сцепы, которая отбрасывается по даіьности, не хранится никакой информации и не производится никаких расчетов. Для того чтобы упростить вычисления в вершинах, минимальный шаг сетки делается равным шагу карты высот (будем считать, что карта высот задана на всей плоскости XZ).

Аппроксимация светового поля для случая неоднородного дна

Полученная модель содержит ряд параметров, значения которых необходимо знать для того, чтобы вычислить Upwcii и botiom- Данный параграф посвящен методам расчета этих параметров.

1) Расчет Е и jif Суммарная освещенность площадки на уровне моря дается формулой [70] EQ(Aj) = S0(A)cosie{A)scci, (5.2.15) где о(Л) - спектральная плотность энергии солнечного излучения на верхней границе атмосферы, т(Я) - спектральная оптическая толщина атмосферы в вертикальном направлении. В настоящей работе были использованы данные, приведенные в [70, табл. 10.1 и 10.2]. Спектральная оптическая толщина атмосферы рассчитывалась с помощью "стандартной модели", описанной там же.

Для выделения из суммарной освещенности вклада неба использовались данные о коэффициенте (Л,/), приведенные в работах [69, рис. 29] и [70, рис. 10.3].

Так как облачность не оказывает заметного влияния на спектр излучения, то для ее учета можно ввести коэффициент Сс/, не зависящий от А. и изменяющийся в интервале [0, 1]. Данные и модели, позволяющие оценить этот коэффициент, также приведены в [70].

Таким образом искомые параметры вычисляются по формуле

2) Моделирование различных типов воды (коэффициенты у и с) При создании сцен для систем ВР коэффициенты % и а неизвестны. В таких случаях следует брать значения измеренных X и а для схожего типа воды или моделировать состав воды из известных частей. В настоящей работе применяется второй подход, и используются данные по влиянию фитопланктона и некоторых типов взвешенных частиц на коэффициенты рассеяния и поглощения, приведенные в работе [79]. Это позволяет, зная свойства оптически чистой морской воды" [70), получать различные типы воды - от чистой океанской с преобладанием фитопланктона (тип 1) до загрязненной прибрежной с преобладанием неорганических частиц (тип 2 ). Графики соответствующих спектральных коэффициентов приведены на рис. 5.4.

3) Определение коэффициента Коэффициент Х\ — первый коэффициент в разложении нормированной индикатрисы у(в) по полиномам Лежандра. Выражение для него запишется так ж X ljyfflCOSede. (5.2.16) о Чтобы лучше понять смысл этого коэффициента, приведем его к виду Xt-i /2 ]r(0)cosed0 \r(0))cose\de =\(ХМ-ХШ). (5.2.17) о %

Фактически коэффициент Х\ характеризует разницу между нормированным коэффициентом рассеяния вперед и коэффициентом рассеяния назад. Например, для индикатрисы релеевского рассеяния Х\ 0 [70]. Для сильно вытянутых индикатрис рассеяния морской воды он будет близок к 1.5. Например, для индикатрисы, приведенной в [80, рис. 15.30], Х\ = 1.496.

Часто в качестве результата измерения фигурирует коэффициент обратного рассеяния ov Зная его и общий коэффициент рассеяния сг, можно получить Х\ по формуле сг Например, по данным для Средиземного моря [81] Х\ можно во многих случаях принять равным 1.466. 4) Расчет коэффициентов отражения и пропускания

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

Так как зависимость коэффициента преломления от длины волны слаба, то будем считать, что коэффициенты отражения и пропускания не зависят от X.

Для случая направленного излучения при отсутствии волнения коэффициент пропускания Т = \ — F{i). При учете волнения можно пользоваться различными моделями шероховатой поверхности (например, описанной в [6]). В данной работе такая модель не нужна, так как мы уже имеем взволнованную поверхность. полученную стохастическим методом, и можем использовать ее для расчета коэффициентов.

Вычисление коэффициента Т& тесно связано с вычислением коэффициента Td/. Если Td - коэффициент пропускания для направленного света - вычисляется по формуле тм=і - ZZF(arccos( vs ) е-2-18) то Td=Tdj+Tdf.

Фактически, необходимо определить, какая часть направленного светового потока переходит в рассеянный при пересечении границы воздух-вода. При этом будем полагать, что направленный свет остается таковым, если отклонение от направления распространения при отсутствии волнения составляет не более 8. Тогда с . (5.2.19) l-F(arccos(n s)), если t(ti,s)»t(nMs) cosd О, иначе где п, - нормаль для спокойной воды.

Для рассматриваемого случая, когда дно является Ламбертовым отражателем, коэффициенты TJJ и Tdj не нужны, так как направленное излучение от дна не отражается, и, следовательно, не доходит до поверхности.

Похожие диссертации на Методы и алгоритмы компьютерной графики для моделирования водной поверхности в системах виртуальной реальности