1

I'm trying to explore Google VR(Virtual Reality) SDK in iOS.

Ref: https://github.com/googlevr/gvr-ios-sdk

So they have examples in Obj-C, I have converted in Swift. Getting issue that i'm unable to preview VR Video(as shown SS1), getting black screen SS2.

SS1: Expected

SS1

SS2: Actual

enter image description here

I try to debug also and found that

Google Code

 GVRRendererViewController *viewController = self.childViewControllers[0];
  GVRSceneRenderer *sceneRenderer = (GVRSceneRenderer *)viewController.rendererView.renderer;
  GVRVideoRenderer *videoRenderer = [sceneRenderer.renderList objectAtIndex:0];

My Code

if let vc = self.children.first as? GVRRendererViewController {
                self.vrManager!.setupGVR(vc)
            }

func setupGVR(_ gvrRendererVC: GVRRendererViewController) {
        let sceneRenderer = gvrRendererVC.rendererView.renderer as! GVRSceneRenderer
        
        if sceneRenderer.renderList.count() > 0,
            let videoRenderer = sceneRenderer.renderList.object(at: 0) as? GVRVideoRenderer {
            videoRenderer.player = self.avPlayer
        }
    }

here i'm getting sceneRenderer.renderList empty. It's fine In their SDK. Let me know what mistake.

My demo Project: https://github.com/Abhishek9634/VRDemo

Community
  • 1
  • 1
Abhishek Thapliyal
  • 3,497
  • 6
  • 30
  • 69

1 Answers1

1

P.S: I'm not sure is it correct or not but works fine as of now

func setupGVR(_ gvrRendererVC: GVRRendererViewController) {

    guard let sceneRenderer = gvrRendererVC.rendererView.renderer as? GVRSceneRenderer else {
        return
    }

    if sceneRenderer.renderList.isEmpty {
        let videoRenderer = GVRVideoRenderer()
        videoRenderer.player = self.avPlayer
        videoRenderer.setSphericalMeshOfRadius(50.0,
                                               latitudes: 12,
                                               longitudes: 24,
                                               verticalFov: 180,
                                               horizontalFov: 360,
                                               meshType: .stereoTopBottom)
        sceneRenderer.renderList.add(videoRenderer)
    } else {
        if let videoRenderer = sceneRenderer.renderList.object(at: 0) as? GVRVideoRenderer {
            videoRenderer.player = self.avPlayer
        }
    }

}
Abhishek Thapliyal
  • 3,497
  • 6
  • 30
  • 69