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
Ejemplo n.º 2
0
 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