#region File Description //----------------------------------------------------------------------------- // EnvironmentMappedModelProcessor.cs // // Microsoft XNA Community Game Platform // Copyright (C) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- #endregion #region Using Statements using System.ComponentModel; using Microsoft.Xna.Framework.Content.Pipeline; using Microsoft.Xna.Framework.Content.Pipeline.Processors; using Microsoft.Xna.Framework.Content.Pipeline.Graphics; #endregion namespace CustomModelEffectPipeline { /// /// Custom content pipeline processor derives from the built-in /// ModelProcessor, extending it to apply an environment mapping /// effect to the model as part of the build process. /// [ContentProcessor] public class EnvironmentMappedModelProcessor : ModelProcessor { private string environmentMap = "seattle.bmp"; [DisplayName("Environment Map")] [DefaultValue("seattle.bmp")] [Description("The environment map applied to the model.")] public string EnvironmentMap { get { return environmentMap; } set { environmentMap = value; } } /// /// Use our custom EnvironmentMappedMaterialProcessor /// to convert all the materials on this model. /// protected override MaterialContent ConvertMaterial(MaterialContent material, ContentProcessorContext context) { OpaqueDataDictionary processorParameters = new OpaqueDataDictionary(); processorParameters["EnvironmentMap"] = EnvironmentMap; processorParameters["ColorKeyColor"] = ColorKeyColor; processorParameters["ColorKeyEnabled"] = ColorKeyEnabled; processorParameters["TextureFormat"] = TextureFormat; processorParameters["GenerateMipmaps"] = GenerateMipmaps; processorParameters["ResizeTexturesToPowerOfTwo"] = ResizeTexturesToPowerOfTwo; return context.Convert(material, "EnvironmentMappedMaterialProcessor", processorParameters); } } }