VR+全景播放器+头控讲解-02
生活随笔
收集整理的這篇文章主要介紹了
VR+全景播放器+头控讲解-02
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
VR+全景播放器+頭控講解-01-知識儲備
VR+全景播放器+頭控講解-02-創建球體
VR+全景播放器+頭控講解-03-渲染視頻
VR+全景播放器+頭控講解-04-滑動手勢
VR+全景播放器+頭控講解-05-伸縮畫面
VR+全景播放器+頭控講解-06-頭控實現
VR+全景播放器+頭控講解-07-分屏技術
學習目標
如何創建一個渲染全景視頻的球體
實現步驟:
第一步 創建一個應用工程(略了)
-
第二步 創建一個渲染視圖 繼承SCNView
DFA47D5C-AE21-4A3A-8E53-858CBA60B647.png -
第三步 導入框架SceneKit
#import <SceneKit/SceneKit.h> -
第四步 創建一個3D場景
self.scene = [SCNScene scene]; -
第五步 創建一個球體 然后將其添加到場景中去
SCNNode *sphereNode = [SCNNode node]; sphereNode.geometry = [SCNSphere sphereWithRadius:SHPERE_RADIUS]; sphereNode.rotation = SCNVector4Make(1, 0, 0, -M_PI/2); [self.scene.rootNode addChildNode:sphereNode]; -
第六步 我們知道現在球體是有了,但是我們還需要一個眼睛去觀察球體,在全景下,眼睛是根據重力感應,來調節觀察的角度,所以我們下面創建一個眼睛節點,然后將其放入場景的中心點
SCNNode *eyeNode = [SCNNode node];eyeNode = [SCNNode node];eyeNode.camera = [SCNCamera camera]; // 創建照相機對象 就是眼睛eyeNode.camera.automaticallyAdjustsZRange = true; // 自動添加可視距離eyeNode.camera.xFov = CAMERA_FOX; eyeNode.camera.yFov =CAMERA_HEIGHT;eyeNode.camera.focalBlurRadius = 0;
xFov 和 yFov 看下圖理解一下
5226E55E-4FB9-48B2-9D07-9E3B84D65B37.png
思考問題1:
球體有兩個表面 一個外表面一個內表面,在vr 模式下,我們的眼睛是在球體中間的,如何讓球體只渲染內表面
sphereNode.geometry.firstMaterial.cullMode = SCNCullModeFront;// 設置剔除外表面sphereNode.geometry.firstMaterial.doubleSided = false; // 設置只渲染一個表面思考問題2:
球體的半徑設置多大?
不要設置太小即可,我設置的是10 注意這里沒有單位,根據屏幕的寬度和高度進行相對運算,屏幕上邊為1 下邊為-1 左邊為 -1 右邊為 1 根據照相機的視角就可以計算出幾何模型在視圖中的呈現的畫面大小了
本節的任務就算完成了
SceneKit 中文教程
總結
以上是生活随笔為你收集整理的VR+全景播放器+头控讲解-02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021届 海康威视人力面试 嵌入式软件
- 下一篇: boost I 常用算法组件