У меня есть скрипт управления шейдером из проекта github, и я пытаюсь понять, что он делает построчно.В какой-то момент он берет камеру и делает это:
m_transparentCamera.cullingMask = ~(1 << LayerMask.NameToLayer("Transparent"));
И затем он рендерит камеру.Чуть позже в тексте он меняет целевую текстуру камеры, а затем делает это:
m_transparentCamera.cullingMask = 1 << LayerMask.NameToLayer("Transparent");
, а затем снова выполняет рендеринг с использованием другого шейдера.
Что означает обозначение здесь?Я знаю, что ~ и << являются побитовыми операторами, но что на самом деле это делает с маской отбраковки? </p>
Почему это происходит именно так?
А зачем сначала инвертировать биты маски слоя, а потом не позже?
Github cred: https://github.com/candycat1992/OIT_Lab