Опять прозрачность

  • Автор темы Автор темы Exy
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Exy

Участник
Топикстартер
Сообщения
12
Реакции
0
Копался я тут со слоями. Вспомнил, что в свое время у меня встал вопрос, и как решить его, я не знаю до сих пор. Были случаи, когда знание этого могло оч пригодиться даже. Короче, грубо говоря, имеется один слой с опасити 50, второй с опасити 50, оба типа нормал. В сумме 100процентная непрозрачность не получается. Можете убедиться сами. На вид - процентов 70. Метод научного тыка не очень помог. Я не в курсе математики, как фотошоп вычисляет непрозрачность слоев. Возможно, он ее не складывает (хотя именно это было бы логично). Возможно, он полную непрозрачность считает не 100 процентов, а больше (тоже нонсенс), хотя где-то я что-то подобное слышал. Врать не буду.
В патче 7.0.1 была фича, якобы фиксит баг с неправильным вычислением прозрачности (точной формулировки не помню) - если и фиксит, то это определенно не то.
Если у кого-то есть комментарии - пожалуйста. Оч интересно.
 
Ответ: Опять прозрачность

Exy сказал(а):
имеется один слой с опасити 50, второй с опасити 50, оба типа нормал. В сумме 100процентная непрозрачность не получается. Можете убедиться сами.
Убедились.

(2 слоя) 50 + 50 = 75
(3 слоя) 50 + 50 + 50 = 88 (а точнее, 87,5, если из формулы, что будет ниже)

И т.д.

Формула выводится такая (для режима Normal всех накладываемых слоёв):

Суммарное значение = процент от значения плотности текущего слоя + (100% минус этот же процент от суммарного значения нижележащих слоёв).

Можно проверить:
(4 слоя) 50 + 50 + 50 + 50 = 50 + (50 + 75*(100 – 50))*(100 – 50) = 93,75 (замерь пипеткой и убедись — пипетка покажет 94)

Это вполне логично: позрачность слоя ведь не только ослабляет его собственное значение до величины Opacity, но и ослабляет на ту же величину то, что просвечиватся сквозь него.* А по логике предположения, что 50 + 50 должно быть равно 100, слой должен пропускать сквозь себя все 100% того, что лежит ниже — отсюда и обманутые ожидания.

В подтверждение:

Плашку k100 накроем белой плашкой, которой назначим прозрачность Normal 10%. В итоге получим 90%.
Положим сверху ещё одну такую же плашку. Получим 81%, т.е. 90% от 90.
Положим третью такую же плашку. Получим 73% (а если точно, то 72,9) — 90% от 81.
Именно это значение и суммировалось бы со значением плотности текщего слоя, если бы он не был белым, т.е. плотность была бы больше нуля.
Легко убедиться: поверх плашки k90 положим плашку k100 с прозрачностью Normal 10%. Суммарная плотность — 91%, т.е. 90% от плотности нижележащего слоя — 81%, плюс 10% вернего.

Если накладывать друг на друга какое угодно (бесконечное) количество слоёв в режиме Normal и Opacity меньше 100%, суммарное значение будет сремиться к 100%, но не достигать его.

А вот если накладывать в режиме Multiple, то в суммировании будут принимать участие все 100% того, что лежит ниже. Поэтому при наложении друг на друга множества таких слоёв, суммарные 100% будут достигнуты очень быстро.

-------
*Исправлено. Сначала было написано иначе и не правильно.
 
Статус
Закрыто для дальнейших ответов.