Render.ru

Overlay

#1
Как грамотно сложить между собой два слоя (верхний градиент, нижний - заливка) с получением фотошопного эффекта Overlay?
 

wpiggy

Мастер
Рейтинг
161
#2
Попробуй одну из двух нод:
iAdd (складывает значения пикселей)
iMult (умножает)
 
#3
пробовал. Загвоздка в том, что фотошоп берет верхний слой (градиент) и в режиме Overlay хитро складывает с фоном. Там где серый 50% - цвет фона не меняется, где 0% - темнеет, где 100% - светлеет. Причем не по яркости, а по насыщенности. У меня получилось наложить черно-белый градиент на зеленый фон, а вот с реальными картинками - не получается. Даже дело не в этом. Я могу добиться подобного эффекта, но через ж..., а хотелось бы получить математически правильную модель.
 

wpiggy

Мастер
Рейтинг
161
#4
Извини, только сейчас догнал что ты хочешь.
Попробуй AddMix и рули кривыми
 
#6
не очень понял, как работает эта нода, я думал, что она позволяет смешивать ноды по яркости, но ничего не получилось. На изображение влияют только левые точки кривой, при перемещении правых точек, ничего не происходит...
 

wpiggy

Мастер
Рейтинг
161
#8
Накопайте кто-нибудь точный алгоритм работы overlay (в документации туманно написано), а я перепишу это под Shake (LayerX). Это будет правильнее всего :)
 
#9
С Premultiply попробую, спасибо.
Но буду искать точную математическую формулу, т.к. нужно точно повторить замысел художника, а этот способ сложения слоев используется довольно часто.
Так что я согласен с тем, что правильнее всего - это написать скрипт и рулить тогда в свое удовольствие:)))
Вообщем - будем искать!
 
#10
Вот что написано в козе про O-y:
Mixes colors between layers, preserving highlights and shadows to reflect the light and dark areas of the layer colors.

Скачанный скрипт из хайэнда работает не правильно!
Он просто миксует слои по яркости, а ФШ на белом сохраняет насыщенность нижнего слоя...
 
#11
И еще:

Режим, зависящий от различия яркости пикселов накладываемых слоев. Результат осветляется, если яркость пикселов нижнего слоя выше чем верхнего, если яркость деталей нижнего слоя меньше, то эти части результирующей картинки получаются темнее.
Нейтральный цвет для режима Overlay - 50% серый.

Режим Overlay используется, например, для усиления малоконтрастных деталей изображения.
 

wpiggy

Мастер
Рейтинг
161
#12
В козе написано не до конца. Overlay использует два способа сложения - multiply и screen (алгоритмы обоих элементарны), но вот по какому принципу она их применяет собака? :))
 

wpiggy

Мастер
Рейтинг
161
#13
Примерно понял - multiply если светлее, screen если темнее, попробую сочинить на досуге, может даже сегодня :)
 
#14
Удачи! Ждем результатов. А то имитация помогает, но не всегда получается нужный эффект!
 

animaster

Пользователь сайта
Рейтинг
2
#15
Кстати, интересный эффект получается, если мультиплайем наложить изображение на себя, используя в качестве маски этот самый градиент.
 
#16
Это точно, я пробовал много разных вариантов. Когда начинаешь шаманить с нодами, получаются очень необычные и, к моему большому сожалению, непредсказуемые эффекты. А хотелось бы точно предвидеть результат.
Т.е. если я хочу получить что-то, то я должен сделать так и вот так. Когда над тобой весит временная гильотина - некогда тыкать пальцем в небо.
 

wpiggy

Мастер
Рейтинг
161
#17
На самом деле с нодами не все так сложно. Нужно просто держать в голове математику процесса. Есть, конечно, "продвинутые" ноды типа LayerX, ColorX, WarpX, но они используются ну для очень специфичных задач.

3dart, я скачал тут адобовской инфы. Про Overlay ненамного больше, чем в хелпе (точной математики процесса нет), поробую еще порыть.
 

wpiggy

Мастер
Рейтинг
161
#18
Ну вот пара минут была свободных, просмотрел скрипт с Highend2d, сравнил с адобовскими доками. В скрипте все правильно.
Если хочешь могу написать скрипты под все остальные фотошопные наложения (на хайэнде есть еще хардлайт)
 
#19
Да, я скачал все скрипты, что там есть. Если тебе не в лом и будет интересно, попробуй написать скрипты и под другие способы наложения. Я думаю это будет очень полезно тем, кто плотно работает с фотошопом и шейком!
 
#20
Overlay = LayerX(0, 0, (r2>0.5)?2*(r+r2-r*r2)-1:2*r*r2, (g2>0.5)?2*(g+g2-g*g2)-1:2*g*g2,
(b2>0.5)?2*(b+b2-b*b2)-1:2*b*b2, a, z);
 
Сверху