Esempio n. 1
0
        private static Vector4 _GetDefaultParameter(KnownChannel key)
        {
            switch (key)
            {
            case KnownChannel.Emissive: return(Vector4.Zero);

            case KnownChannel.Normal:
            case KnownChannel.ClearCoatNormal:
            case KnownChannel.Occlusion:
                return(Vector4.UnitX);

            case KnownChannel.BaseColor:
            case KnownChannel.Diffuse:
                return(Vector4.One);

            case KnownChannel.MetallicRoughness: return(new Vector4(1, 1, 0, 0));

            case KnownChannel.SpecularGlossiness: return(Vector4.One);

            case KnownChannel.ClearCoat: return(Vector4.Zero);

            case KnownChannel.ClearCoatRoughness: return(Vector4.Zero);

            case KnownChannel.Transmission: return(Vector4.Zero);

            default: throw new NotImplementedException();
            }
        }
Esempio n. 2
0
        internal static Collection CreateDefaultProperties(KnownChannel key)
        {
            var ppp        = _CreateDefaultProperties(key).ToArray();
            var collection = new Collection(ppp);

            collection.Reset();
            return(collection);
        }
Esempio n. 3
0
        internal ChannelBuilder(MaterialBuilder parent, KnownChannel key)
        {
            Guard.NotNull(parent, nameof(parent));

            _Parent = parent;
            _Key    = key;

            SetDefaultParameter();
        }
Esempio n. 4
0
        internal ChannelBuilder(MaterialBuilder parent, KnownChannel key)
        {
            Guard.NotNull(parent, nameof(parent));

            _Parent = parent;
            _Key    = key;

            _Parameters = MaterialValue.CreateDefaultProperties(key);
        }
Esempio n. 5
0
 public void SetChannelValue(KnownChannel ch, byte value)
 {
     foreach (Channel ch1 in Fixture.Channels)
     {
         if (ch1.Type == ch)
         {
             SetChannelValue(ch1, value);
             break;
         }
     }
 }
Esempio n. 6
0
        private static IEnumerable <_Property> _CreateDefaultProperties(KnownChannel key)
        {
            switch (key)
            {
            case KnownChannel.Emissive:
                yield return(new _Property(KnownProperty.RGB, Vector3.Zero));

                yield return(new _Property(KnownProperty.EmissiveStrength, 1f));

                break;

            case KnownChannel.Normal: yield return(new _Property(KnownProperty.NormalScale, 1f)); break;

            case KnownChannel.Occlusion: yield return(new _Property(KnownProperty.OcclusionStrength, 1f)); break;

            case KnownChannel.Diffuse: yield return(new _Property(KnownProperty.RGBA, Vector4.One)); break;

            case KnownChannel.SpecularGlossiness:
                yield return(new _Property(KnownProperty.SpecularFactor, Vector3.One));

                yield return(new _Property(KnownProperty.GlossinessFactor, 1f));

                break;

            case KnownChannel.BaseColor: yield return(new _Property(KnownProperty.RGBA, Vector4.One)); break;

            case KnownChannel.MetallicRoughness:
                yield return(new _Property(KnownProperty.MetallicFactor, 1f));

                yield return(new _Property(KnownProperty.RoughnessFactor, 1f));

                break;

            case KnownChannel.ClearCoat: yield return(new _Property(KnownProperty.ClearCoatFactor, 0f)); break;

            case KnownChannel.ClearCoatNormal: yield return(new _Property(KnownProperty.NormalScale, 1f)); break;

            case KnownChannel.ClearCoatRoughness: yield return(new _Property(KnownProperty.RoughnessFactor, 0f)); break;

            case KnownChannel.Transmission: yield return(new _Property(KnownProperty.TransmissionFactor, 0f)); break;

            case KnownChannel.SheenColor: yield return(new _Property(KnownProperty.RGB, Vector3.Zero)); break;

            case KnownChannel.SheenRoughness: yield return(new _Property(KnownProperty.RoughnessFactor, 0f)); break;

            case KnownChannel.SpecularColor: yield return(new _Property(KnownProperty.RGB, Vector3.One)); break;

            case KnownChannel.SpecularFactor: yield return(new _Property(KnownProperty.SpecularFactor, 1f)); break;

            case KnownChannel.VolumeThickness: yield return(new _Property(KnownProperty.ThicknessFactor, 0f)); break;

            case KnownChannel.VolumeAttenuation:
                yield return(new _Property(KnownProperty.RGB, Vector3.One));

                yield return(new _Property(KnownProperty.AttenuationDistance, 0f));

                break;

            default: throw new NotImplementedException();
            }
        }
Esempio n. 7
0
 public Channel(int address, string title, KnownChannel known = KnownChannel.None)
 {
     Address = address;
     Title   = title;
     Type    = known;
 }