И снова в эфире рубрика «Колхозим из спичек и желудей». В посте больше затрагивается 3D, это то, для чего я чаще использую кросс-поляризацию, так что сначала думал, в какую лигу запостить, но потом всё-таки решил, что основной смысл тут - работа с фотографиями.
На самом деле, чаще всего кросс-поляризация нужна, чтобы убрать блики, а цветные психоделические картинки – это небольшой побочный эффект (про всякие поляризационные микроскопы тут не вспоминаю). А так на вспышку прицепил поляризационную плёнку, на объектив поляризационный фильтр и одним поворотом фильтра блики делаются во много раз слабее даже при фронтальной вспышке в лицо:
Вот захотели мы сфотографировать, например, картину масляной живописи, где неровности застывшего масла бликуют. В лайт-куб большую картину не запихнуть, с длинной выдержкой снимать – любая лампа тоже будет бликовать. И тогда кросс-поляризация позволит получить "чистый" цвет, убирая зеркальные блики. То есть, мы фотографируем со вспышкой, от которой нет зеркальных бликов.
Или фотография сквозь стекло, чтобы отражение вспышки было в сотни раз слабее. Примечание. Почему-то у меня именно свет именно синего спектра убирает хуже, возможно, надо было использовать более качественную плёнку уровня “LCD grade”, но, скорее всего, это из-за фильтра на объективе, чтобы цвет неба оставался. В любом случае, при тех же настройках фотоаппарата блик от вспышки становится гораздо слабее, сравним: поляризационный фильтр стоит ровно и повёрнут на 90 градусов:
А в 3D это будет хорошо работать при получении текстур для основного цвета diffuse.
Про поляризационный фильтр для фотоаппарата многие знают, у многих он есть. Обычно его используют, чтобы притемнить синее небо или убрать блики с воды. Фото из википедии (без поляризационного фильтра и с фильтром):
Я сначала расписал всё с подробной теорией, но потом понял, что её всё равно никто не читает, так что сильно укоротил теоретическую часть, не буду грузить терминами вроде «угол Брюстера».
Начну, как обычно, издалека. Как-то решил попробовать трёхмерное сканирование по фотографиям (фотограмметрия). Дьявольская операция включала в себя фотоаппарат на штативе, китайскую кольцевую вспышку и крутящийся поднос из Икеи. А также три разогнутых скрепки, соединённых с помощью термоклеевого пистолета, в качестве подставки.
После какого-то тёмного колдовства получилась 3D модель:
Ещё в статье про фотограмметрию была ссылка на программу Dabarti Capture для получения текстур плоских объектов, которую тоже опробовал. Там нужен зеркальный или стеклянный шарик, по которому программа «видит», где был свет и строит карту высот в зависимости от яркости Работает, выдаёт карту нормалей:
Конечно, тут же попытался совместить. Гранат – 3D скан, листья – плоскости с прозрачностью и текстурами, снятыми с подобранного на улице листа.
Тряпка получилась не очень удачной, потому что не выровнял фотографии друг относительно друга. В общем, первая проба, в результате которой сделал выводы.
Главный вывод: при сканировании блестящих объектов вроде фруктов проблема: блики на текстурах мешают равномерности освещения и дают странные глюки при сшивании. Да и при съёмке текстур в Dabarti белые зеркальные блики вместо «чистого» цвета оказались некомильфо.
Понятно, что можно использовать лайткуб, чтобы «размазать» блик по всей поверхности, но это если объект небольшой. К тому же, тогда не будет мобильности. Поэтому было принято решение осваивать поляризованный свет.
То, что мы воспринимаем как цвет объекта, – это на самом деле отражения двух типов: рефлексивное (зеркальное), диффузное (рассеянное) или их смешивание в разных пропорциях.
Например, у нас есть яблоко. На него падает луч света. Часть этого света (несколько процентов) отражается зеркально. Мы видим явный блик такого же цвета, как и источник. Другая часть света попадает под поверхность, очень-очень неглубоко, но этого хватает, чтобы некоторые длины волн исчезли. А оставшийся непоглощённым свет выходит обратно и рассеивается во всех направлениях. Допустим, поверхность яблока поглотила все длины волн, кроме красной, тогда во все стороны полетит волна красного цвета. И мы будем думать, что яблоко красное.
Другой вариант – металлы. Там всё наоборот. Зеркально отражается почти весь падающий свет. Поверхность «не пускает» свет внутрь. Диффузный цвет появляется, если металл пыльный или ржавый, в этом случае свет может проникнуть в поверхность пыли или ржавчины и там рассеяться, добавив диффузную составляющую.
Наша задача – убрать весь зеркальный свет, оставив только диффузный. Красное яблоко останется красным, но уже без блика, а чистый металл станет чёрным.
Во-первых, нам потребуется кусок поляризационной плёнки и вспышка, во-вторых, поляризационный фильтр на объектив, как вариант – ещё один кусок поляризационной плёнки.
Кроссполяризация.
Естественный свет изначально не имеет поляризации (световые волны повёрнуты во всех направлениях). А теперь представим себе, то мы светим поляризованным светом, когда волны повёрнуты в одном направлении. Допустим, волны ориентированы вертикально. Повернув фильтр на фотоаппарате горизонтально, мы отсекаем бОльшую часть этого света. Этот эффект любят демонстрировать, накладывая друг на друга две поляризационные плёнки или два поляризационных фильтра и поворачивая их: при перпендикулярном положении они становятся непрозрачными. Интересно, что , если вложить между ними третью плёнку, повёрнутую на 45 градусов, то прозрачность появляется снова (называется эффект Малюса):
Итак, через первый фильтр проходит поляризованный свет, попав на незеркальную поверхность, свет теряет поляризацию, и повёрнутые волны уже проходят сквозь второй фильтр. А вот свет, отражённый от зеркальной поверхности, поляризацию не теряет и «срежется» вторым фильтром.
Что это даёт? Если мы светим таким образом, скажем, на яблоко, то зеркальная составляющая «срежется», мы увидим только чистый диффузный цвет без зеркальных бликов. Поляризованное зеркальное отражение исчезнет.
Или, скажем, при макросъёмке нам часто нужна вспышка, потому что для максимальной глубины резкости диафрагму приходится закрывать до минимума. Сильные блики на объекте от вспышки могут мешать. И это тоже тот случай, когда можно использовать вспышку с поляризацией и фильтр на объективе с перпендикулярным направлением. Меняя направление фильтра, можно регулировать уровень бликов.
А вот попав на металлическую поверхность, поляризация остаётся. Вообще при зеркальном отражении поляризация остаётся. При использовании поляризованной вспышки и повёрнутого на 90 градусов поляризационного фильтра на объективе металлические объекты станут намного темнее, зеркальные отражения исчезают.
Некоторые пластики обладают поляризационным эффектом (я опробовал полипропилен, пищевой пластик, обозначенный PP). Допустим, мы светим вертикально поляризованным светом прямо в камеру, на которой стоит поляризационный фильтр, повёрнутый горизонтально. Камера почти ничего не видит. Теперь ставим перед камерой пластиковый объект, материал которого немного меняет направление волн. Часть света уже проходит сквозь фильтр. Камера показывает слегка психоделическую картинку.
Конечно, надо было попробовать. Вспышку с синхронизатором положил на пол, сверху положил поляризационную плёнку.
Фотографировал, просто держа объекты рукой. Тут надо понимать, что все дико психоделичные картинки такого типа – это обычно постобработка, где сильно завышена насыщенность цвета. Примерно так:
Второе, что надо понимать, – нужен именно толстый пластик, эффект заметнее. Допустим, берём вилку из толстого прозрачного пластика. С ней психодел получается лучше, чем с тонкими пластиковыми стаканами, особенно, если повысить насыщенность цвета:
Дальше пробовать не стал, но, если загуглить картинки по словам «cross polarization art», то такого хватает.
Технические детали, можно пропустить:
У поляризационных фильтров есть параметры, по которым можно судить о качестве поляризации. Например, по запросу "polarizing film" (поляризационная плёнка) плёнки очень разные по цене. На одних написано Standard Grade, на других LCD Grade. Разница как раз в качестве. Вот, скажем, что пишут про стандартное качество:
Transmittance single 43%
Transmittance parallel 38.1%
Transmittance crossed 0.056%
Single - то, сколько проходит света, если просто светить через плёнку. В общем-то, порядок цифр у всех плёнок похож - около 40 процентов. Что логично - мы режем половину световых волн плюс некоторые потери при прохождении сквозь материал. В идеальном поляризаторе свет проходит на 50%, в реальном поляризаторе, естественно, меньше 50%.
Parallel - сколько света проходит, если смотреть через две одинаково повёрнутых плёнки. В идеале свет должен пройти через первую плёнку, ослабленный на параметр single, а дальше пройти полностью, то есть, в идеале, parallel должен быть равен single. В реальности, конечно, при потерях на прохождение мы получаем показатель ниже. Понятно, что, чем цифра ближе к Single, тем лучше.
Crossed - самый интересный параметр. Сколько света проходит, если повернуть две плёнки под углом 90 градусов друг к другу. Эта цифра чем меньше, тем лучше.
Соотношение между Crossed и Parallel определяет качество поляризатора, называется коэффициент поглощения или коэффициент экстинкции (в английской литературе extinction coefficient). То есть, потери света при прохождении материала одинаковы (в обоих случаях две плёнки), а разница в проходящем свете получается как раз из-за качества поляризации.
Заодно, если уж совсем занудствовать, надо отметить, что этот коэффициент может отличаться для разных длин волн, то есть, для света разных цветов.
Когда в качестве опыта две плёнки поворачивают друг относительно друга на 90 градусов, то они вроде бы становятся непрозрачными. Но, на самом деле, часть света сквозь них всё равно проходит, в чём легко убедиться, если посмотреть сквозь них на яркую лампу. Количество проходящего света - это как раз параметр Transmittance crossed. Если у Standard Grade он может быть, скажем, 0.056%, то у более дорогой LCD Grade уже 0.0045%, то есть, в десять раз меньше (цифры взяты из описания плёнок).
Так что при выборе качества можно просто искать самый низкий параметр Crossed.
На практике это означает, что на металлических объектах, сфотографированных при вспышке, проходящей через более дешёвую плёнку, отражения стали слабее в несколько сотен раз (теоретически в 2000 раз, точно замерить было нечем). А при использовании более дорогой плёнки эти отражения можно ослабить ещё в 10 раз (опять же, в теории, потому что это зависит ещё и от фильтра объектива).
Блики от вспышки на металле ещё видны. Но тут в дело вступает экономика и принцип "необходимо и достаточно". Для съёмки текстур и фотограмметрии (3D сканирование по серии фотографий) неметаллических объектов такие остаточные блики можно проигнорировать, их не видно, - на неметаллических поверхностях зеркальное отражение обычно составляет 2-5%, если уменьшить его в несколько сотен раз, то этого будет вполне достаточно.
Плюс к экономике вопрос оборудования. Для этого примера была сделана конструкция из спичек и желудей, то есть, из картонки и скотча. Ещё из оборудования класса "дёшево и сердито" можно использовать фольгу, добавляя её вместо фона сзади и с боков. Что-то вроде лайткуба из фольги. Тогда фон будет тёмным, но невидимый фотоаппаратом свет будет отражаться от фольги, подсвечивая диффузный цвет объекта со всех сторон. Тут не зря именно фольга:
В первом случае фильтр на объективе повёрнут так же, как и на вспышке, во втором случае на 90 градусов. Обратите внимание на блики сбоку, которые не видны в случае поляризованного света:
Поляризованный свет от вспышки отражается от фольги на фоне так же поляризовано. То есть, это то же самое, что поставить вокруг объекта вспышки с поляризационными плёнками. Такие поляризованные зеркальные блики "режутся" фильтром фотоаппарата, объект как бы подсвечен сзади и с боков, но ярких зеркальных бликов всё равно не видно.
Чтобы поляризация отражённого света не пропала, в качестве отражателей должны быть металл или зеркало (фольга тоже подойдёт). Если на фоне будет неметаллический материал вроде бумаги или ткани, то поляризация пропадёт и отражённый от стенок свет уже даст зеркальные блики.
По фотографиям без бликов 3D модель строится гораздо лучше. Здесь модель с текстурой построена программой, а блики настраивал уже сам.
После нескольких экспериментов 3D сканирование фруктов было отработано:
Уже потом я решил улучшить процесс, когда были закуплены держатели для цветных фильтров для накамерной вспышки. Три разных варианта:
Третий вариант держателя выглядел удобно (называется CFA-30K), я закрепил поляризационную плёнку на откидывающейся прозрачной крышке, но всё оказалось не так просто. После применения выяснилось, что на таком маленьком расстоянии вспышка «прожгла» поляризационный слой. Теперь при кросс-поляризации вместо чёрного цвета получается «дырка». В общем, насадка из картонки была лучше.
Решил попробовать термостойкую поляризационную плёнку, такие используют, например, в проекторах. Параметры кросс-поляризации немного хуже, но пока что «прожжённых» дырок нет.
Теоретически, для максимального результата нужна плёнка LCD grade. Но, если основная задача - убрать блики с неметаллических объектов, то с этой задачей мы уже справились.
Примечание.
Почему хорошие плёнки называются "LCD grade" - "уровень жидкокристаллического экрана". В очень примитивном варианте принцип работы жидкокристаллического экрана можно представить так: сзади стоит подсветка, перед ней поляризационная плёнка, повёрнутая, например, горизонтально, а дальше плёнка, повёрнутая вертикально. В обычном состоянии подсветки не видно, всё тёмное. Между плёнками добавляется слой с жидкими кристаллами, которые, поворачиваясь под действием электрических импульсов, могут менять направление поляризации проходящего через них света.
То есть, нет импульса - вертикально поляризованный свет проходит через кристалл и блокируется горизонтальной плёнкой. Есть импульс - вертикально поляризованный свет при прохождении кристалла разворачивается горизонтально и проходит дальше на экран.
Если качество плёнки плохое, то часть света от подсветки будет проходить, и чёрный экран будет немного светиться, поэтому для экранных плёнок параметр Crossed (блокирование света при двух плёнках, повёрнутых на 90 градусов) критически важен.
Поляризацию экрана монитора можно наблюдать, если смотреть на экран сквозь поляризационный фильтр. При вращении фильтра на 90 градусов всё становится чёрным.
Вывод. Если нет поляризационной плёнки на вспышку, а блики с мелких объектов нужно убрать, то их можно фотографировать через поляризационный фильтр при свете от компьютерного монитора. То есть, вывести на экран белую картинку, выключить свет, и фотографировать при свете экрана. При определённом повороте фильтра зеркальные блики от экрана сильно уменьшатся. Можно поставить в тёмной комнате металлический полированный объект рядом с монитором, а потом крутить поляризационный фильтр на объективе и смотреть, как меняются зеркальные блики.
А для съёмки текстур в итоге использовал коробку от кроссовок (если мне заплатят, то даже могу добавить сюда продакт плейсмент фирмы, напишу, что для более высокого качества текстур рекомендую использовать коробку бренда ***), внутри чёрная бархатистая ткань (от дешёвого китайского лайткуба), сверху стекло. Сначала пробовал просто на белой бумаге, но часть света отражается от белого и просвечивает, так что собрал вот такое, чтобы свет не отражался сзади.
В результате получаю ровный цвет без бликов, а потом ещё и текстуры неровностей, просвечивания и матовости, но это уже другая история, нас пока интересует, как избавится от бликов (первая картинка). Здесь основной смысл в том, что в 3D текстуры наложены на обычную плоскость, то есть, минимум полигонов на объекте:
Фото со вспышкой через стекло.
Один из вариантов использования фото с поляризованной вспышкой через стекло - это снова получение текстур для 3D. Допустим, нам нужна текстура растворимого кофе в стеклянной банке. Логично поставить стеклянную банку на крутящийся столик и, сделав штук 30 фото со всех сторон, затем сшить их в программе для 3D сканирования.
Но без света темно, а любой свет тут же отражается в стекле. Выход - использовать поляризованный свет. Аналогично примеру со сканированием фруктов ставим фронтальную вспышку с поляризационным фильтром, а на фотоаппарат одеваем поляризационный фильтр, повёрнутый перпендикулярно фильтру на вспышке.
Тогда от бликов на стекле остаются небольшие не очень заметные следы, которые потом ещё уменьшатся при сшивании текстуры в одну.
Фото через стекло банки в поляризованном свете, блик от вспышки еле виден. После сшивания получаются текстуры для Diffuse и Normal Bump. В 3D ставим текстуры на цилиндр, вокруг добавляем стеклянный объект:
Вывод: Если кто-то хочет регулировать силу бликов от максимальных до практически незаметных, то нужны только поляризационный фильтр на объектив и поляризационная плёнка на вспышку.
P.S. Две предыдущие части «Спецэффекты из спичек и желудей»:
Широкоугольное макро и 3D в студийной фотографии: Широкоугольное макро, используя Photoshop, а также применение трёхмерной графики в студийной фотографии
Предметная фотография с помощью одного карманного фонарика и Photoshop
Композитинг в фотографии. Предметная фотография с помощью одного карманного фонарика и Photoshop
Пиридупреждение! Там рассматривается использование цвета HDRI 32 бита для физически корректного сложения яркости без всяких «костылей» в виде масок слоя и режима «светлее-lighten», про композицию – это не туда.