Unity- Photosphere Photo Viewer for Google Cardboard (Unity- Google Cardboard全景照片查看器)

9
我正在尝试使用Unity3D构建类似Photosphere的应用程序,并与Google Cardboard一起使用。我需要加载不同的全景照片,并能够通过Cardboard眼镜进行立体视觉查看。但是,我在使用全景图像并将其渲染为Unity中的立体视图方面遇到了问题。如有建议,请不吝赐教。

你的问题需要改进。你没有展示出自己的努力,或者尝试过但失败的解决方案。请查看网站的常见问题解答,了解我们对问题的标准要求。 - K.L.
我是新手,正在学习Stackoverflow和Unity。我想评论,但是我的声望不够。所以,我按照你写下的步骤去做,但是我很难切换不同的天空盒(材质)。我尝试了GazeInputModule,但是我真的不懂。我想要做的是:
  • 在立体环境中观察
  • 如果暂停超过1或2秒钟,则会出现切换环境(天空盒材质)的按钮。
  • 使用注视或卡片板的扳机进入下一张幻灯片。抱歉我来晚了,希望你能帮助我。谢谢!
- moth_honda
2个回答

24

我能给你的最简单的解决方案:

A. 安装带有Android Pro插件的Unity Pro,设置Cardboard SDK For Unity,安装Android Build工具和SDK。

B 设置天空盒

  1. 获取立体全景图像(可能需要一段时间来加载图像,因为它是高分辨率的图像)。

  2. 在Unity中导入该图像,更改纹理类型Cubemap。选择映射圆柱形(经度和纬度)

  3. 创建一个材质,将着色器更改为Skybox/Cubemap

  4. 将纹理分配给材质。

  5. 在Unity 5 Pro顶部菜单栏中,选择Window->Ligthing,将材质拖到Skybox属性中。在这一步中,您可以以编程方式完成。将这些步骤与Cardboard资产和游戏对象相结合。好了,您已经制作了一个VR全景立体Cardboard应用程序!整个设置只需要花费您五分钟(不包括设置工具:D)。

如果您熟悉Unity,那么我的指导对您来说就很清楚。如果您在步骤中卡住了,请随时问我。编程愉快:)

额外提示: 您可以将大型纹理文件制作成资产捆绑包,像存储在服务器中的动态内容。您的应用程序只是一个简单的小型空应用程序。当应用程序启动时,请从服务器请求和下载资产包,然后操作纹理。:)

超级额外提示:不要忘记在Android Build Settings下生成资产捆绑包。如果没有生成,当捆绑包下载到Android手机时,您的纹理将会损坏。


这正是我所需要的,因为我也是Unity的新手。您能否就如何更改材质/纹理给予任何建议?当屏幕被点击时,我想要更改天空盒中使用的图像。我添加了一个新的游戏对象并检测到了点击,但不知道如何更改图像。理想情况下,我想下载该图像,但我甚至无法弄清楚我需要编写什么脚本才能使用我添加到项目中的资源进行更改。 - Jason Hocker
@JasonHocker 是的,Unity 的缺点是必须使用 Unity 来创建资产包。这非常令人烦恼。5个月前,我尝试创建一个Web应用程序,让非技术用户可以简单地上传图像并生成捆绑包,但失败了,因为只有使用UnityEditor框架才能将图像转换为纹理,这意味着我只能在Unity编辑器上以编程方式进行图像到纹理的转换(Unity将此过程视为调试模式),因此我无法构建一个Web工具供用户上传图像和应用程序处理转换。 - felixwcf
@JasonHocker Unity主要是一款游戏引擎,他们将资产捆绑工具视为生成游戏DLC的方式,这只能由开发团队完成... 如果您的非技术用户主要是您的员工(IT支持/市场营销),也许您可以简化流程并教育他们生成资产捆绑包。 - felixwcf
@JasonHocker 我刚想到一个想法。将您的Unity编辑器设置为本地服务器。创建一个可以访问您的服务器计算机并操纵Unity生成资产包的Web工具。(类似于使用服务器计算机上的Jenkins进行火灾测试自动化,并自动上传应用程序到应用商店的过程)。缺点是整个过程可能需要一些时间/人力来进行设置和开发。 - felixwcf
全景图像!不等于3D全景图像。您需要了解在虚拟现实中使用的全景图像类型。 - felixwcf
显示剩余15条评论

1
创建一个球体,编写着色器使其不被背面剔除并且可以从内部看到。使用全景图像作为球体的纹理。将VR相机架放置在球体中心。如果需要真正的立体声效果,请创建两个具有左右眼分别的纹理的球体。将球体放置在相机在架上的位置。使用层剔除,使每个相机只能看到正确的球体。

你不必执行所有这些步骤,因为你已经有了适用于Unity的Google Cardboard SDK。只需使用立体全景图像设置你的天空盒,并与Cardboard资产合并,即可实现所需的结果。自己设置立体相机可能需要编写脚本来调整失真校正、修复陀螺仪旋转、左右球体的平铺和偏移等问题...而这一切都已经由SDK处理好了。 :D - felixwcf
@Felix 哦,我指的是VR相机架,也就是CardboardMain预制件,应该说得更明确一些。不过我没想到天空盒,好的点子! :) - K.L.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接