protected internal override void Write(ContentWriter output, SkinnedMaterialContent value)
        {
            bool hasTexture = value.Textures.ContainsKey(SkinnedMaterialContent.TextureKey);

            output.WriteExternalReference(hasTexture ? value.Texture : null);

            output.Write(value.WeightsPerVertex.GetValueOrDefault(4));
            output.Write(value.DiffuseColor ?? Vector3.One);
            output.Write(value.EmissiveColor ?? Vector3.Zero);
            output.Write(value.SpecularColor ?? Vector3.Zero);
            output.Write(value.SpecularPower ?? 0);
            output.Write(value.Alpha ?? 1.0f);
        }
        protected internal override void Write(ContentWriter output, EffectMaterialContent value)
        {
            output.WriteExternalReference(value.CompiledEffect);
            var dict = new Dictionary <string, object>();

            foreach (var item in value.Textures)
            {
                dict.Add(item.Key, item.Value);
            }
            foreach (var item in value.OpaqueData)
            {
                if (item.Key != EffectMaterialContent.EffectKey && item.Key != EffectMaterialContent.CompiledEffectKey)
                {
                    dict.Add(item.Key, item.Value);
                }
            }
            output.WriteObject(dict);
        }