示例#1
0
        public static ShaderMaterial FromX3DMaterial(Material material)
        {
            ShaderMaterial m = new ShaderMaterial()
            {
                diffuseColor  = new Vector4(material._diffuseColor, 1.0f),
                emissiveColor = new Vector4(material._emissiveColor, 1.0f),
                specularColor = new Vector4(material._specularColor, 1.0f),

                ambientIntensity = material.ambientIntensity,
                shininess        = material.shininess,
                transparency     = material.transparency,

                //test = new Vector4(0, 1, 0, 1),
                //test2 = new Vector4(1, 1, 0, 1)
            };

            return(m);
        }
        public void CollectMaterials()
        {
            ShaderMaterial  shaderMaterial;
            List <Material> materials;
            Appearance      appearance;

            materials  = new List <Material>();
            appearance = this.ItemsByType <Appearance>().FirstOrDefault();

            if (appearance != null)
            {
                materials = appearance.ItemsByType <Material>();
            }

            shaderMaterials = new List <ShaderMaterial>();

            foreach (Material material in materials)
            {
                shaderMaterial = ShaderMaterial.FromX3DMaterial(material);

                shaderMaterials.Add(shaderMaterial);
            }
        }