示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
 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);
     //}
 }
示例#4
0
 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);
     }
 }