Если вам нужны более размытые тени в вашей сцене, используйте большие значения для shadowRadius
свойства экземпляра. shadowRadius
указывает радиус выборки, используемый для визуализации тени приемника.
Значение по умолчанию: 3,0 .
var shadowRadius: CGFloat { get set }
... в реальном коде это выглядит так:
lightNode.light?.shadowRadius = 20.0
документация Apple говорит :
shadowRadius
- это число, которое определяет степень размытия по краям теней, отбрасываемых светом . SceneKit создает тени с мягкими краями, визуализируя силуэты геометрии в 2D-карту теней, а затем используя несколько взвешенных выборок из карты теней, чтобы определить силу тени в каждом пикселе в отрисованной сцене. Это свойство контролирует радиус выборки карты теней. Меньшие числа приводят к теням с четко очерченными пиксельными краями, большие цифры приводят к размытым теням .
Кроме того, используйте прожектор вместо направленного света, потому что первый из них производит красивые и размытые тени.
lightNode.light?.type = .spot
И еще один совет: держите прожектор на расстоянии более 2 метров от модели и присвойте значение 179 градусов spotOuterAngle
свойству экземпляра:
lightNode.light?.spotOuterAngle = 179.0 /* default is 45 degrees */
PS
Если вы хотите знать, как использовать размытые тени в RealityKit, прочитайте этот пост .