def modele_illumination (self, rayon, p, obj, source) : """calcule la couleur pour un rayon donné, un point p, un objet obj, et une source de lumière source""" n = obj.normale (p, rayon) cos = n.cosinus (source.origine - p) cl = obj.couleur_point (p) * cos cl = cl.produit_terme (rayon.couleur) return cl
def modele_illumination (self, rayon, p, obj, source) : """calcule la couleur pour un rayon donné, un point p, un objet obj, et une source de lumière source""" n = obj.normale (p, rayon).renorme () vr = rayon.direction.renorme () vr *= float (-1) vs = source.origine - p vs = vs.renorme () bi = vs + vr bi = bi.renorme () # premier terme cos = n.scalaire (vs) couleur = source.couleur.produit_terme (obj.couleur_point (p)) * (cos * self.kb) # second terme : reflet cos = n.scalaire (bi) ** self.reflet couleur += source.couleur.produit_terme (source.couleur) * (cos * self.kc) couleur = couleur.produit_terme (rayon.couleur) return couleur