统一录制 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的主要内容,如果未能解决你的问题,请参考以下文章