EnvironmentMappedModelProcessor.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #region File Description
  2. //-----------------------------------------------------------------------------
  3. // EnvironmentMappedModelProcessor.cs
  4. //
  5. // Microsoft XNA Community Game Platform
  6. // Copyright (C) Microsoft Corporation. All rights reserved.
  7. //-----------------------------------------------------------------------------
  8. #endregion
  9. #region Using Statements
  10. using System.ComponentModel;
  11. using Microsoft.Xna.Framework.Content.Pipeline;
  12. using Microsoft.Xna.Framework.Content.Pipeline.Processors;
  13. using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
  14. #endregion
  15. namespace CustomModelEffectPipeline
  16. {
  17. /// <summary>
  18. /// Custom content pipeline processor derives from the built-in
  19. /// ModelProcessor, extending it to apply an environment mapping
  20. /// effect to the model as part of the build process.
  21. /// </summary>
  22. [ContentProcessor]
  23. public class EnvironmentMappedModelProcessor : ModelProcessor
  24. {
  25. private string environmentMap = "seattle.bmp";
  26. [DisplayName("Environment Map")]
  27. [DefaultValue("seattle.bmp")]
  28. [Description("The environment map applied to the model.")]
  29. public string EnvironmentMap
  30. {
  31. get { return environmentMap; }
  32. set { environmentMap = value; }
  33. }
  34. /// <summary>
  35. /// Use our custom EnvironmentMappedMaterialProcessor
  36. /// to convert all the materials on this model.
  37. /// </summary>
  38. protected override MaterialContent ConvertMaterial(MaterialContent material,
  39. ContentProcessorContext context)
  40. {
  41. OpaqueDataDictionary processorParameters = new OpaqueDataDictionary();
  42. processorParameters["EnvironmentMap"] = EnvironmentMap;
  43. processorParameters["ColorKeyColor"] = ColorKeyColor;
  44. processorParameters["ColorKeyEnabled"] = ColorKeyEnabled;
  45. processorParameters["TextureFormat"] = TextureFormat;
  46. processorParameters["GenerateMipmaps"] = GenerateMipmaps;
  47. processorParameters["ResizeTexturesToPowerOfTwo"] =
  48. ResizeTexturesToPowerOfTwo;
  49. return context.Convert<MaterialContent, MaterialContent>(material,
  50. "EnvironmentMappedMaterialProcessor", processorParameters);
  51. }
  52. }
  53. }