sta*_*b1t 0 unreal-engine4 vulkan
我使用 Unreal 作为模拟服务器。现在我可以从 Python 客户端连接到它并通过 UDP 传输/接收数据。但是我仍然没有找到一种正确的方法来捕获帧并将其流式传输到 Python 客户端以在 OpenCV 中进行处理。
我试图制作屏幕截图并将其保存到文件中,但这种方式太慢了。
我也尝试渲染到纹理目标,但这对我来说也不是最佳方式,因为我需要渲染 2 次(对于相机和 2d 捕捉器)。
现在我找到了一种访问 Vulkan 帧缓冲区的方法(我在 Linux 上),但我找不到任何文档或示例,以及如何操作。
如何在自定义 C++ 演员中获取原始帧缓冲区字节数组?
您好,您实际上可以从委托访问此信息: FSlateApplication::Get().GetRenderer()->OnBackBufferReadyToPresent() 这将在帧准备就绪时调用,它将返回渲染的 SWindow 的指针和包含实际的后台缓冲区,拥有 RHI 纹理是您捕获字节的机会。
UE 已经有一个类可以在他们与 iPad 一起使用的虚拟相机的实现中执行您想要的操作。它被称为 FFrameGrabber,您可以使用它,或者如果您需要更复杂的东西,您可以查看如何实现 OnBackBufferReadyToPresent 委托