教育事業部の事業内容 演劇、音楽のタレント並びに作詞家、作曲家、編曲家等アーティストの育成及びマネージメント、コンピュータ教室の経営等を行っています。
ゲームエンジン Unity オンラインマニュアル
教育事業 パルテア

〜Unity Graphics スクリプト可能なレンダー パイプラインの基礎〜 #ゲームプログラミング #ゲーム制作 #unity3d #unity3dgames

Unity の Scriptable Render Pipeline (SRP) は、C# スクリプトを介してレンダリングを制御できる機能です。 SRP は、ユニバーサル レンダー パイプライン (URP) と高解像度レンダー パイプライン (HDRP) を支えるテクノロジーです。

このページでは、Unity の Scriptable Render Pipeline (SRP) がどのように機能するかを説明し、いくつかの重要な概念と用語を紹介します。 このページの情報は、ユニバーサル レンダー パイプライン (URP)、高解像度レンダー パイプライン (HDRP)、および SRP に基づくカスタム レンダー パイプラインに適用されます。

Scriptable Render Pipeline は、C# スクリプトを使用してレンダリング コマンドをスケジュールおよび構成できる薄い API レイヤーです。 Unity はこれらのコマンドを低レベルのグラフィックス アーキテクチャに渡し、グラフィックス API に命令を送信します。

URP と HDRP は SRP の上に構築されます。 SRP 上に独自のカスタム レンダー パイプラインを作成することもできます。

SRP に基づくすべてのレンダー パイプラインには、次の 2 つの主要なカスタマイズ要素があります。

レンダーパイプラインインスタンス。 これは、レンダー パイプラインの機能を定義するクラスのインスタンスです。 そのスクリプトは RenderPipeline から継承し、その Render() メソッドをオーバーライドします。

レンダー パイプライン アセット。 これは、使用するレンダー パイプライン インスタンスとその構成方法に関するデータを保存する Unity プロジェクト内のアセットです。 そのスクリプトは RenderPipelineAsset を継承し、その CreatePipeline() メソッドをオーバーライドします。

これらの要素の詳細と、カスタム レンダー パイプラインでそれらを作成する手順については、「レンダー パイプライン アセットとレンダー パイプライン インスタンスの作成」を参照してください。

ScriptableRenderContext は、レンダー パイプラインのカスタム C# コードと Unity の低レベル グラフィックス コードの間のインターフェイスとして機能するクラスです。

ScriptableRenderContext API を使用して、レンダリング コマンドをスケジュールして実行します。 詳細については、「スクリプト可能レンダー パイプラインでのレンダリング コマンドのスケジュールと実行」を参照してください。

SRP を使用する場合、これらを使用して Unity が特定の時間に C# コードを呼び出すようにします。

RenderPipeline.Render は、SRP への主要なエントリ ポイントです。 Unity はこのメソッドを自動的に呼び出します。 カスタム レンダー パイプラインを作成している場合は、ここからコードの作成を開始します。

RenderPipelineManager クラスには、サブスクライブできる次のイベントがあるため、レンダリング ループの特定の時点でカスタム コードを実行できます。

beginFrameRendering - 注: これによりガベージが生成される可能性があります。 代わりに beginContextRendering を使用してください。
endFrameRendering - 注: これによりガベージが生成される可能性があります。 代わりに endContextRendering を使用してください。
beginContextRendering
endContextRendering
開始カメラレンダリング
終了カメラレンダリング

このページでは、CommandBuffers を使用するか、ScriptableRenderContext への直接 API 呼び出しを行うことにより、Scriptable Render Pipeline (SRP) でレンダリング コマンドをスケジュールおよび実行する方法について説明します。 このページの情報は、ユニバーサル レンダー パイプライン (URP)、高解像度レンダー パイプライン (HDRP)、および SRP に基づくカスタム レンダー パイプラインに適用されます。

SRP では、C# スクリプトを使用してレンダリング コマンドを構成およびスケジュールします。 次に、Unity の低レベル グラフィック アーキテクチャにそれらを実行するよう指示し、グラフィック API に命令を送信します。

これを行う主な方法は、ScriptableRenderContext への API 呼び出しを行うことですが、CommandBuffers をすぐに実行することもできます。

SRP では、ScriptableRenderContext クラスは、C# レンダー パイプライン コードと Unity の低レベル グラフィックス コードの間のインターフェイスとして機能します。 SRP レンダリングは遅延実行を使用して機能します。 ScriptableRenderContext を使用してレンダリング コマンドのリストを作成し、Unity にそれらを実行するように指示します。 次に、Unity の低レベルのグラフィック アーキテクチャがグラフィック API に命令を送信します。

レンダリング コマンドをスケジュールするには、次のことができます。

ScriptableRenderContext.ExecuteCommandBuffer を使用して、CommandBuffers を ScriptableRenderContext に渡します。
ScriptableRenderContext.Cull や ScriptableRenderContext.DrawRenderers などの Scriptable Render Context への直接 API 呼び出しを行う
スケジュールしたコマンドを実行するように Unity に指示するには、ScriptableRenderContext.Submit を呼び出します。 コマンドのスケジュールに CommandBuffer を使用したか、API を呼び出してコマンドをスケジュールしたかは関係ないことに注意してください。 Unity は、ScriptableRenderContext 上のすべてのレンダリング コマンドを同じ方法でスケジュールし、Submit() を呼び出すまでそれらのコマンドを実行しません。

    unity

  • 日時:// ~ //
  • 名称:
  • 場所:
  • 料金:¥0 (消費税込)