Как добавить пользовательский проход 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?

0 ответов

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