カスタムシーンレンダラーを作成するには、@'Stride.Rendering.Compositing.ISceneRenderer' を直接実装するか、@'Stride.Rendering.Compositing.DelegateSceneRenderer' によるデリゲートを使用します。
@'Stride.Rendering.Compositing.SceneRendererBase' は、@'Stride.Rendering.Compositing.ISceneRenderer' のデフォルトの実装です。この実装では、DrawCore メソッドが呼び出される前に、レンダラーの出力定義が RenderContext.GraphicsDevice プロパティに自動的にバインドされます。
[DataContract("MyCustomRenderer")]
[Display("My Custom Renderer")]
public sealed class MyCustomRenderer : SceneRendererBase
{
// DrawCore メソッドの実装
// Implements the DrawCore method
protected override void DrawCore(RenderContext context, RenderFrame output)
{
// グラフィックデバイスを取得
// Access to the graphics device
var graphicsDevice = context.GraphicsDevice;
// 現在のレンダーターゲットをクリア
// Clears the currrent render target
graphicsDevice.Clear(output.RenderTargets[0], Color.CornflowerBlue);
// [...]
}
}
レンダラーを開発し、それをメソッドに直接アタッチするには、@'Stride.Rendering.Compositing.DelegateSceneRenderer' を使用します。
var sceneRenderer = new DelegateSceneRenderer(
(renderContext, frame) =>
{
// グラフィックデバイスを取得
// Access to the graphics device
var graphicsDevice = context.GraphicsDevice;
// 現在のレンダーターゲットをクリア
// Clears the currrent render target
graphicsDevice.Clear(output.RenderTargets[0], Color.CornflowerBlue);
// [...]
});