netlib.narod.ru< Назад | Оглавление | Далее >

Что такое марево?

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

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

Замечали ли вы явление, возникающее, когда вы помещаете соломинку в стакан с водой? Если вы сбоку посмотрите на границу между водой и воздухом, будет казаться будто соломинка надломлена. Другими словами, будет казаться, что находящаяся в воде часть соломинки расположена под другим углом, чем часть, находящаяся в воздухе. Этот визуальный эффект происходит из-за физического явления, называемого преломлением. Фактически при переходе из одной среды в другую, с другой плотностью, лучи света меняют направление. Это показано на рис. 7.1.


Рис. 7.1. Что происходит, когда луч света переходит из одной среды с одной плотностью в другую среду с другой плотностью

Рис. 7.1. Что происходит, когда луч света переходит из одной среды с одной плотностью в другую среду с другой плотностью


Зная плотности обоих материалов, вы можете вычислить, как будет меняться направление лучей света. Для вычисления нового направления лучей света можно использовать закон Снеллиуса, показанный на рис. 7.2. Также обратите внимание, что в HLSL есть встроенная функция refract, вычисляющая новое направление светового луча на основе направления исходного луча, нормали поверхности и плотностей сред. Фактически, при соответствующих условиях, направлении лучей и угле поверхности среда из-за преломления может стать отражающей.


Рис. 7.2. Формулы, которые можно использовать для вычисления преломления

Рис. 7.2. Формулы, которые можно использовать для вычисления преломления на основании направления исходного луча, нормали поверхности и плотностей сред. Эти формулы известны как закон Снеллиуса


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

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

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


Рис. 7.3. Диаграмма, показывающая процесс возникновения марева над нагретым тротуаром

Рис. 7.3. Диаграмма, показывающая процесс возникновения марева над нагретым тротуаром


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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz