private void ProcessTextures(MaterialContent input, SkinnedModelMaterialContent skinnedModelMaterial, ContentProcessorContext context) { foreach (string key in input.Textures.Keys) { ExternalReference<TextureContent> texture = input.Textures[key]; if (!String.IsNullOrEmpty(texturePath)) { string fullFilePath; if (texturePathType == PathType.Relative) { // If relative path string sourceAssetPath = Path.GetDirectoryName(input.Identity.SourceFilename); fullFilePath = Path.GetFullPath( Path.Combine(sourceAssetPath, texturePath)); } else { fullFilePath = texturePath; } texture.Filename = Path.Combine(fullFilePath, Path.GetFileName(texture.Filename)); } ProcessTexture(key, texture, skinnedModelMaterial, context); } }
public override MaterialContent Process(MaterialContent input, ContentProcessorContext context) { SkinnedModelMaterialContent skinnedModelMaterialContent = new SkinnedModelMaterialContent(); // Processes all textures ProcessTextures(input, skinnedModelMaterialContent, context); // Processes surface material ProcessMaterial(input, skinnedModelMaterialContent, context); return skinnedModelMaterialContent; }
public override MaterialContent Process(MaterialContent input, ContentProcessorContext context) { MaterialContent processedMaterial; if (context.TargetProfile == Microsoft.Xna.Framework.Graphics.GraphicsProfile.HiDef) { processedMaterial = new SkinnedModelMaterialContent(); } else { processedMaterial = new SkinnedMaterialContent(); } ProcessTextures(input, processedMaterial, context); // Processes surface material ProcessMaterial(input, processedMaterial, context); return processedMaterial; }
protected virtual void ProcessMaterial(MaterialContent input, SkinnedModelMaterialContent skinnedModelMaterial, ContentProcessorContext context) { BasicMaterialContent basicMaterial = input as BasicMaterialContent; if (basicMaterial != null) { skinnedModelMaterial.EmissiveColor = basicMaterial.EmissiveColor.GetValueOrDefault( Vector3.Zero); skinnedModelMaterial.DiffuseColor = basicMaterial.DiffuseColor.GetValueOrDefault( Vector3.One); skinnedModelMaterial.SpecularColor = basicMaterial.SpecularColor.GetValueOrDefault( Vector3.One); skinnedModelMaterial.SpecularPower = basicMaterial.SpecularPower.GetValueOrDefault( 16); } }
protected virtual void ProcessTexture(string key, ExternalReference<TextureContent> texture, SkinnedModelMaterialContent skinnedModelMaterial, ContentProcessorContext context) { if (key.Equals(DiffuseMapKey)) { skinnedModelMaterial.DiffuseMapEnabled = true; skinnedModelMaterial.DiffuseMapContent = base.BuildTexture(key, texture, context); } else if (key.Equals(NormalMapKey)) { skinnedModelMaterial.NormalMapEnabled = true; skinnedModelMaterial.NormalMapContent = base.BuildTexture(key, texture, context); } else if (key.Equals(SpecularMapKey)) { skinnedModelMaterial.SpecularMapEnabled = true; skinnedModelMaterial.SpecularMapContent = base.BuildTexture(key, texture, context); } }