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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

VR+全景播放器+头控讲解-02

發布時間:2024/3/26 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

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