SceneKit: значение zFar или Far Clipping влияет на направленные источники света и их тени?

Хотелось бы помочь пониманию направленного света и теней в Scene Kit.

Ссылка на класс на SCNLight говорит zFar представляет собой the maximum distance between the light and a visible surface for casting shadows. Далее предполагается, что это значение относится только к точечным источникам света.

Однако в Редакторе сцены XCode, под Инспектором Атрибутов, есть поле для Far Clipping, Изменение этого значения влияет на тени, проецируемые направленным светом, как показано на скриншотах ниже.

Сцены ниже были созданы путем перетаскивания направленного света в сцену и изменения X Euler Angle значение до -60 и отметьте флажок "Отбрасывает тени". Текстура пола взята из демоверсии WWDC Fox,

  • Far Clipping - это то же самое, что и zFar? Если нет, то какая разница?

  • Так как направленные источники света игнорируют свойство position, почему изменение значения Far Clipping влияет на тени, создаваемые направленным источником света?

  • Цель состоит в том, чтобы осветить всю сцену и спроецировать тени на узлы, как будто солнце было в 3 часа дня в безоблачный день. Можно ли использовать направленный свет для достижения этой цели? До сих пор использование направленных источников света позволяет получить вид, где освещена вся сцена, но не может управлять тенями, а также прожектором.

Снимок экрана № 1: Значение Far Clipping равно 10.

Снимок экрана № 2: Значение Far Clipping равно 30.

1 ответ

Несмотря на то, что говорится в документации Apple, положение направленного света очень важно, когда он отбрасывает тени. zNear а также zFar расстояния от положения направленного света.

Чтобы удалить артефакт, который вы видите, вам нужно увеличить zFar или переместите направленный свет ближе к земле. Артефакт, который вы видите, вызван тем, что затененная часть находится дальше от направленного света, чем zFar,

Другие вопросы по тегам