我正在开发计算机视觉应用程序,需要一种方法来提供一些自动化测试。我不能使用简单的(静态)视频流,因为部分测试必须涉及更改摄像机角度和缩放。所以我认为一个好的方法是在 3D 动画中模拟相机,这样相机可以在动画运行时四处移动,并且仍然提供视觉上一致的 2D 视频流。
我知道我可以使用 OpenGL 或 Unity3D 或其他任何工具编写所有这些代码,但我绝不是 3D 编程专家,对于我只需要作为测试平台的东西来说,它看起来像是很多学习曲线。我希望有人能帮我找到实现这个的捷径——事实上,如果有一个预构建的工具可以做到这一点,我会很乐意使用它(我还没有找到)。以下是一般约束:
- 从文件加载 3D 动画(我猜是 FBX 格式,但任何格式都可以)
- 开始渲染动画
- 将视频输出到 h.264 流 - 无论是存储到内存、文件、网络流式传输,还是其他任何方式,我都可以将其连接起来
- 允许实时更改相机位置和方向 - 同样,使用什么机制进行这些更改并不重要
有没有一种简单的方法可以做到这一点,还是我必须硬着头皮成为一名 OpenGL 程序员?
最佳答案
嘿@ufunks 我想你需要一些模拟器。
就我个人而言,我建议您使用 Gazebo 模拟。对于您的每项任务,您可以使用以下教程
- 加载 3D 模型:http://gazebosim.org/tutorials?tut=actor&cat=build_robot
- 更改相机 View /缩放:http://answers.ros.org/question/10342/programatically-set-the-camera-pose-in-gazebo-or-rviz/
- 录制:ffmpeg或者一些截屏软件
也许还有其他更好的模拟器。
关于linux - 如何将动画 3D 场景渲染为 h.264 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56367664/