最終更新日
このページでは、Spatial Reality Displayに表示されている映像について取得する方法を説明します。取得した映像の利用方法については、サンプルアプリ を参考にしてください。
事前準備
- Spatial Reality Display SettingsがPCにインストールされていること。インストールしていない場合は Setup Spatial Reality Display Settings を参照してください。
- The Epic Games LauncherとUnreal Engine、Visual Studio がインストールされていること。
- Unreal EngineでC++を利用 できる状態になっていること。
結合画像の取得方法
SRDisplayPluginに定義されている On空間再現ディスプレイRenderTextureCompletedDelegate を設定することで、描画のタイミングで、Spatial Reality Displayに表示されている混合画像を取得できます。
-
On空間再現ディスプレイRenderTextureCompletedDelegateに設定する関数の準備をします。第1引数がFRHICommandListImmediate&、第2引数がFTextureRHIRefとなる関数を定義してください。
Note
Unreal Engine 4.27を利用している場合は、第2引数は FTexture2DRHIRef としてください。
void RenderingSRDisplay2DWindow(FRHICommandListImmediate& RHICmdList, FTextureRHIRef SrcTexture);
- FSRDisplaySystem から On空間再現ディスプレイRenderTextureCompletedDelegate を取得し、前のステップで定義した関数を設定します。On空間再現ディスプレイRenderTextureCompletedDelegate への設定方法については、マルチキャスト デリゲート を参照してください。例では、AddRaw() を利用します。
srdisplay_module::FSRDisplaySystem* SRDisplaySystem = USRDisplayFunctionLibrary::GetSRDisplaySystem(); FOn空間再現ディスプレイRenderTextureCompletedDelegate& On空間再現ディスプレイRenderTextureCompletedDelegate = SRDisplaySystem->Get空間再現ディスプレイRenderTextureCompletedDelegate(); On空間再現ディスプレイRenderTextureCompletedDelegate.AddRaw(FSample2DWindow::GetPlayWindow(), &FSample2DWindow::RenderingSRDisplay2DWindow);
- Spatial Reality Displayに描画されるタイミングで、On空間再現ディスプレイRenderTextureCompletedDelegate に設定した関数が呼びだされます。第2引数が結合画像のテクスチャとなります。