Htc Vive瞬移技術(shù)實(shí)現(xiàn)教程
開(kāi)發(fā)Htc Vive游戲應(yīng)用的用戶肯定都系那個(gè)了解瞬移技術(shù)的實(shí)現(xiàn)方法,這里跟大家分享下教程吧。
如何實(shí)現(xiàn)
一般的瞬移程序:
玩家定位的位置是camera.localPosition,現(xiàn)在想要移動(dòng)到targetPositon,在不考慮轉(zhuǎn)向的情況下只要這么做:
CameraRig.position = targetPosition - camera.localPosition;
原因是 camera的本地位置+父物體(CameraRig)的位置 = camera的絕對(duì)位置。
所以要讓camera的絕對(duì)位置=targetPosition,就需要能滿足等式camera.localPosition + CameraRig.position = targetPosition。
這個(gè)等式通過(guò)移項(xiàng)可以獲得上面那行代碼。
考慮旋轉(zhuǎn)的瞬移:
有些程序像本文提到的例程一樣,需要考慮旋轉(zhuǎn)。
也就是說(shuō)camera在游戲中的朝向未必和HMD定位的朝向保持一致。
那需要對(duì)上面代碼做如下改變:
1. 對(duì)父物體CameraRig的旋轉(zhuǎn)也做出類(lèi)似改變
2. 設(shè)置旋轉(zhuǎn)后再設(shè)置位置
3. 改變相對(duì)位置到絕對(duì)位置的轉(zhuǎn)換式
最終的代碼是:
cameraRig.rotation = targetRotation * Quaternion .Inverse(camera.localRotation);
var relativePos = cameraRig.TransformPoint(camera.localPosition) - cameraRig.position;
cameraRig.position = targetPos - relativePos;
總結(jié)
最簡(jiǎn)單的實(shí)現(xiàn)瞬移的方式是,改變camera父物體的位置和朝向。另外為了減少眩暈感,可以加上鏡頭的淡入淡出。
閱讀此文的人還閱讀了...
- Htc Vive瞬移技術(shù)實(shí)現(xiàn)的難點(diǎn)
- Htc Vive瞬移是什么 Htc Vive為什么要做瞬移
- 英偉達(dá)將聯(lián)手Htc Vive進(jìn)軍商業(yè)領(lǐng)域
- Htc Vive幫助科學(xué)家走進(jìn)癌細(xì)胞
- 外媒表示Htc Vive銷(xiāo)量或在15萬(wàn)左右
- Htc Vive教育類(lèi)應(yīng)用推薦
- 追蹤芯片TS3633科普 或?yàn)镠tc Vive二代專用芯片
- Oculus創(chuàng)始人拿Htc Vive玩恐怖游戲被嚇?biāo)?/a>
- Htc Vive確定將參展TGS2016