Пример #1
0
        public Material(MaterialType type, MaterialParameters parameters = null, string name = "")
        {
            counter++;

            if (name == "")
            {
                Name = "Material" + counter.ToString();
            }
            else
            {
                Name = name;
            }
            Type = type;
            if (parameters == null)
            {
                Parameters = new MaterialParameters();
            }
            else
            {
                Parameters = parameters;
            }
            AssignedObjects = new List <Mesh>();

            LoadShader();
        }
Пример #2
0
        public static Material CreateMaterial(MaterialType type, MaterialParameters parameters = null, string name = "")
        {
            if (Materials.ContainsKey(name))
            {
                return(null);
            }

            Material material = new Material(type, parameters, name);

            Materials.Add(material.Name, material);

            return(material);
        }
Пример #3
0
        private void FillPropertiesPanel(Material material)
        {
            nameTextBox.Text           = material.Name;
            typeComboBox.SelectedIndex = (int)material.Type;

            MaterialParameters parameters = material.Parameters;

            var color = MathHelper.ColorFloatToInt(parameters.Ambient);

            ambientColorButton.BackColor = Color.FromArgb(color[3], color[0], color[1], color[2]);

            color = MathHelper.ColorFloatToInt(parameters.Diffuse);
            diffuseButton.BackColor = Color.FromArgb(color[3], color[0], color[1], color[2]);

            color = MathHelper.ColorFloatToInt(parameters.Specular);
            specularButton.BackColor = Color.FromArgb(color[3], color[0], color[1], color[2]);

            shininessNumericUpDown.Value = (decimal)parameters.Shininess;

            SetPropertiesVisibility(material.Type);
        }