如何在SceneKit中将视频输入附加到SCNProgram?
不使用自定义程序,我可以这样做:
func set(video player: AVPlayer, on node: SCNNode) {
let size = player.currentItem!.asset.tracks(
withMediaType: AVMediaTypeVideo).first!.naturalSize
let videoNode = SKVideoNode(avPlayer: player)
videoNode.position = CGPoint(x: size.width/2, y: size.height/2)
videoNode.size = size
let canvasScene = SKScene()
canvasScene.size = size
canvasScene.addChild(videoNode)
let material = SCNMaterial()
material.diffuse.contents = canvasScene
node.geometry?.materials = [material]
}
将视频呈现为SKScene
,并将其用作SCNMaterial
的输入。
我想在节点上使用SCNProgram
,但我无法想出附加播放器输入。如果解决方案没有使用SKScene
中间渲染,我不介意。如果没有它可能会更好。