# カスタム シーン レンダラー カスタムシーンレンダラーを作成するには、@'Stride.Rendering.Compositing.ISceneRenderer' を直接実装するか、@'Stride.Rendering.Compositing.DelegateSceneRenderer' によるデリゲートを使用します。 ## ISceneRenderer を実装する @'Stride.Rendering.Compositing.SceneRendererBase' は、@'Stride.Rendering.Compositing.ISceneRenderer' のデフォルトの実装です。この実装では、`DrawCore` メソッドが呼び出される前に、レンダラーの出力定義が `RenderContext.GraphicsDevice` プロパティに自動的にバインドされます。 ```cs [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' を使用します。 ```cs 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); // [...] }); ``` ## 関連項目 * [シーン レンダラー](scene-renderers.md) * [デバッグ レンダラー](debug-renderers.md)