public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (int)ShadingModel;
         hashCode = (hashCode * 397) ^ SpecularExponent1.GetHashCode();
         hashCode = (hashCode * 397) ^ SpecularColor1.GetHashCode();
         hashCode = (hashCode * 397) ^ SpecularScale1.GetHashCode();
         hashCode = (hashCode * 397) ^ SpecularExponent2.GetHashCode();
         hashCode = (hashCode * 397) ^ SpecularColor2.GetHashCode();
         hashCode = (hashCode * 397) ^ SpecularScale2.GetHashCode();
         hashCode = (hashCode * 397) ^ SpecularShiftRatio.GetHashCode();
         hashCode = (hashCode * 397) ^ ScalesAngle.GetHashCode();
         hashCode = (hashCode * 397) ^ ShiftNoiseScale.GetHashCode();
         hashCode = (hashCode * 397) ^ GlintsNoiseStrength.GetHashCode();
         hashCode = (hashCode * 397) ^ AlphaThreshold.GetHashCode();
         hashCode = (hashCode * 397) ^ HairSpecularHighlightsShiftNoise.GetHashCode();
         hashCode = (hashCode * 397) ^ HairSecondarySpecularGlintsNoise.GetHashCode();
         hashCode = (hashCode * 397) ^ HairDirectionFunction.GetHashCode();
         hashCode = (hashCode * 397) ^ HairShadowingFunction.GetHashCode();
         hashCode = (hashCode * 397) ^ LightAttenuationFunction.GetHashCode();
         hashCode = (hashCode * 397) ^ Environment.GetHashCode();
         return(hashCode);
     }
 }
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = IsEnergyConservative.GetHashCode();
         hashCode = (hashCode * 397) ^ (int)ShadingModel;
         hashCode = (hashCode * 397) ^ HairDirectionFunction.GetHashCode();
         hashCode = (hashCode * 397) ^ HairShadowingFunction.GetHashCode();
         hashCode = (hashCode * 397) ^ LightAttenuationFunction.GetHashCode();
         hashCode = (hashCode * 397) ^ AlphaThreshold.GetHashCode();
         return(hashCode);
     }
 }