public SoftwareMaterial(RMX_Material material)
        {
            Name = material.Name;

            // textures
            Textures = new Dictionary <string, string>();
            Values1  = new Dictionary <string, float>();
            Values2  = new Dictionary <string, Vector2>();
            Values3  = new Dictionary <string, Vector3>();
            Values4  = new Dictionary <string, Vector4>();
            foreach (var input in material.Inputs)
            {
                if (input.Type == "Value")
                {
                    switch (input.Values.Length)
                    {
                    case 1: Values1.Add(input.ID, input.Values[0]); break;

                    case 2: Values2.Add(input.ID, new Vector2(input.Values[0], input.Values[1])); break;

                    case 3: Values3.Add(input.ID, new Vector3(input.Values[0], input.Values[1], input.Values[2])); break;

                    case 4: Values4.Add(input.ID, new Vector4(input.Values[0], input.Values[1], input.Values[2], input.Values[3])); break;
                    }
                }
                else if (input.Type == "Texture")
                {
                    Textures.Add(input.ID, input.Content);
                }
            }
        }
        public SoftwareMaterial(RMX_Material material)
        {
            Name = material.Name;

            // textures
            Textures = new Dictionary<string,string>();
            Values1 = new Dictionary<string,float>();
            Values2 = new Dictionary<string,Vector2>();
            Values3 = new Dictionary<string,Vector3>();
            Values4 = new Dictionary<string,Vector4>();
            foreach (var input in material.Inputs)
            {
                if (input.Type == "Value")
                {
                    switch (input.Values.Length)
                    {
                        case 1: Values1.Add(input.ID, input.Values[0]); break;
                        case 2: Values2.Add(input.ID, new Vector2(input.Values[0], input.Values[1])); break;
                        case 3: Values3.Add(input.ID, new Vector3(input.Values[0], input.Values[1], input.Values[2])); break;
                        case 4: Values4.Add(input.ID, new Vector4(input.Values[0], input.Values[1], input.Values[2], input.Values[3])); break;
                    }
                }
                else if (input.Type == "Texture")
                {
                    Textures.Add(input.ID, input.Content);
                }
            }
        }