Программирование ландшафтной геометрии в D3DX. Рассеяние света на объективе

Программирование ландшафтной геометрии в D3DX. Рассеяние света на объективе

31.08.2019 Off By toolscraftMaster

Если обычную камеру направить в сторону источника света, вторичные отражения лучей в ее оптике могут создать эффект светорассеяния на объективе. Его проявления — полупрозрачные фантомные образы и яркие пятна, которые образуются на снятом камерой изображении. В реальной фотографии это часто считают неприятным явлением. В видеоиграх такой эффект служит деталью, нередко используемой для имитации снимков, сделанных на открытом пространстве. Но даже несмотря на то, что эффектом рассеяния света на объективе часто злоупотребляют, его вклад в придание реалистичности созданным изображениям нельзя сбрасывать со счетов.
В практике фотографии светорассеяние на объективе возникает, когда яркие лучи источника света падают прямо на линзу камеры. В этих случаях противоотражательное покрытие линз не справляется с ярким светом, и тот начинает свое «блуждание» по объективу. Вторичные отражения, вызванные источником света, обнаруживают себя в виде ореола и геометрических образов. Впрочем, нечто столь же хаотичное можно легко смоделировать и в 2D-пространстве.
Не все случаи светорассеяния ведут себя одинаково. В большинстве ситуаций положение линз в камере таково, что создает эффект светорассеяния как набор бликов, расположенных по прямой линии. Эта линия, проходящая через центр линзы, соединяет точку проекции источника света с точкой его инверсного положения. Это равносильно линии, проведенной из места расположения источника света на экране в его центр.
Остается определить размер и положение бликов, которые образуются под действием эффекта светорассеяния. Первый блик построить проще всего. Переизбыток блуждающих по камере лучей света создает точно в центре источника света ореол, вспышку или пятно ярко-белого света. На языке фотографии это явление сродни переэкспонированию пленки в точке, на которую проецируется источник. Вне зависимости от его цвета ореол часто имеет чрезмерную яркость и становится белым, хотя вдоль каждого из образованных им лучей он слабеет и принимает истинный цвет источника.
Остальные блики зависят от расстояния между линзами камеры, количества имеющихся в ней апертур и всевозможных эффектов призматического характера, возникающих на краях каждой линзы. Свою роль играет и тип пленки, определяющий цветовой сдвиг рассеяния света на объективе. Кроме того, видеокамеры обладают своим собственным, характерным для них светорассеянием, часто образуя красные или синие горизонтальные полосы. В итоге каждая камера имеет бессчетное число возможных причин рассеивать свет, и пытаться реалистично смоделировать их было бы ненужным бременем.
Вместо попытки смоделировать реальные многократные отражения лучей света при прохождении через линзы, можно построить правдоподобную модель рассеяния света, пользуясь абсолютно понятными наблюдениями. Для получения эффекта рассеяния света на объективе необходимо воспользоваться набором бликов и форм, что позволит просто выбрать местоположение и цвет источника света, которые являются параметрами указанного эффекта.
Создайте ряд текстур с бликами часто встречающихся артефактов светорассеяния. Это полупрозрачные изображения, использующие альфа-канал для управления своей непрозрачностью на экране. Эффект рассеяния света возникает непосредственно на экране, поэтому для получения окончательного изображения вы можете просто смешать эти блики со своей сценой. К числу текстур светорассеяния относятся вспышки, принимающие форму звезд, кругов и восьмиугольников.