unity3d - 统一录制 360° 视频不是 equirectangular
问题描述
我在 Unity 2018.2.10f1 中有一个时间线项目。我使用Unity Recorder
导出360 ° 视频。这是设置:
但输出不是 equirectangular,不能作为 360° 视频播放:
出了什么问题以及如何解决?谢谢
2:1 视频
免费相机设置
解决方案
Edit3:
显然问题是由Physical camera
相机组件的设置引起的。关闭物理相机将按预期导出 equirectangular 图像/电影。
下面的信息仍然是相关的,但不是这个特定问题的确切解决方案。
您的设置现在不导出 equirectangular 图像,而是导出方形图像。等距矩形图像需要具有 2:1 的纵横比。而您当前的纵横比是 1:1。
在 Unity 记录器设置中,您已将“360 视图输出”设置为 2048x2048。导致您看到的方形图像。尝试将此设置为 4096x2048。这将产生一个纵横比为 2:1 的 4k 图像,这应该适用于 equirectangular 投影。
有关equirectangular 投影如何工作的更多信息,请参阅此页面。(强调我的)
扫描相机有时会覆盖超过一个 360° 转弯,但软件通常假定等距矩形图像水平覆盖 360° 和垂直 180°,即确保您的等距矩形图像具有 2:1 的适当纵横比。
编辑:
查看 2:1 图片,Unity 似乎记录了一个立方体贴图,而不是一个 equirectangular 图像。您可能需要使用文档RenderTexture.ConvertToEquirect
将立方体贴图转换为equirectangular :
if (renderStereo)
{
cubemap.ConvertToEquirect(equirect, Camera.MonoOrStereoscopicEye.Left);
cubemap2.ConvertToEquirect(equirect, Camera.MonoOrStereoscopicEye.Right);
}
看看这个Unity 沼泽,它更详细地介绍了 unity 如何使用立方体贴图/等角投影来自博客:
生成立体立方体贴图后,我们可以将这些立方体贴图转换为立体 equirectangular 贴图,这是 360 视频播放器使用的投影格式 [...] 要将立方体贴图转换为立体 equirectangular 贴图,请调用 RenderTexture.ConvertToEquirect()
Recorder
可能需要调整“立方体贴图”上的宽度参数以获得所需的结果。但不确定哪个值最有效。
Edit2:
我创建了一个测试项目(在GitHub 上)。但是,尽管(似乎)具有相同的设置,但我没有得到与您相同的输出。我的输出看起来像一个非常精细的 equirectangular 图像(不需要进行任何转换,因为我认为可能需要如我的第一次编辑中所解释的那样)。
推荐阅读
- html - 如何访问本网站的表格及其内容?
- twilio - Twilio - 子流
- kubernetes - Kubernetes 入口控制器无法找到证书机密
- visual-studio - Outlook 与 Microsoft.Office.Interop.Outlook.dll 的集成
- html - 背景图像在断点处消失(引导程序)
- c# - 我没有按 Enter 但 ReadLine() 说我做了
- spring-boot - 引起:java.lang.ClassNotFoundException:com.querydsl.apt.jpa.JPAAnnotationProcessor
- ajax - 不应该对 JSON 对象数组抛出验证错误?
- python - 如何在不绘制图形的情况下提取图形上的 Y 轴值?
- c# - 如何在C#中用“””替换文本“\”