日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS 全景播放器最简单的解决方案

發布時間:2024/3/26 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS 全景播放器最简单的解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

渲染全景視頻


本節學習目標

  • 使用SceneKit如何渲染全景視頻

上一節我們講解了如何播放普通視頻,本節我們講解如何播放全景視頻,其實兩者的差異不是很大, 只是使用的渲染幾何體有所不同,普通視頻使用的是平面幾何體,我們全景就使用球體。

  • 效果如下

Scenekit_11.gif

實現步驟

1.第一步 創建工程(略)

2.第二步 導入兩個游戲框架

import SceneKit import SpriteKit

3.第三步 創建游戲專用視圖

let scnView = SCNView(frame: self.view.bounds);scnView.scene = SCNScene()self.view.addSubview(scnView);

4.第四步 創建一個攝像機

let cameraNode = SCNNode()cameraNode.camera = SCNCamera()cameraNode.camera?.automaticallyAdjustsZRange = true;// 自動調節可視范圍cameraNode.position = SCNVector3Make(0, 0, 0);// 把攝像機放在中間scnView.scene?.rootNode.addChildNode(cameraNode);

5.第五步 創建一個節點并綁定一個球體幾何對象

let panoramaNode = SCNNode()panoramaNode.geometry = SCNSphere(radius: 100);panoramaNode.geometry?.firstMaterial?.isDoubleSided = false// 關閉雙面渲染,提高性能panoramaNode.geometry?.firstMaterial?.cullMode = .backpanoramaNode.position = SCNVector3Make(0, 0, 0);scnView.scene?.rootNode.addChildNode(panoramaNode);

經驗:

1.全景一般照相機應該放在球體中間,我們要渲染內表面,但是默認渲染的是外表面,所以我們設置一下noramaNode.geometry?.firstMaterial?.cullMode = .back

2.如果你想兩個面都進行渲染請使用panoramaNode.geometry?.firstMaterial?.isDoubleSided = true
3.panoramaNode.geometry = SCNSphere(radius: 100) 半徑不要設置太小

6.第六步 創建一個2D游戲場景和一個播放視頻的對象

let url = Bundle.main.url(forResource: "fly", withExtension: "mp4")let videoNode = SKVideoNode(url: url!)videoNode.size = CGSize(width: 1600, height: 900)videoNode.position = CGPoint(x: videoNode.size.width/2, y: videoNode.size.height/2)videoNode.zRotation = CGFloat(M_PI)let skScene = SKScene()skScene.addChild(videoNode)skScene.size = videoNode.size

經驗:

1.視頻添加到項目中的時候,使用右擊->add File to 的方式添加文件

2.指定視頻節點的大小 videoNode.size

3.指定2d場景的大小,這個一般和視頻節點大小保持一致,如果你有特殊要求,可以根據要求設置

4.videoNode.zRotation = CGFloat(M_PI)注意,這點非常重要,一定要將視頻節點旋轉180度,否則渲染出來的畫面會顛倒。

7.第七步 給平面體設置渲染內容

plane.firstMaterial?.diffuse.contents = skScene

8.第八步 播放視頻

videoNode.play()

9.第十步 打開攝像頭控制查看效果

scnView.allowsCameraControl = true;

打開 QQ 掃碼下載更多教程

1489367088.png

總結

以上是生活随笔為你收集整理的iOS 全景播放器最简单的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。