ARKit – полупрозрачные пиксели текстуры вызывают обрезку в режиме многократного наложения

#swift #xcode #augmented-reality #scenekit #arkit

#swift #xcode #дополненная реальность #scenekit #arkit

Вопрос:

Я использую базовый пример ARKit, и если я использую две лицевые сетки, одну с каркасом (сзади) и одну с белыми рамками (спереди), я получаю нечетный результат при использовании режима наложения материала multiply. Как вы можете видеть на изображении, полупрозрачные пиксели заставляют заднюю сетку терять альфа в этих областях (красные стрелки). Полностью белый и полностью прозрачный пиксели смешиваются, как и ожидалось.

Я попробовал этот же тест и в примере SceneKit по умолчанию, и там задний объект отображается черным в полупрозрачных пикселях. Код довольно прост для материалов…

 let m: SCNMaterial = SCNMaterial()
m.lightingModel = .physicallyBased
m.blendMode = SCNBlendMode.multiply
m.metalness.contents = 0.0
m.roughness.contents = 0.7
m.diffuse.contents = #imageLiteral(resourceName: "atest")
p.firstMaterial = m
 

Я бы ожидал, что в режиме многократного наложения все белые и белые пиксели исчезнут (как в photoshop). Если кто-нибудь сможет подтвердить такое поведение и ожидания, это было бы здорово. Спасибо.

АРКит

введите описание изображения здесь

Сценарный план

Черные пиксели SceneKit