本文适用于虚幻引擎4.9
每一帧,我希望将其保存到文件中(覆盖现有文件)。
对于我制作的简单D3D11演示,我已经能够使用以下方法实现:
void Engine::CaptureFrame(D3DX11_IMAGE_FILE_FORMAT format, const LPCTSTR fileName){
backbuffer->GetResource(&resource);
ID3D11Texture2D* texture;
HRESULT hResult = resource->QueryInterface(__uuidof(ID3D11Texture2D), reinterpret_cast<LPVOID*>(&texture));
D3DX11SaveTextureToFile(deviceContext, texture, format, fileName);
//Clean up
texture->Release();
resource->Release();
}
我也用OpenGL做过这件事,使用了一个叫做“FreeImage”的库。
我不想修改UE4源代码,而是想找到一种“钩入”UE4并“捕获”帧的方法。
我已经成功地使用Open Broadcasting Software实现了这一点,但我想在UE4内部本地完成,可以通过C++或蓝图实现。
我也知道我可以从编辑器中完成这个操作,但那不是我想要的。我想在运行时自动完成。
我该如何开始?这是否可能?