Hi,
I am still trying to get continuously update tracinng line to work. (re: https://forums.developer.apple.com/thread/62727)
Using SCNSceneRednerDelegate, I successfully rendered a drawing using Metal API
But after a brief moment, the rendering is replaced by the objects from SceneKit.
Following is my rendering code:
    func renderer(renderer: SCNSceneRenderer, willRenderScene scene: SCNScene, atTime time: NSTimeInterval) {
   
        guard let vm = self.viewModel,
            let traceModel = vm.traceModel.value,
            let renderPipeState = traceModel.renderPipeLineState,
            let nextDrawable = (self.sceneKitView.layer as? CAMetalLayer)?.nextDrawable()
            else {
                return
        }
        let commandBuffer = traceModel.commandQueue.commandBuffer()
        let renderPassDescriptor = MTLRenderPassDescriptor()
        renderPassDescriptor.colorAttachments[0].texture = nextDrawable.texture
        renderPassDescriptor.colorAttachments[0].loadAction = .Clear
        renderPassDescriptor.colorAttachments[0].storeAction = .Store
        let encoder = commandBuffer.renderCommandEncoderWithDescriptor(renderPassDescriptor)
   
   
        encoder.setRenderPipelineState(renderPipeState)
        encoder.setVertexBuffer(traceModel.metalBuffer, offset: 0, atIndex: 0)
        encoder.drawPrimitives(.Triangle, vertexStart: 0, vertexCount: 3, instanceCount: 1)
        encoder.endEncoding()
   
        commandBuffer.presentDrawable(nextDrawable)
        commandBuffer.commit()
    }Here's code snippet from 2012 WWDC Video (https://developer.apple.com/videos/play/wwdc2012/504/ ):
- (void)renderer:(id )aRenderer willRenderScene:(SCNScene *)scene atTime:(NSTimeInterval)time {
glBindVertexArrayAPPLE(myVAO);
glDisable(GL_DEPTH_TEST);
glUseProgram(myProgram);
CGSize size = self.myView.frame.size;
glUniform2f(myResolutionLoc, size.width, size.height);
glUniform1f(myTimeLoc, CFAbsoluteTimeGetCurrent());
glDrawArrays(GL_TRIANGLES, 0, 6);
glEnable(GL_DEPTH_TEST);
glBindVertexArrayAPPLE(0);
}
Is there something I'm missing?