Last Updated
本页面解释如何在空间现实显示屏上获取显示的图像。有关如何使用捕获图像的示例,请参阅 Second Window sample。
前提条件
- 在计算机上安装Spatial Reality Display Settings应用程序(请参阅 设置Spatial Reality Display Settings。
- 安装Epic Games Launcher、Unreal Engine和Visual Studio。
- 设置 编程快速入门。
如何获取合成图像
SRDisplayPlugin中定义的 OnSRDRenderTextureCompletedDelegate 多播委托绑定一个函数后,您可以每帧获取在空间现实显示屏上渲染的合成图像。
-
准备要绑定到
OnSRDRenderTextureCompletedDelegate的函数。定义一个以FRHICommandListImmediate&作为第一个参数,以FTextureRHIRef作为第二个参数的函数。
Note
如果您使用的是Unreal Engine 4.27,请使用 FTexture2DRHIRef 作为第二个参数。
void RenderingSRDisplay2DWindow(FRHICommandListImmediate& RHICmdList, FTextureRHIRef SrcTexture);
- 从
FSRDisplaySystem获取OnSRDRenderTextureCompletedDelegate并将上一步中定义的函数绑定到它。有关如何将函数绑定到委托的更多信息,请参阅 Multicast Delegate。在此示例中,我们使用AddRaw()。
srdisplay_module::FSRDisplaySystem* SRDisplaySystem = USRDisplayFunctionLibrary::GetSRDisplaySystem(); FOnSRDRenderTextureCompletedDelegate& OnSRDRenderTextureCompletedDelegate = SRDisplaySystem->GetSRDRenderTextureCompletedDelegate(); OnSRDRenderTextureCompletedDelegate.AddRaw(FSample2DWindow::GetPlayWindow(), &FSample2DWindow::RenderingSRDisplay2DWindow);
-
当图像在空间现实显示屏上渲染时,绑定到
OnSRDRenderTextureCompletedDelegate的函数将被调用。函数的第二个参数包含正在渲染的合成图像的纹理。