Пример #1
0
 public void Add(ElementaryBrdf brdf)
 {
     for (int i = 0; i < MaxBrdf; i++)
     {
         if (brdfs[i] == null)
         {
             brdfs[i] = brdf;
             defaultWeight = 1f / (float)brdfs.Count(b => b != null);
             brdfWeights =brdfs.Where(b => b != null).Select(b =>defaultWeight).ToArray();
             return;
         }
     }
     this.brdfs = brdfs.Union(new[] { brdf }).ToArray();
     defaultWeight = 1f / (float)brdfs.Count(b => b != null);
     brdfWeights = brdfs.Where(b => b != null).Select(b => defaultWeight).ToArray();
 }
Пример #2
0
 public AdvancedSurfaceMaterial(ElementaryBrdf brdf)
 {
     brdfs = new[] { brdf };
     brdfWeights = new float[MaxBrdf];
     defaultWeight = 1f;
 }