标签: sceneview

无法使用锚点激活约束

所以,我正在尝试以编程方式创建一个sceneView

class ViewController: UIViewController, ARSCNViewDelegate {
    var sceneView: ARSCNView = ARSCNView()
    let configuration = ARWorldTrackingConfiguration()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints, ARSCNDebugOptions.showWorldOrigin]
        self.configuration.planeDetection = .horizontal
        self.sceneView.session.run(configuration)
        self.sceneView.delegate = self
        self.sceneView.autoenablesDefaultLighting = true

        //add autolayout contstraints
        self.sceneView.translatesAutoresizingMaskIntoConstraints = false
        self.sceneView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
        self.sceneView.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
        self.sceneView.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true
        self.sceneView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true

    }

    func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
        guard anchor is ARPlaneAnchor else {return}
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

由于未捕获的异常'NSGenericException'而终止应用程序,原因:'无法使用锚点激活约束,因为它们没有共同的祖先.约束或其锚点是否引用不同视图层次结构中的项目?这是非法的.

这部分发生了\\add …

ios scenekit swift sceneview arkit

18
推荐指数
1
解决办法
9640
查看次数

向 Sceneform 节点添加照明没有效果

我正在关注关于在 SceneView 中将光添加到节点的谷歌开发人员指南:

https://developers.google.com/sceneform/develop/build-scene

Light spotLightYellow =
    Light.builder(this, Light.Type.FOCUSED_SPOTLIGHT)
        .setColor(new Color(android.graphics.Color.YELLOW))
        .setShadowCastingEnabled(true)
        .build();
Run Code Online (Sandbox Code Playgroud)

但是它似乎对我的渲染模型没有任何作用。

还有什么我想念的吗?

 ModelRenderable.builder()
                .setSource(
                        this,
                        Uri.parse(card)
                )
                .build()
                .thenAccept(
                        modelRenderable -> {

                            node.setParent(scene);
                            node.setLocalPosition(vector3);
                            node.setLocalScale(new Vector3(1.4f, 1.4f, 1.4f));
                            node.setName("Test");

                            Light light =
                                   Light.builder(Light.Type.FOCUSED_SPOTLIGHT)
                                   .setColor(new Color(android.graphics.Color.YELLOW))
                                   .setShadowCastingEnabled(true)
                                   .build();

                            node.setLight(light);

                            node.setRenderable(modelRenderable);


                        })
                .exceptionally(
                        throwable -> {
                            Toast toast =
                                    Toast.makeText(this, "Unable to load Fox renderable" + throwable, Toast.LENGTH_LONG);
                            toast.setGravity(Gravity.CENTER, 0, 0);
                            toast.show();
                            return null;
                        });
Run Code Online (Sandbox Code Playgroud)

android sceneview arcore sceneform

7
推荐指数
1
解决办法
309
查看次数

在像ARKIT相机拍照,像Snapchat一样

他们是否有任何方式迅速采用像Snapchat这样的sceneview相机会议拍摄高质量的照片?或者至少没有图片中的scnnode对象?

因为我不想初始化第二个相框来拍照.我希望它像Snapchat相机一样集成.

最好的问候,萌

camera ios swift sceneview arkit

6
推荐指数
1
解决办法
2075
查看次数

如何在 SwiftUI 中清除 SceneView 3D 对象的背景

有谁知道如何清除 SceneView 3D 对象的背景?我正在尝试使用 UIColor.clear,但它使它变成白色。[这应该是清晰的,但它是白色的]

import SwiftUI
import SceneKit

struct TestView: View {
    var body: some View {
    
        ZStack{
                    Color.green
                    SceneView(
                        scene: {
                            let scene = SCNScene(named: "Earth.scn")!
                            scene.background.contents = UIColor.clear
                            return scene
                        }(),
                        options: [.autoenablesDefaultLighting,.allowsCameraControl]
                    )
                    .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height/2, alignment: .center)
                
                }
    }
}

struct TestView_Previews: PreviewProvider {
    static var previews: some View {
        TestView()
    }
}
Run Code Online (Sandbox Code Playgroud)

xcode swift scnscene sceneview swiftui

5
推荐指数
1
解决办法
759
查看次数

标签 统计

sceneview ×4

swift ×3

arkit ×2

ios ×2

android ×1

arcore ×1

camera ×1

sceneform ×1

scenekit ×1

scnscene ×1

swiftui ×1

xcode ×1