统一录制 360° 视频不是 equirectangular

Posted

技术标签:

【中文标题】统一录制 360° 视频不是 equirectangular【英文标题】:Record 360° video in unity is not equirectangular 【发布时间】:2020-04-01 23:50:21 【问题描述】:

我在 Unity 2018.2.10f1 中有一个时间线项目。我使用Unity Recorder导出 360° 视频。这是设置:

但输出不是恰逢的,不能播放360°视频:

出了什么问题以及如何解决?谢谢

2:1 视频

免费相机设置

【问题讨论】:

【参考方案1】:

编辑3: 显然,这个问题是由相机组件上的Physical camera 设置引起的。关闭物理相机将按预期导出 equirectangular 图像/电影。

以下信息仍然相关,但不是此特定问题的确切解决方案。


您的设置现在不导出 equirectangular 图像,而是导出正方形图像。等距矩形图像需要具有 2:1 的纵横比。而您当前的纵横比是 1:1。

在 Unity 记录器设置中,您已将“360 视图输出”设置为 2048x2048。导致您看到的方形图像。尝试将此设置为 4096x2048。这将产生一个纵横比为 2:1 的 4k 图像,这应该适用于 equirectangular 投影。

See this page 了解有关 equirectangular 投影如何工作的更多信息。 (强调我的)

扫描相机有时会覆盖不止一个 360° 转弯,但软件通常会假定等距矩形图像水平覆盖 360° 和垂直覆盖 180°,即确保您的 equirectangular 图像具有适当的 2:1 纵横比

编辑: 看着 2:1 图片,Unity 似乎记录了一个立方体贴图,而不是一个 equirectangular 图像。您可能需要使用来自the docs 的RenderTexture.ConvertToEquirect 将立方体贴图转换为equirectangular:

if (renderStereo)

    cubemap.ConvertToEquirect(equirect, Camera.MonoOrStereoscopicEye.Left);
    cubemap2.ConvertToEquirect(equirect, Camera.MonoOrStereoscopicEye.Right);

看看这个Unity bog,它更详细地介绍了统一如何使用立方体贴图/等角投影 来自博客:

生成立体立方体贴图后,我们可以将这些立方体贴图转换为立体 equirectangular 贴图,这是 360 视频播放器使用的投影格式 [...] 要将立方体贴图转换为立体 equirectangular 贴图,请调用 RenderTexture.ConvertToEquirect()

Recorder 上的“立方体贴图”宽度参数可能需要调整以获得所需的结果。但不确定哪个值最有效。

编辑2: 我创建了一个测试项目(GitHub here)。但是,尽管(似乎)具有相同的设置,但我没有得到与您相同的输出。我的输出看起来像一个非常精细的 equirectangular 图像(不需要进行任何转换,因为我认为可能需要如我的第一次编辑中所解释的那样)。

我的设置:

输出:

【讨论】:

谢谢,我认为这一定是一些愚蠢的问题。 视频现在宽了两倍,但看起来一样。当我在 360 度投影中查看它时,它似乎具有箱形视图(正交边)。 你能告诉我如何使用这个脚本吗?我应该将它附加到某个对象吗?它似乎使用了一些纹理。他们应该有什么参数?最好的是我可以导入和分析的示例项目。谢谢! 提前致谢!我很感激。 @LeosLiterak 我已经更新了我的答案,其中包含指向包含演示场景的 GitHub 存储库的链接。出于某种原因,我没有得到你似乎得到的类似立方体贴图的导出......我还包括了我的设置的屏幕截图。我唯一能想到的可能会有所不同的是相机设置。您能否在您为 Capture 定位的相机的编辑器中发布相机组件的图片(或将您的相机与我的演示场景中的相机进行比较)?

以上是关于统一录制 360° 视频不是 equirectangular的主要内容,如果未能解决你的问题,请参考以下文章

360补天漏洞平台漏洞挖掘入门视频课程

unity制作360°全景VR视频

实操下载在线m3u8视频为本地mp4

Unity:从设备摄像头录制视频

参考录制的视频以查看它是不是正在播放(JS)

Testcafe - 是不是可以(应该可以)用便携式浏览器录制视频?