def get_bsdf(self, dgGeom: DifferentialGeometry, dgShading: DifferentialGeometry) -> [BSDF]: dgs = DifferentialGeometry() if self.bumpMap is None: dgs = dgShading else: # todo Bump(bumpMap, dgGeom, dgShading, &dgs); pass bsdf = BSDF(dgs, dgGeom.normal) r = self.Kr.get_evaluate(dgs).get_clamp() if not r.get_is_black(): bsdf.add(SpecularReflection(r, FresnelNoOp())) return bsdf
def get_bsdf(self, dgGeom: DifferentialGeometry, dgShading: DifferentialGeometry)->[BSDF]: dgs = DifferentialGeometry() if self.bumpMap is None: dgs = dgShading else: #todo Bump(bumpMap, dgGeom, dgShading, &dgs); pass bsdf = BSDF(dgs, dgGeom.normal) r = self.Kd.get_evaluate(dgs).get_clamp() sig = get_clamp(self.sigma.get_evaluate(dgs), 0.0, 90.0) if r.get_is_black(): bsdf.add(OrenNayar(r,sig)) else: bsdf.add(Lambertian(r)) return bsdf
def get_bsdf(self, dgGeom: DifferentialGeometry, dgShading: DifferentialGeometry)->[BSDF]: dgs = DifferentialGeometry() if self.bumpMap is None: dgs = dgShading else: #todo Bump(bumpMap, dgGeom, dgShading, &dgs); pass bsdf = BSDF(dgs, dgGeom.normal) kd = self.Kd.get_evaluate(dgs).get_clamp() if not kd.get_is_black(): diff = Lambertian(kd) bsdf.add(diff) ks = self.Ks.get_evaluate(dgs).get_clamp() if not ks.get_is_black(): fresnel = FresnelDielectric(1.5, 1.0) rough = self.roughness.get_evaluate(dgs) spec = Microfacet(ks, fresnel, Blinn(1.0 / rough)) bsdf.add(spec) return bsdf