在VR中,有许多种实现场景漫游的方式这里来介绍最简单方便的一种场景漫游的实现方法。
当然这种做法也有许多的局限性例如:
- 照片的质量必须很高。
- 这样只能单单的进行场景漫游,交互会十分的麻烦。
- 难以使用光照进行烘焙。
首先我们需要一张全景照片或者鱼眼照片。如下:
Paste_Image.png
我们开始进行场景的搭建。
- 将我们的照片的Texture Type设置为cubemap(立方体纹理)
-
创建一个sphere并将它的shader更改为skybox Cubemap,并将之前的cubemap赋予这个材质。
Paste_Image.png -
场景搭建完成,现在让我们来添加一些简单的交互
现在使用cardboard实现一些简单的交互,当我们凝视门或者点击门的时候,我们可以进入那个房间(本质其实就是替换另外一个cubemap而已)。我们可以在“门的位置”添加一个空物体并为它添加一个BoxCollider,作为检测。
Paste_Image.png- 如果你觉得麻烦你也可以直接调用cardboard的SDK,实现点击就进门。
- 你也可以不使用cardboard的SDK直接使用射线进行判断。(要发布到移动端也必须绑定OnTrigger事件)
-
这里我们点击不同的门应该就进入不同的场景(替换不同的贴图),所以我们在每个门上添加不同的空物体作为collider。
-
这里为了使我们cardboard中的UI prefab能相应到事件(碰到有交互的物体凝视点会变大),我们为这个场景添加EventSystem,并更改。(GazeInputModule的优先级必须高于Standalone而且会和普通的UI事件冲突)
- 为相机添加上Physics Raycast组件,同样为我们的每个门的空物体,绑定EventTrigger。
- 实现凝视不同的门进行不同的房间的功能。
如果需要更精细的交互,可以使用Cube作为载体。并在它的四周添加collider以免脱离场景造成世界曝光。其他做法都一样。
Paste_Image.png
网友评论