在线捕捉帧而不会减慢游戏速度

时间:2018-03-11 19:07:21

标签: unity3d textures rendering

如何在团结游戏运行时捕捉背景帧?

我已经知道了

cam.Render();

Texture2D image = new Texture2D(cam.targetTexture.width,cam.targetTexture.height); image.ReadPixels(new Rect(0,0,cam.targetTexture.width,cam.targetTexture.height),0,0);

然后

使用EncodeToPng / JPG将纹理转换为图像

但是我所看到的使用这个额外的cam.render和编码来png和捕获帧会大大减慢操作速度,这需要花费大量时间。

如何在游戏运行时直接获取纹理或帧,可能来自GPU正在使用的OpenGL调用?

有没有人知道如何实现这个目标?

1 个答案:

答案 0 :(得分:1)

您是否尝试使用Unity的视频捕获API来记录游戏玩法?您可以找到教程和教学,但Unity文档是一个很好的起点。

https://docs.unity3d.com/Manual/windowsholographic-videocapture.html

它灵活实现,因此您可以根据应用程序及其设置方式,根据fps,分辨率等方面满足您的任何要求。