コンテンツにスキップ

Extending RenderStream (RenderStream の拡張)

RenderStream の最も強力な点の1つは、新しいレンダーエンジンをサポートするように拡張できることです。このページでは、新しいレンダーエンジンへのサポートを拡張する方法について説明します。

このセクションでは、RenderStream を任意のレンダーエンジンと統合する前に理解しておくべき RenderStream の機能について説明します。

RenderStream は、Designer サーバーがタイムスタンプ付きの「フレーム要求」メッセージをレンダーエンジンに送信するエコシステムです。これらのメッセージには、シーンのレンダリング方法を記述したフレームメタデータが付随します。サポートするメタデータの種類は次のとおりです。

  • カメラトランスフォーム
  • テキスト
  • 数値
  • ビデオテクスチャ

レンダーエンジンは、API を介してフレーム要求をリッスンし、完成したテクスチャを API に送り返して応答することが求められます。

サポートするレンダラーは次のとおりです。

  • DirectX 11
  • DirectX 12
  • OpenGL
  • Vulkan

RenderStream は、舞台裏でこれらのテクスチャのネットワーク経由での送受信を管理し、レンダーエンジンが提供する画像を Disguise メディアサーバーに表示します。

レンダーエンジンは、RenderStream API を介して次のメタデータを Disguise と共有することもできます。

  • レンダリングに使用するメタデータの定義(「スキーマ」と呼ばれます)
  • ライブプロファイリングデータ
  • ライブコンソールログ
  • エンジンのカスタムステータス

また、複数のマシンにまたがる複数のレンダーエンジンインスタンス間で同期したクラスターレンダリングをサポートするための特別なツールも API 内にあります。

Designer と RenderStream エコシステムは連携して、レンダリングの追加制御を提供します。これらは把握しておくべきものですが、自分で実装する必要はありません。

  • Designer は、レンダーノード上に存在する起動可能なアセットを検出できます。これにより、それらをユーザーに表示し、起動/終了できます。
  • Designer は、レンダーアプリケーションの起動と終了を行えます。
  • Designer は、分散レンダリングのために、あるレンダーノードからレンダーノードのクラスター全体へアセットをコピーすることもできます。

独自の実装を作成する前に、お好みのエンジンがすでにサポートされているかどうかを確認すると役立つ場合があります。

Disguise は、次のレンダーエンジンを自社でサポートしています。

次のサードパーティも、独自の RenderStream 統合を開発しています。

独自の RenderStream 統合の構築を始めたい場合は、公式の開発者ドキュメントサイトをこちらでご覧いただけます。

C、C++、Python のバインディングをサポートしています。

C および C++ バインディングについては、RenderStream の GitHub をご覧ください。API 定義と、サポートするすべてのレンダーエンジンのサンプルが含まれています。

さらに、次のオープンソース実装をガイドとして使用できます。

Python バインディングのセットは、RenderStream-py プロジェクトで入手できます。

これらのバインディングには、新しいアセットタイプ(.pyrs)を自動構成するスクリプトが含まれており、requirements.txt を自動でインストールし、Python プロジェクトを実行するための仮想環境を構成します。

カスタムエンジン向けに、カスタムの環境変数リストの設定をサポートしています。これは、アセットの実行ファイルと同じディレクトリーに .env ファイルを追加することで行えます。

このファイルは assetname_variables.env という形式で、すべて小文字にする必要があります。

環境変数ファイルの例を次に示します。

NAME=VALUE # No spaces around the equals sign
NAME2=VALUE2
# You can also define a variable over multiple lines
MULTI="""
This is a
multiline variable
"""

サポートしてほしい拡張や追加がある場合は、GitHub を通じてのプルリクエストやコメントを歓迎します。サポートについてお問い合わせいただく場合は、support@disguise.one までご連絡ください。