将低级原生插件 (Unity) 与 Google Cardboard 结合使用
Using low-level native plugin (Unity) with Google Cardboard
我安装了 Unity 5.2.0f3 Personal 并从 Unity 文档站点获得了 低级渲染插件 的示例。我做了一些更改,因此项目场景显示:
- Unity 渲染的球体和平面。飞机的纹理从插件更新。
- 插件渲染的平面(使用 OpenGL ES 2)。
插件渲染的平面在每帧结束时渲染,因此它不会干扰 Unity 管线。到目前为止,这适用于 PC 和 Android.
最近我尝试将项目移植到 Google Cardboard(通过安装 SDK 包,将 CardboardAdapter 预制件添加到 MainCamera 等等)。问题是让插件在每一帧的末尾渲染平面 会使平面脱离 Google Cardboard 制作的 的 "fancy stuff" 所以场景被渲染使用 VR:以前由 Unity 渲染的球体和平面现在通过 Google Cardboard eyes 渲染,但我的平面不是。
我在脚本 "CardboardEye.cs" 的方法 "render()" 内移动了对插件的调用,但找不到合适的位置。飞机隐藏在 Cardboard 遮阳板后面,或者渲染在 Cardboard 遮阳板外面,或者...
所以此时我的问题有两个:
- 是否可以使用 Google Cardboard 有效地混合 Unity 和插件渲染?
- 如果是,怎么做?
谢谢。
好吧,我在 "Cardboard & VR Developers" Google+ 组的 this post 上运气更好。
基本上,我做了以下更改:
- 正在将 Google 适用于 Unity 的 Cardboard SDK 更新到 v0.5.2。
- 在方法 OnRenderObject()(Unity 脚本)中调用 GL.IssuePluginEvent。
现在可以使用了!
我安装了 Unity 5.2.0f3 Personal 并从 Unity 文档站点获得了 低级渲染插件 的示例。我做了一些更改,因此项目场景显示:
- Unity 渲染的球体和平面。飞机的纹理从插件更新。
- 插件渲染的平面(使用 OpenGL ES 2)。
插件渲染的平面在每帧结束时渲染,因此它不会干扰 Unity 管线。到目前为止,这适用于 PC 和 Android.
最近我尝试将项目移植到 Google Cardboard(通过安装 SDK 包,将 CardboardAdapter 预制件添加到 MainCamera 等等)。问题是让插件在每一帧的末尾渲染平面 会使平面脱离 Google Cardboard 制作的 的 "fancy stuff" 所以场景被渲染使用 VR:以前由 Unity 渲染的球体和平面现在通过 Google Cardboard eyes 渲染,但我的平面不是。
我在脚本 "CardboardEye.cs" 的方法 "render()" 内移动了对插件的调用,但找不到合适的位置。飞机隐藏在 Cardboard 遮阳板后面,或者渲染在 Cardboard 遮阳板外面,或者...
所以此时我的问题有两个:
- 是否可以使用 Google Cardboard 有效地混合 Unity 和插件渲染?
- 如果是,怎么做?
谢谢。
好吧,我在 "Cardboard & VR Developers" Google+ 组的 this post 上运气更好。
基本上,我做了以下更改:
- 正在将 Google 适用于 Unity 的 Cardboard SDK 更新到 v0.5.2。
- 在方法 OnRenderObject()(Unity 脚本)中调用 GL.IssuePluginEvent。
现在可以使用了!