def buildDirectionalLight(self, hpr, pos, color, near, far, casts_shadow,
                           shadow_caster, film_size):
     """
 Builds a Panda3D directional light with the specified rotation, position
 and color. 
 NOTE: This light tends to be buggy. Requires at least one spotlight for it 
 to work properly. 
 """
     if not self.has_dlight:
         self.light_counter += 1
         dlight = DirectionalLight("light%s" % self.light_counter)
         dlight.getLens().setFilmSize(*film_size)
         dlight.getLens().setNearFar(near, far)
         if shadow_caster:
             x, y = shadow_caster
             dlight.setShadowCaster(True, x, y)
         else:
             dlight.setShadowCaster(False)
         #dlight.showFrustum()
         dlightnp = render.attachNewNode(dlight)
         dlightnp.setPos(VBase3(*pos))
         dlightnp.setHpr(VBase3(*hpr))
         dlight.setColor(VBase4(*color))
         render.setLight(dlightnp)
         return dlightnp
     else:
         return 0
Ejemplo n.º 2
0
 def buildDirectionalLight(self, hpr, pos, color, near, far, casts_shadow, shadow_caster, film_size):
   """
   Builds a Panda3D directional light with the specified rotation, position
   and color. 
   NOTE: This light tends to be buggy. Requires at least one spotlight for it 
   to work properly. 
   """
   if not self.has_dlight:
       self.light_counter += 1
       dlight = DirectionalLight("light%s" % self.light_counter)
       dlight.getLens().setFilmSize(*film_size)
       dlight.getLens().setNearFar(near, far);
       if shadow_caster:
           x, y = shadow_caster
           dlight.setShadowCaster(True, x, y)
       else:
           dlight.setShadowCaster(False)
       #dlight.showFrustum()
       dlightnp = render.attachNewNode(dlight)
       dlightnp.setPos(VBase3(*pos))
       dlightnp.setHpr(VBase3(*hpr))
       dlight.setColor(VBase4(*color))
       render.setLight(dlightnp)
       return dlightnp
   else:
       return 0