Add() 공개 메소드

public Add ( BxDF bxdf ) : void
bxdf BxDF
리턴 void
예제 #1
0
파일: Matte.cs 프로젝트: Kintaro/Hyperion
        public override BSDF GetBsdf(DifferentialGeometry dgGeom, DifferentialGeometry dgShading)
        {
            DifferentialGeometry dgs = new DifferentialGeometry ();
            if (BumpMap != null)
                Bump (BumpMap, dgGeom, dgShading, ref dgs);
            else
                dgs = new DifferentialGeometry (dgShading);

            BSDF bsdf = new BSDF (dgs, dgGeom.n);
            Spectrum r = Kd.Evaluate (dgs).Clamp ();
            double sig = Util.Clamp (Sigma.Evaluate (dgs), 0.0, 90.0);
            if (sig == 0.0)
                bsdf.Add (new Lambertian (r));
            else
                bsdf.Add (new OrenNayar (r, sig));

            return bsdf;
        }
예제 #2
0
 public override BSDF GetBsdf(DifferentialGeometry dgGeom, DifferentialGeometry dgShading)
 {
     DifferentialGeometry dgs = new DifferentialGeometry ();
     if (BumpMap != null)
         Bump (BumpMap, dgGeom, dgShading, ref dgs);
     else
         dgs = new DifferentialGeometry (dgShading);
     BSDF bsdf = new BSDF (dgs, dgGeom.n);
     Spectrum R = Kr.Evaluate (dgs).Clamp ();
     double e = Eta.Evaluate (dgs);
     if (!R.IsBlack)
         bsdf.Add (new SpecularReflection (R, new FresnelDielectric (1.0, e)));
     return bsdf;
 }