public static ModelPipeline RenderModelBatch(this ModelPipeline pipeline)
        {
            var stage = new RenderModelBatchStage(pipeline.Device);

            pipeline.Add(stage);
            return(pipeline);
        }
        public static ModelPipeline RenderGeometry(this ModelPipeline pipeline, GeometrySystem geometrySystem)
        {
            var stage = new RenderGeometryStage(pipeline.Device, geometrySystem);

            pipeline.Add(stage);
            return(pipeline);
        }
        public static ModelPipeline CombineDiffuseWithLighting(this ModelPipeline pipeline, CombineEffect effect)
        {
            var stage = new CombineDiffuseWithLightingStage(pipeline.Device, effect);

            pipeline.Add(stage);
            return(pipeline);
        }
        public static ModelPipeline AntiAlias(this ModelPipeline pipeline, FxaaEffect effect, float strength)
        {
            var stage = new AntiAliasStage(pipeline.Device, effect, strength);

            pipeline.Add(stage);
            return(pipeline);
        }
예제 #5
0
        public static ModelPipeline RenderProjectors(this ModelPipeline pipeline, ProjectorPipeline projectorPipeline)
        {
            var stage = new RenderProjectorsStage(projectorPipeline);

            pipeline.Add(stage);

            return(pipeline);
        }
예제 #6
0
        public static ModelPipeline RenderLights(
            this ModelPipeline pipeline,
            LightingPipeline lightingPipeline)
        {
            var stage = new RenderLightsStage(lightingPipeline);

            pipeline.Add(stage);
            return(pipeline);
        }
예제 #7
0
        private void RunModelPipeline(MappingContext context, ModelProcessorSchema modelProcessorSchema)
        {
            var modelPipeline = new ModelPipeline();

            foreach (ProcessorSchema schema in modelProcessorSchema.Processors)
            {
                if (_processorFactory.TryGetProcessor(schema.Type, out IModelProcessor contextProcessor))
                {
                    modelPipeline.Add(contextProcessor, schema);
                }
            }

            var modelContext = new ModelContext(context, context.Input);

            modelPipeline.Run(modelContext);

            if (!modelContext.Faulted)
            {
                context.Input = modelContext.Context;
            }
        }
예제 #8
0
 public static ModelPipeline ClearModelRenderTargets(this ModelPipeline pipeline)
 {
     pipeline.Add(new ClearStage());
     return(pipeline);
 }