我正在开发一个 UE5 模块,该模块在每个刻度上获取高分辨率和常规分辨率的屏幕截图。我目前有一个代码适用于具有给定ResolutionWidth
和的一个屏幕截图ResolutionHeight
。它在每个屏幕截图之间以秒AmountOfPicturesToTake
为增量截取屏幕截图:ScreenshotIntervalSeconds
void AScreenShotUtility::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
if (numberOfShots >= AmountOfPicturesToTake)
{
return;
}
// Take High res screenshot
CurrentTimeWithRespectToInterval -= DeltaTime;
if (CurrentTimeWithRespectToInterval <= 0.0f)
{
++numberOfShots;
GIsHighResScreenshot = true;
GScreenshotResolutionX = ResolutionWidth;
GScreenshotResolutionY = ResolutionHeight;
FScreenshotRequest::RequestScreenshot(true);
CurrentTimeWithRespectToInterval = ScreenshotIntervalSeconds;
}
}
我希望能够以两种分辨率拍摄完全相同的帧的两个屏幕截图。我尝试使用RenderTargets
它并从中创建纹理,但纹理仅支持以 2 为基数的尺寸。
有没有办法可以在同一个模块实例中的每个刻度上截取两个屏幕截图,或者我需要创建两个考虑不同分辨率的实例?如果我这样做,我是否保证捕获的帧将完全相同?
非常感谢!