Физически обоснованная модель распространения света в ткани и ее валидация
|
Рис. 1. Структура переплетения нитей в модели и
в реальной ткани |
Рис. 2. Структура нити и схема рассеяния в ней
света |
Было сделано
предположение, что объем нити является рассеивающей свет средой, что
подтверждается исследованиями волокон, проведенными в ряде работ в области
текстильного материаловедения [11, 12]. Это означает, что внутри нити
показатель преломления среды не является постоянным. Была определена модель, в
которой объем нити заполнен основной средой с показателем преломления равным
усредненному показателю преломления хлопковых волокон (n = 1.557), и в основной среде
распределены сферические частицы, обладающие показателем преломления, отличным
от основного. Такая структура нити показана на рис. 2.
Для расчетов
нить была представлена в виде цилиндра, основанием которого является круг. В
модели образца ткани нити были представлены полигональными сетками.
Пусть участок
нити освещен параллельным светом, приходящим с некоторого направления. Часть
этого света, в соответствии с уравнениями Френеля, попадает внутрь нити. Свет,
попавший в нить, частично рассеивается, частично поглощается в ее объеме, и
выходит на поверхность нити в разных направлениях (рис. 2).
Описанный
процесс моделировался с помощью метода Монте-Карло трассировки лучей. Для
небольшого участка нити испускались индивидуальные лучи в направлении ее объема
с конечного набора входных направлений (всего 144 разных направления). Каждый
луч обладал некоторой энергией, представленной в виде спектрограммы –
распределения энергии по набору длин волн. В соответствии с параметрами
рассеивающей среды, представляющей объем нити, каждый из лучей либо поглощался
в среде, либо выходил на поверхность нити в результате рассеяния. Для каждого
из вышедших лучей регистрировалась точка и направления его выхода на
дифференциальной пространственной и угловой сетках. По окончании процесса
моделирования была получена картина рассеяния света по объему нити для всех
направлений падения света.
В компьютерной графике при необходимости
определить поверхность, которая обладает сложным поведением в части отражения
света, принято использовать ДФО. В соответствии с определением [6], для
направления падения света dwin и направления
наблюдения dwout ДФО (BRDF) для поверхности dA есть:
Т.е. ДФО
показывает отношение яркости dA в направлении dwout к освещенности, приходящей на dA с направления dwin.
Поскольку в данной работе
рассматривается не только поверхностное отражение света, но и его объемное
рассеяние, имеет смысл определить ФВР (см. рис. 3(а, б) и рис. 4(а, б)).
Определим ФВР (BSSRDF) следующим образом [6].
Пусть на поверхность dA падает свет с направления dwin. Тогда:
Т.е. ФВР
показывает отношение яркости поверхности dB в направлении dwout к потоку, приходящему на dA с dwin.
Подразумевается, что яркость поверхности dB создана только
потоком dF, приходящим на dA, и является результатом рассеяния света в нити.
Если известна ФВР для поверхностей dA из некоторой окрестности dB, то можно
вычислить ДФО для dB путем
интегрирования ФВР по этой окрестности [6].
ДФО есть:
В собственном решении ФВР была
рассчитана следующим образом. Как уже упоминалось выше, для моделирования
распространения света внутри нити в работе используется метод Монте-Карло
трассировки лучей. Для небольшого участка нити испускались лучи в направлении
ее объема, точки и направления выхода лучей на поверхность нити
регистрировались на пространственной и угловой сетках (см. рис. 5(а)).
После окончания моделирования
распространения света в нити, можно вычислить ФВР для каждой ячейки dB и для всех телесных углов dwin, dwout следующим образом:
где Fout есть сумма энергий всех лучей, вышедших
в направлении dwout из ячейки dB, Fin – сумма всех энергий лучей, приходящих
на dA с направления dwin, thetaout– направление
выхода лучей, определяемое dwout. Далее значение
функции переводилось из спектрального представления в представление RGB.
Необходимо отметить важное свойство расcчитанной ФВР
нити, которое позволяет рассчитать ДФО способом, приведенным в следующей главе.
Учитывая тот факт, что нить представляется цилиндром, который симметричен
относительной своей оси, ФВР, рассчитанная для одной ячейки на пространственной
сетке на поверхности нити, верна для всех ячеек сетки.
Следовательно, верно следующее:
для dA1, dA2, dB1 и dB2, определенных аналогично
продемонстрированному на рис. 5 б). Это соображение позволяет рассчитать ДФО
нити следующим способом.
ДФО точки представляет собой интеграл
ФВР по некоторой окрестности этой точки.
Для получения ДФО точек нити был
предложен следующий способ интегрирования ФВР по поверхности нити.
Подразумевается, что моделируемая ткань освещена параллельным светом.
Приближением интеграла ФВР по всей
поверхности нити будет сумма (см. рис. 5(в)):
где
1.
thetain– угол между направлением падения света и нормалью к dA
2.
cos(thetain) необходим для того, чтобы учесть изменение величины
потока света, падающего на dA под углом thetain с нормалью к ее поверхности. > 0
f(thetaini) контролирует, что
расчет производится только для тех dAi, которые напрямую освещены светом от источника.
В результате описанных вычислений была
получена ДФО, описывающая, каким образом нить отражает попадающий на нее свет.
Стоит отметить, что полученная ДФО
определена для всех возможных направлений падения света, а не только для тех,
что принадлежат положительной полусфере (т.е. для тех направлений, которые
составляют острый угол с нормалью к поверхности нити). Это объясняется тем, что
при рассеянии света в нити, лучи могут выйти в любой точке на ее поверхности, в
том числе и с обратной стороны (см. рис. 5(г)). Таким образом, ФВР определена
на всей поверхности нити, что позволяет вычислить ДФО для положительных и
отрицательных направлений падения света относительно поверхности.
Рис 3. а)
ДФО Рис 6. б) ФВР |
Рис 4. а) ДФО Рис 4. б) ФВР |
Рис.
5. а) Рассеяние света, падающего на dA по поверхности нити на dBi |
Рис 5. б) Если освещаемая ячейка «сдвигается» вдоль
нити и/или «поврачивается» вокруг ее центра, то вся ДФО также «сдвигается»
и/или «поворачивается» |
||
Рис.
5. в) Интегрирование ФВР по окрестности dB для получения ДФО |
Рис. 5. г) Падение пучка
параллельного света на нить |
При визуализации
ткани полученная ДФО использовалась для определения диффузной составляющей
цвета точки нити, а зеркальная составляющая рассчитывалась по методу,
предложенному Куком и Торрансом в соответствии с реализацией Блинна [7, 8]. В
нашей модели зеркальная составляющая цвета точки определяется, исходя из
расположения нормали образца ткани, а не нити. На рис. 7 представлены несколько
иллюстраций, демонстрирующих полученные результаты.
На следующем
этапе был разработан механизм валидации реализованной модели относительно
данных о рассеянии света реальной тканью.
Для целей
валидации модели ткани были произведены измерения светорассеивающих свойств
образца ткани из красного хлопка на измерительной установке, разработанной
нашим коллективом [9].
Образец ткани
освещался почти параллельным пучком монохроматического света. Измерения были
проведены для длин волн падающего света в пределах 390 - 730 нм, с шагом в 10 нм. Энергия света,
рассеиваемого образцом, регистрировалась для некоторого множества выходных
направлений.
Далее для
измеряемого образца расcчитывались показатели яркости, т.е. вычислялось
отношение яркости образца по регистрируемому направлению отражения света к
яркости идеально диффузного образца при тех же условиях освещения. Полученные
данные из спектрального представления переводились в представление RGB и сохранялись в
файле специального формата. Показатель яркости прямо пропорционален энергии
света, отраженного образцом измеряемой ткани в заданном направлении, и обратно
пропорционален косинусу угла отражения.
Для проведения
сравнения картин рассеяния света моделью и реальной тканью необходимо было
получить данные для модели, аналогичные измеренному показателю яркости реальной
ткани. Для этого, прежде всего, было необходимо создать трехмерную модель
образца ткани и задать для нитей в модели рассчитанные оптические свойства.
Далее
производились следующие вычисления: [10]:
1.
Выбиралось некоторое сечение из множества измеренных данных (иными словами
выбиралось определенное направление падения параллельного пучка света и
множество направлений наблюдения).
2.
В сцене с моделью ткани устанавливался источник параллельного белого света
с направлением, равным выбранному на предыдущем шаге.
3.
Для каждого из выбранных направлений наблюдений устанавливалась камера и
производилась визуализация ткани.
4.
Значения пикселов, принадлежащих ткани, суммировались.
5.
Полученные суммы компонент RGB делились на косинус угла
отражения. Рассчитанные таким образом величины B соответствовали яркости образца ткани в заданном направлении наблюдения.
Физическая величина яркости прямо пропорциональна энергии, отраженной образцом
в заданном направлении и обратно пропорциональна косинусу угла отражения. Таким
образом, полученные величины B можно было корректно
сравнить с полученными для реальной ткани показателями яркости.
6.
Каждая величина B нормировалась следующим
образом. Значение B для модели ткани при
нормальном падении и отражении света приравнивалось к соответствующему
измеренному значению показателя яркости. Рассчитывался коэффициент
соответствия, на который домножались все остальные значения сумм.
В итоге было
возможно провести сравнение картин рассеяния света разработанной моделью и
образцом реальной ткани.
Ниже представлены
графики 1–3 рассеяния света моделью ткани (сплошная кривая) и реальным образцом
(пунктирная кривая) в плоскости падения света. На всех графиках по оси абсцисс
отложены направления отражения света. На графиках представлены значения для
углов в пределах от -60 до 70 градусов. Отрицательные значения соответсвуют
направлениям, которые лежат по ту же сторону от нормали к поверхности, что и
направления освещения; положительные – по ту же сторону, что и направления
зеркального отражения. 0 на графиках соответсвует направлению нормали. По оси
ординат отложены показатели яркости.
Можно видеть, что рассеяние света
моделью и реальной тканью имеет качественное совпадение.
Для сравнения добавим в графики (4–6)
классическую модель расчета яркости точки, полученную следующим образом:
·
Диффузная составляющая
устанавливается в соответствии с законом Ламберта
·
Зеркальная составляющая
вычисляется по методу Кука и Торранса в соответствии с реализацией,
предложенной Блинном. Зеркальная составляющая вычисляется относительно нормали
к поверхности ткани.
График 1. Рассеяние света
моделью и реальной тканью при угле падения света 0˚ с нормалью |
График 2. Рассеяние света
моделью и реальной тканью при угле падения света 30˚ с нормалью |
График 3. Рассеяние света
моделью и реальной тканью при угле падения света 60˚ с нормалью |
График 4. Рассеяние света
классической моделью, разработанной моделью и реальной тканью при угле
падения света 0˚ с
нормалью |
График 5. Рассеяние света
классической моделью, разработанной моделью и реальной тканью при угле
падения света 30˚ с
нормалью |
График 6. Рассеяние света
классической моделью, разработанной моделью и реальной тканью при угле
падения света 60˚ с
нормалью |
Можно видеть, что реализованная модель
улучшает соответствие картин рассеяния света по сравнению с классической
моделью.
Кроме
качественного совпадения графиков рассеяния света удалось добиться
определенного соответствия в части моделирования цвета ткани при разных
условиях освещения.
На рис. 6 приведена
фотография красной хлопковой ткани, освещенной дневным светом с внешней и
внутренней сторон. Цвет ткани меняется от более фиолетового при освещении с
внешней стороны к темно красному при освещении с внутренней.
Аналогичные
результаты были достигнуты и для нашей модели. На рис. 7(a) приведена
смоделированная ткань, освещенная с внешней стороны, на рис. 7(б) – с
внутренней. Модель адекватно передает цветовой баланс реальной ткани.
Рис 6. а) Фотография реальной ткани, освещенной с внешней
стороны |
Рис 6. б) Фотография реальной ткани, освещенной с
внутренней стороны |
Рис 7. а) Модель ткани, освещенной с внешней стороны |
Рис 7. б) Модель ткани, освещенной с внутренней стороны |
В дополнение к
визуальному сравнению цвета ткани, освещенной с разных сторон, было проведено
сравнение компонент красного, синего и зеленого цветов реальной ткани и модели.
Были вычислены отношения BLUE/RED и GREEN/RED для реального
образца и модели при нормальном
освещении. Эти данные приведены в Таблице 1.
|
BLUE/RED |
GREEN/RED |
Реальная ткань |
0.08 |
0.011 |
Модель |
Порядка 0.05 -
0.25 В зависимости от параметров среды рассеяния нити |
Порядка
0.001 - 0.017 В зависимости от параметров среды рассеяния нити |
Таблица
1. Соотношение красной, зеленой и синей компонент в реальной ткани и модели
Основными параметрами настройки модели
являются характеристики рассеивающей среды, представляющей собой нити. Эти
характеристики включают в себя:
1. Показатель
преломления основной среды, в которой распределены рассеивающие частицы
2. Показатель
преломления рассеивающих частиц
3. Размер
рассеивающих частиц
4. Концентрация
частиц в объеме нити
В зависимости от баланса выбранных
значений параметров, модель демонстрирует разное поведение. Мы старались
максимально опираться на данные о реальных рассеивающих средах, которые
представляют собой волокна. Например, известно, что хлопковые нити состоят не
только из целлюлозы, но содержат в себе до 12% воска, пектина и минеральных
образований.
Кривые, приведенные на графиках 1-6,
были рассчитаны для среды со следующими характеристиками:
1. Показатель
преломления основной среды – 1.557
2. Показатель
преломления рассеивающих частиц – 1.61
3. Размер
рассеивающих частиц – 150 нм
4. Концентрация
частиц в объеме нити – 0.14
На основании предположения о том, что
нити в тканях представляют собой рассеивающую среду, был предложен новый подход
к моделированию распространения света в тканях.
В работе предложен способ получения ДФО
(BRDF) нити из ФВР (BSSRDF) путем
интегрирования ФВР по поверхности нити, представленной цилиндром. ФВР в свою
очередь получена путем моделирования рассеяния и поглощения света в среде нити
с помощью метода Монте-Карло трассировки лучей.
Разработанное решение дает адекватные
визуальные результаты в части цвета ткани при различных условиях освещения, а
также показывает качественное совпадение картин рассеяния света моделью и
образцом реальной ткани.
Данная работа имеет не только интересный
теоретический результат, но и применяется в задачах, для которых важен
физически аккуратный расчет освещенности в сцене. Единожды рассчитанная ФВР и
ДФО нити может быть использована для генерации ДФО тканей с разнообразными
переплетениями. Полученные физически-обоснованные ДФО тканей могут быть
использованы для физически точных расчетов освещенности в трехмерных сценах,
содержащих объекты, покрытые тканями. ДФО тканей могут быть использованы,
например, для расчета яркости света, попадающего в глаза водителю, находящемуся
в салоне автомобиля (например, от обшивки сидений), анализа освещенности
интерьера салона самолета и другие аналогичные задачи.
Модель была реализована на языке C++. Код
интегрирован в программный комплекс, разработанный коллективом отдела
компьютерной графики и вычислительной оптики Института прикладной математики
им. М.В. Келдыша РАН для моделирования сложных оптических явлений.
[1] H. Zhong,
Y. Xu, B. Guo and H. Shum. Realistic and Efficient Rendering of Free-Form
Knitwear. Journal of Visualization and Computer Animation, Special Issue on
Cloth Simulation, 2000.
[2] D. Baraff, A. Witkin. Large Steps in Cloth
Simulation. SIGGRAPH’98, July 19-24.
[3] M. Sattler, R. Sarlette, R. Klein:
Efficient and Realistic Visualization of Cloth. Proceedings of the Eurographics Symposium on Rendering, 2003.
[4] G.
Müller, J. Meseth, M. Sattler, R. Sarlette and R. Klein Acquisition, Synthesis and Rendering of
Bidirectional Texture Functions, EUROGRAPHICS 2004.
[5] P. Hanrahan and W. Krueger. Reflection from Layered Surfaces Due to
Subsurface Scattering. In SIGGRAPH’ 93
Conference Proceedings, California, August 1993, pp. 165–174,
[6] Andrew S. Glassner. Principles of Digital Image
Synthesis. Morgan Kaufmann Publishers, 1995, Volume 2.
[7] R.L. Cook,
K.E. Torrance. A Reflectance Model for Computer Graphics. ACM Transaction on Graphics,
Vol. 1, No. 1, January 1982, pp 7-24.
[8] J.F. Blinn. Models of Light Reflection for
computer synthesized pictures. SIGGRAPH’77, July 20-22.
[9] А.Г. Волобой, В.А. Галактионов, С.В.
Ершов, А.А. Летунов, И.С. Потемин. Аппаратно-программный комплекс для измерения
светорассеивающих свойств поверхностей. «Информационные технологии и
вычислительные системы», № 4, 2006, стр. 24–39.
[10] А.Г. Волобой,
Н.А. Лобалзо. Метод сравнения результатов оптического моделирования ткани с
физически измеренными данными. Труды научно-технического семинара «Новые
информационные технологии в автоматизированных системах», Москва, 2008.
[11] G. S. Buck, JR, F. A. McCord. Luster and Cotton. “Textile Research Journal”, 1949; 19;
715.
[12] J.W. Illingworth. The optical properties of
textile fibers. “Textile Recorder”, August, 1942, pp. 29-32.