Как добавить пользовательский проход SCNTechnique в определенную область, не вмешиваясь в остальную полноэкранную область Sceneview?
У меня есть ARSCNView (может быть SCNView), и мне нужна небольшая прямоугольная область, чтобы показать другую перспективу с той же сцены вживую.
Я НЕ МОГУ ИСПОЛЬЗОВАТЬ несколько SceneView, потому что, если вы делаете что-то продвинутое, вы будете знать, что это приведет к путанице во многих вещах, таких как пространственные звуки, воспроизводимые с помощью Echoes, и невозможность удалить звуки должным образом и т. Д. ДАЖЕ ОБМЕН ОДНОЙ СЦЕНОЙ с несколькими SceneViews. Звук перепутался. Поэтому я отказался от нескольких SceneView с одной сценой.
Итак, я использовал SCNTechnique, чтобы нарисовать небольшие участки, например:
SCNTechnique *technique = [SCNTechnique techniqueWithDictionary:@{
@"passes":@{
@"dockerView":@{
@"outputs": @{ @"color": @"COLOR" },
@"draw": @"DRAW_SCENE",
@"colorStates": @{
@"clear": [NSNumber numberWithBool:NO]
},
@"pointOfView": @"camera_docker",
@"viewport": @"100 20 400 250",
@"blendStates": @{
@"colorOp": @"add",
@"alphaOp": @"add"
}
}
},
@"sequence":@[@"dockerView"]
}];
self.sceneView.technique = technique;
//self.sceneView.antialiasingMode = SCNAntialiasingModeNone; //with or without makes no difference
Но вот результат:
Почему? Что я здесь пропустил? Почему он балуется остальным?
Он полностью сбрасывает обычный / стандартный проход при добавлении нового?
Я хочу сохранить обычный рендеринг Sceneview с его точкой зрения (И ЭТА КАМЕРА МЕНЯЕТСЯ МНОГО, ЧТОБЫ Я НЕ МОГУ УСТАНОВИТЬ ЕЕ КОНКРЕТНУЮ ТОЧКУ ВИДА В ПРЕДЫДУЩЕМ ПРОХОДЕ).
Как я могу просто сохранить Sceneview как есть и просто добавить этот проход
"viewport": @"100 20 400 250"
просто сверху, не влияя ни на что, что работало без SCNTechnique?