ObjectDelivererの共有メモリサンプル


共有メモリのサンプル

以前からGitHubにObjectDelivererのサンプルを用意していたのですが、共有メモリについては読み込み側しか実装しておらず処理が完結していなかったので新規で書き込み側も実装しました。

ここではサンプルの内容を簡単に紹介します。

概要

このサンプルではSceneCapture2Dで撮った画像をTexurueRenderTargetから取り出し、そこから共有メモリを経由して別のマテリアルに表示します。

読み込み側の実装

共有メモリのバッファサイズは画像バッファサイズ(800x450x4 byte)を設定しています。

書き込み側の実装

共有メモリのバッファサイズは画像バッファサイズ(800x450x4 byte)を設定しています。

使い道

この例では1つのプロセス内で完結しているためあまり意味はないですが、 例えばUE4のプロジェクトを2つ用意して、片方は共有メモリへの書き込みを担当し、もう片方は共有メモリからの読み込みを担当することで映像の受け渡しができます。

共有メモリはTCP/IPやUDPと違ってネットワーク経由でのデータの受け渡しはできませんが、その分大容量のデータを高速に渡せるため映像などの重いデータのプロセス間通信に適していると思います。

ご興味ある方はぜひ試してみてください。


See also