/// <summary> /// Create "default compositor" /// </summary> protected void CreateOriginalScene() { this.originalSceneMaterial = this.viewport.MaterialScheme; string compName = "Axiom/Scene/" + this.originalSceneMaterial; var scene = (Compositor)CompositorManager.Instance.GetByName(compName); if (scene == null) { scene = (Compositor)CompositorManager.Instance.Create(compName, ResourceGroupManager.InternalResourceGroupName); CompositionTechnique t = scene.CreateTechnique(); t.SchemeName = string.Empty; CompositionTargetPass tp = t.OutputTarget; tp.VisibilityMask = 0xFFFFFFFF; { CompositionPass pass = tp.CreatePass(); pass.Type = CompositorPassType.Clear; } { CompositionPass pass = tp.CreatePass(); pass.Type = CompositorPassType.RenderScene; //Render everything, including skies pass.FirstRenderQueue = RenderQueueGroupID.Background; pass.LastRenderQueue = RenderQueueGroupID.SkiesLate; } scene = (Compositor)CompositorManager.Instance.Load(compName, ResourceGroupManager.InternalResourceGroupName); } this.originalScene = new CompositorInstance(scene.GetSupportedTechniqueByScheme(), this); }
///<summary> /// Intialises the Compositor manager, which also triggers it to /// parse all available .compositor scripts. ///</summary> public void Initialize() { Compositor scene = (Compositor)Create("Ogre/Scene"); CompositionTechnique t = scene.CreateTechnique(); CompositionTargetPass tp = t.OutputTarget; tp.VisibilityMask = 0xFFFFFFFF; CompositionPass pass = tp.CreatePass(); pass.Type = CompositorPassType.Clear; CompositionPass nextPass = tp.CreatePass(); nextPass.Type = CompositorPassType.RenderScene; /// Render everything, including skies pass.FirstRenderQueue = RenderQueueGroupID.SkiesEarly; pass.LastRenderQueue = RenderQueueGroupID.SkiesLate; chains = new Dictionary <Viewport, CompositorChain>(); // parse all compositing scripts ParseAllSources(); }