@'Stride.Rendering.RenderFeature' は、指定されたタイプの @'Stride.Rendering.RenderObject' の描画を担当します。
レンダー機能は、いくつかのフェーズを持ちます。
収集(collection) フェーズでは、何を処理してレンダリングする必要があるかを決定します。 これは通常、グラフィックス コンポジターによって行われます。
収集フェーズの内容は以下の通りです。
抽出(extract) フェーズでは、先に収集したオブジェクトのゲームステートから、レンダー固有の短命な構造体にデータをコピーします。これは通常、@'Stride.Rendering.RenderSystem' と @'Stride.Rendering.RenderFeature' によって行われます。
ゲームの更新やスクリプトがブロックされるため、できるだけ速く、できるだけ重い計算をしないようにします。重い計算は準備に回すべきです。
[!Note] 今のところ、Stride ではゲームの更新やスクリプトの並列化は行っていないため、準備(prepare) と 描画(draw) のフェーズが終了するまでブロックは解除されません。
タスクの例:
準備(prepare) フェーズでは、GPU リソースを準備し、重たい計算を行います。 これは通常、@'Stride.Rendering.RenderSystem' と @'Stride.Rendering.RenderFeature' によって行われます。
タスクの例:
描画(draw) フェーズでは、GPU のコマンドリストを埋めます。
タスクの例:
収集(collection) フェーズで作成され、描画(draw) フェーズで使用されるビューとステージの典型的な例を示します。
パイプラインプロセッサー(Pipeline processors) は、パイプライン ステートを作る際に呼び出されるクラスです。これにより、特定のレンダーステージでアルファブレンディングやワイヤーフレームレンダリングを有効にするといったことが可能になります。
Stride には、定義済みのパイプラインプロセッサーがいくつか含まれています。 また、自分で作成することもできます。