Example #1
0
	def initLights(self):
		# Create some lighting

		#self.environ.ls()

		#print(self.environ.findAllMatches("**/Spot"))

		ambientLight = AmbientLight("ambientLight")
		ambientLight.setColor(Vec4(0.8, 0.8, 0.8, 0.65))

		"""
		directionalLight = DirectionalLight("directionalLight")
		directionalLight.setDirection(Vec3(-10, -10, 5))
		directionalLight.showFrustum()
		directionalLight.setColor(Vec4(1, 1, 1, 1))
		directionalLight.setSpecularColor(Vec4(1, 1, 1, 1))
		dirnp = render.attachNewNode(directionalLight)
		dirnp.setPos(10, 0, 6)
		"""

		plight1 = PointLight('plight1')
		plight1.setColor(VBase4(1, 1, 1, 1))
		plight1.showFrustum()
		#plight1.setShadowCaster(True)
		plnp1 = render.attachNewNode(plight1)
		plnp1.setPos(26.71, -33.2, 26)

		plight2 = PointLight('plight2')
		plight2.setColor(VBase4(1, 1, 1, 1))
		plight2.showFrustum()
		plnp2 = render.attachNewNode(plight2)
		plnp2.setPos(-25, 25, 25)

		slight = Spotlight('slight')
		slight.setColor(VBase4(1, 1, 1, 1))
		lens = PerspectiveLens()
		lens.setFilmSize(1, 1)  # Or whatever is appropriate for your scene
		slight.setLens(lens)
		slight.setShadowCaster(True, 512, 512)
		slight.showFrustum()
		slnp = render.attachNewNode(slight)
		slnp.setPos(0, 0, 100)

		slnp.lookAt(Vec3(0,0,0))

		render.setLight(slnp)
		render.setLight(plnp1)
		render.setLight(plnp2)
		#render.setLight(render.attachNewNode(ambientLight))

		#render.setLight(dirnp)

		render.setShaderAuto()

		#render.setLight(render.attachNewNode(directionalLight))

		"""
Example #2
0
    def makeLights(self, lights):
        def makeSpot(parent, color=VBase4(1, 1, 1, 1), fov=8, atten=.003):
            x = parent.attachNewNode(Spotlight("spot"))
            x.node().setColor(color)
            lens = PerspectiveLens()
            lens.setFov(fov)
            x.node().setLens(lens)
            x.node().setAttenuation(VBase3(0, 0, atten))
            return x

        self.trainLights = lights.attachNewNode("trainLights")
        if 1:
            pl = self.trainLights.attachNewNode(PointLight("point"))
            pl.setPos(2, 10, 10)
            #pl.node().setColor(VBase4(.7, .7, .7, 1))
            pl.node().setAttenuation(Vec3(0, 0, 0.005))
            #pl.node().setShadowCaster(True, 512, 512)
            self.base.render.setLight(pl)
            pl.node().setShadowCaster(True)

            spot = makeSpot(self.trainLights, VBase4(1, 1, 1, 1), 8)
            spot.setPos(2, 0, 18)
            spot.lookAt(self.cubes, Point3(0, .6, 0))
            self.base.render.setLight(spot)

        self.gameLights = lights.attachNewNode("gameLights")
        if 1:
            bg = self.gameLights.attachNewNode(PointLight("point"))
            bg.node().setColor(VBase4(.1, .2, .6, 1))
            bg.setPos(-6, 15, 2)
            self.base.render.setLight(bg)
            bg.node().setShadowCaster(True)

            up = makeSpot(self.gameLights,
                          color=VBase4(.6, .6, .6, 1),
                          fov=25,
                          atten=.009)
            up.setPos(self.cubes.getPos().x, 10, .4)
            up.lookAt(self.cubes, Point3(0, 0, 1.3))
            self.base.render.setLight(up)

            self.rotLights = []
            for color, pos in [
                (VBase4(1, 1, 0, 1), Point3(4, 10, 10)),
                (VBase4(0, .7, 0, 1), Point3(-4, 10, 10)),
                (VBase4(0, .6, 1, 1), Point3(0, 20, 10)),
            ]:
                s1 = makeSpot(self.gameLights, color=color, fov=8)
                s1.setPos(pos)
                s1.lookAt(self.cubes)
                self.base.render.setLight(s1)
                self.rotLights.append(s1)
    def __init__(self):
        ShowBase.__init__(self)

        self.cap = cv2.VideoCapture(0)
        self.classifier = cv2.CascadeClassifier(self.haar)

        self.scene = self.loader.loadModel('models/abstractroom')
        self.scene.reparentTo(self.render)

        self.scene.setPos(-10, 100, 0)

        self.shaderenable = 1
        self.scene.setShaderAuto()

        # Add ambient light
        alight = AmbientLight('alight')
        alight.setColor((0.1, 0.11, 0.11, 1))
        alnp = self.render.attachNewNode(alight)
        self.scene.setLight(alnp)

        # Add point light.
        plight = PointLight('plight')
        plight.setColor((1, 1, 1, 1))
        plight.setAttenuation(LVector3(0.1, 0.02, 0))
        plnp = self.render.attachNewNode(plight)
        plnp.setPos(-27, 100, 0)
        self.scene.setLight(plnp)
        # Create a sphere to denote the light
        sphere = self.loader.loadModel("models/icosphere")
        sphere.reparentTo(plnp)

        self.taskMgr.add(self.display, 'Display')

        print("%.1f, %.1f, %.1f" % (self.x, self.y, self.z))
Example #4
0
    def __init__(self, base, USE_RP):
        self.base = base
        """ direct.showbase.ShowBase """

        if not USE_RP:
            alight = AmbientLight('alight')
            alnp = self.base.render.attachNewNode(alight)
            alight.setColor((0.2, 0.2, 0.2, 1))
            self.base.render.setLight(alnp)

            # Put lighting on the main scene

            dlight = DirectionalLight('dlight')
            dlnp = self.base.render.attachNewNode(dlight)
            dlnp.setPos(0, 5, 5)
            dlight.setColor((0.8, 0.8, 0.5, 1))
            dlnp.setHpr(0, 60, 0)
            self.base.render.setLight(dlnp)

            plight = PointLight('plight')
            plnp = self.base.render.attachNewNode(plight)
            plnp.setPos(0, -50, 50)
            plnp.setHpr(0, 60, 0)
            self.base.render.setLight(plnp)

        self.sounds = {}
Example #5
0
    def generate(self, helperInfo):
        color = self.mapObject.getPropertyValue("_light",
                                                default=Vec4(
                                                    255, 255, 255, 255))
        color = CIGlobals.colorFromRGBScalar255(color)
        color = CIGlobals.vec3GammaToLinear(color)

        constant = float(
            self.mapObject.getPropertyValue("_constant_attn", default="0.0"))
        linear = float(
            self.mapObject.getPropertyValue("_linear_attn", default="0.0"))
        quadratic = float(
            self.mapObject.getPropertyValue("_quadratic_attn", default="1.0"))

        # Scale intensity for unit 100 distance
        ratio = (constant + 100 * linear + 100 * 100 * quadratic)
        if ratio > 0:
            color *= ratio

        pl = PointLight("lightHelper-light")
        pl.setColor(Vec4(color[0], color[1], color[2], 1.0))
        pl.setAttenuation(Vec3(constant, linear, quadratic))
        self.light = self.mapObject.helperRoot.attachNewNode(pl)
        if self.mapObject.doc.numlights < 128:
            self.mapObject.doc.render.setLight(self.light)
            self.mapObject.doc.numlights += 1
            self.hasLight = True
Example #6
0
    def addLight(self):
        self.render.clearLight()
        self.lightCenter = self.render.attachNewNode(PandaNode("center"))
        #self.lightCenter.setCompass()

        # ambient light
        self.ambientLight = AmbientLight('ambientLight')
        self.ambientLight.setColor(Vec4(0.5, 0.5, 0.5, 1))
        self.alight = self.lightCenter.attachNewNode(self.ambientLight)
        self.render.setLight(self.alight)

        # point light
        self.pointlight = PointLight("pLight")
        self.light = self.lightCenter.attachNewNode(self.pointlight)
        self.pointlight.setColor(Vec4(0.8, 0.8, 0.8, 1))
        self.light.setPos(0, 0, 2)
        self.render.setLight(self.light)

        # directional light
        self.dirlight = DirectionalLight("dLight")
        self.dlight = self.lightCenter.attachNewNode(self.dirlight)
        self.dirlight.setColor(Vec4(0.8, 0.8, 0.8, 1))
        self.dirlight.setShadowCaster(True)

        self.dlight.setPos(0, 0, 5)
        self.dlight.lookAt(5, 10, 0)
        self.render.setLight(self.dlight)

        self.render.setShaderAuto()
Example #7
0
    def __init__(self):
        super().__init__()
        self.set_background_color(0, 0, 0, 1)
        self.cam.setPos(0, -20, 5)

        self.plane = self.loader.loadModel('my-models/planeTB')
        self.plane.setPos(-5, 5, 0)
        self.plane.reparentTo(self.render)

        self.sphere = self.loader.loadModel("my-models/icosphere")
        self.sphere.reparentTo(self.render)

        alight = AmbientLight('alight')
        alight.setColor((0.2, 0.2, 0.2, 1))
        alnp = self.render.attachNewNode(alight)
        self.plane.setLight(alnp)

        plight = PointLight('plight')
        plight.setColor((1, 1, 1, 1))
        plnp = self.sphere.attachNewNode(plight)
        self.plane.setLight(plnp)

        self.render.setShaderAuto()

        self.taskMgr.add(self.move_light, "move-light")
    def __init__(self):
        ShowBase.__init__(self)
        simplepbr.init()

        self.accept('escape', sys.exit)
        self.accept('f11', self.debug)

        m = loader.load_model("pbrcube.bam")
        m.reparent_to(render)

        # Camera
        self.cam_gimbal = NodePath('gimbal')
        self.cam_gimbal.reparent_to(render)
        base.cam.reparent_to(self.cam_gimbal)
        base.cam.set_pos(0, -10, 0)
        base.cam.look_at(0, 0, 0)
        self.add_task(self.update_camera)

        # Light
        light = PointLight('plight')
        light.set_color((10, 10, 10, 10))
        light.set_attenuation((1, 0, 1))
        light_np = base.cam.attach_new_node(light)
        render.set_light(light_np)
        light_np.set_pos(0, 0, 2)

        # Debug info
        render.ls()
        render.analyze()
Example #9
0
def launch_panda_window(panda_widget, size):
    """
    Configure and create Panda window
    Connect to the gtk widget resize event
    Load a panda
    """
    props = WindowProperties().getDefault()
    props.setOrigin(0, 0)
    props.setSize(*size)
    props.setParentWindow(panda_widget.window.xid)
    base.openDefaultWindow(props=props)
    # ==
    panda_widget.connect("size_allocate", resize_panda_window)
    # ==
    panda = loader.loadModel("panda")
    panda.reparentTo(render)
    panda.setPos(0, 40, -5)

    pl = render.attachNewNode(PointLight("redPointLight"))
    pl.node().setColor(Vec4(.9, .8, .8, 1))
    render.setLight(pl)
    pl.node().setAttenuation(Vec3(0, 0, 0.05))

    slight = Spotlight('slight')
    slight.setColor(VBase4(1, 1, 1, 1))
    lens = PerspectiveLens()
    slight.setLens(lens)
    slnp = render.attachNewNode(slight)
    slnp.setPos(2, 20, 0)
    mid = PandaNode('mid')
    panda.attachNewNode(mid)
    #    slnp.lookAt(mid)
    render.setLight(slnp)
Example #10
0
 def setup_point_light(self, x, y, z):
     plight = PointLight('plight')
     plight.setColor(VBase4(0.9, 0.9, 0.9, 1))
     light = self.base.render.attachNewNode(plight)
     light.setPos(x, y, z)
     self.point_light.append(light)
     self.base.render.setLight(light)
Example #11
0
    def addPointLight(self, color=(0.2, 0.2, 0.2, 1), pos=(0, 0, 100)):

        plight = PointLight('plight')
        plight.setColor(color)
        plnp = self.render.attachNewNode(plight)
        plnp.setPos(pos)
        self.render.setLight(plnp)
Example #12
0
    def addLight(self, id, parent, attenuation, position, color, specular,
                 stroboscopic, spot, lookat):
        if spot:
            slight = Spotlight(id)
            slight.setColor(VBase4(1, 1, 1, 1))
            lens = PerspectiveLens()
            slight.setLens(lens)
            light = render.attachNewNode(slight)
            light.setPos(LVector3(position[0], position[1], position[2]))
            if lookat == None:
                light.lookAt(parent)
            else:
                light.lookAt(render.find("**/" + lookat))
        else:
            light = parent.attachNewNode(PointLight(id))
            light.node().setAttenuation(attenuation)
            light.setPos(LVector3(position[0], position[1], position[2]))
        light.node().setColor(color)
        light.node().setSpecularColor(specular)
        render.setLight(light)
        self.light_elements[id] = light
        if stroboscopic:
            self.stroboscopic_lights.append(id)

        if id:
            self.nodes_by_id[id] = light
        return light
Example #13
0
    def load_scene(self):
        self.scene_model = self.loader.loadModel("models/scene.egg")
        self.scene_model.reparentTo(self.render)

        self.alight = AmbientLight('alight')
        self.alight.setColor(VBase4(0.1, 0.1, 0.1, 1))
        self.alnp = self.render.attachNewNode(self.alight)
        self.render.setLight(self.alnp)

        self.dlight = DirectionalLight('dlight')
        self.dlight.setColor(VBase4(0.5, 0.5, 0.5, 0.5))
        self.dlnp = self.render.attachNewNode(self.dlight)
        self.dlnp.setHpr(0, -60, 0)
        self.render.setLight(self.dlnp)

        self.plights = []
        for position in [
            [0, 0, 20],
            # [10, 10, 20],
            # [-10, 10, 20],
            # [-10, -10, 20],
            [10, -10, 20],
        ]:
            plight = PointLight('plight_{}'.format(position))
            plight.setColor(VBase4(0.4, 0.4, 0.4, 1))
            plnp = self.render.attachNewNode(plight)
            plnp.setPos(*position)
            self.render.setLight(plnp)
            self.plights.append(plight)

        # self.camera.setPos(0, -20, 3)
        self.trackball.node().setPos(0, 20, -3)
Example #14
0
    def _load_and_get_car_local(self, model_name):
        car_local_node = self.app.loader.loadModel(model_name)
        # translate model so that the bottom of it is at a height of 0 in the local reference frame
        car_local_pos = car_local_node.getPos()
        car_local_pos[2] = -car_local_node.getTightBounds()[0][2]
        car_local_node.setPos(tuple(car_local_pos))

        # cars need lights that are different from the scene lights
        if model_name in ('camaro2', 'sport'):
            ambient_color = (.1, .1, .1, 1)
            sun_light_color = (.8, .8, .8, 1)
        elif model_name == 'mazda6':
            ambient_color = (.1, .1, .1, 1)
            sun_light_color = (1, 1, 1, 1)
        elif model_name == 'mitsubishi_lancer_evo':
            ambient_color = (.2, .2, .2, 1)
            sun_light_color = (1, 1, 1, 1)
        else:
            ambient_color = (.3, .3, .3, 1)
            sun_light_color = (1, 1, 1, 1)
        car_local_node.setLightOff()
        ambient_light = self.app.render.attachNewNode(
            AmbientLight('car_ambient_light'))
        ambient_light.node().setColor(ambient_color)
        car_local_node.setLight(ambient_light)
        sun_light = self.app.render.attachNewNode(PointLight('car_sun_light'))
        sun_light.node().setColor(sun_light_color)
        sun_light.setPos((-2506., -634., 2596.))
        car_local_node.setLight(sun_light)
        car_local_node.flattenStrong()
        return car_local_node
Example #15
0
    def _load_city(self):
        try:
            self.skybox_node = self.app.loader.loadModel(
                "skyboxes/01-clean-day/skybox-mesh")
            self.skybox_node.reparentTo(self.app.render)
            self.skybox_node.flattenStrong()
        except IOError:
            print(
                "Some models are missing. Skipping loading file skyboxes/01-clean-day/skybox-mesh"
            )
            self.skybox_node = None

        try:
            self.city_node = self.app.loader.loadModel(
                "levels/urban-level-02-medium")
            self.city_node.reparentTo(self.app.render)

            self.ambient_light = self.app.render.attachNewNode(
                AmbientLight('ambient_light'))
            self.ambient_light.node().setColor((1, 1, 1, 1))
            self.city_node.setLight(self.ambient_light)

            self.sun_light = self.app.render.attachNewNode(
                PointLight('sun_light'))
            self.sun_light.node().setColor((.2, .2, .2, 1))
            self.sun_light.setPos((-2506., -634., 2596.))
            self.city_node.setLight(self.sun_light)
            self.city_node.flattenStrong()
        except IOError:
            print(
                "Some models are missing. Skipping loading file levels/urban-level-02-medium"
            )
            self.city_node = None
    def __init__(self):
        super().__init__()
        self.set_background_color(0, 0, 0, 1)
        self.cam.setPos(0, -12, 0)

        self.tree = self.loader.loadModel('my-models/christmas_tree')
        self.tree.setPos(0, 0, -2.5)
        self.tree.reparentTo(self.render)

        self.light_model = self.loader.loadModel('models/misc/sphere')
        self.light_model.setScale(0.2, 0.2, 0.2)
        self.light_model.setPos(4, 0, 0)
        self.light_model.reparentTo(self.render)

        plight = PointLight("plight")
        plight.setColor((1,1,1,1))
        self.plnp = self.light_model.attachNewNode(plight)
        # plight.setAttenuation((0, 0, 1))
        self.tree.setLight(self.plnp)

        alight = AmbientLight("alight")
        alight.setColor((0.04, 0.04, 0.04, 1))
        alnp = self.render.attachNewNode(alight)
        self.tree.setLight(alnp)

        self.taskMgr.add(self.move_light, "move-light")
Example #17
0
    def initLights(self):
        torches = self.level.findAllMatches("**/TorchTop*")
        self.lights = []
        for torch in torches:
            tLight = PointLight(torch.getName())
            tLight.setColor((.4, .2, .0, 1))
            tlnp = render.attachNewNode(tLight)
            tlnp.setPos(torch.getPos(render))
            render.setLight(tlnp)
            self.lights.append(tlnp)

        windows = self.level.findAllMatches("**/Window*")
        plates = self.level.findAllMatches("**/Plate*")
        spikes = self.level.findAllMatches("**/Spikes*")
        for window in windows:
            wLight = Spotlight(window.getName())
            lens = PerspectiveLens()
            wLight.setLens(lens)
            wLight.setColor((0.5, 0.4, 0.5, 1))
            wlnp = render.attachNewNode(wLight)
            wlnp.setPos(window.getPos(render))
            wlnp.lookAt((0, window.getY(), 0))
            for plate in plates:
                plate.setLight(wlnp)
            self.lights.append(wlnp)

        ambientLight = AmbientLight("ambientLight")
        ambientLight.setColor((.1, .1, .025, 1))
        render.setLight(render.attachNewNode(ambientLight))
Example #18
0
    def _load_quad(self):
        self.quad_node = self.app.loader.loadModel('iris')
        self.quad_node.reparentTo(self.app.render)

        ambient_color = (.1, .1, .1, 1)
        sun_light_color = (.5, .5, .5, 1)
        self.quad_node.setLightOff()
        ambient_light = self.app.render.attachNewNode(
            AmbientLight('quad_ambient_light'))
        ambient_light.node().setColor(ambient_color)
        self.quad_node.setLight(ambient_light)
        sun_light = self.app.render.attachNewNode(PointLight('quad_sun_light'))
        sun_light.node().setColor(sun_light_color)
        sun_light.setPos((-2506., -634., 2596.))
        self.quad_node.setLight(sun_light)
        self.quad_node.flattenStrong()

        quad_prop_positions = [
            np.array([0.20610, 0.13830, 0.025]),  # blue, right
            np.array([0.22254, -0.12507, 0.025]),  # black, right
            np.array([-0.20266, 0.13830, 0.025]),  # blue, left
            np.array([-0.21911, -0.12507, 0.025])
        ]  # black, left
        self.quad_prop_local_nodes = []
        for quad_prop_id, quad_prop_pos in enumerate(quad_prop_positions):
            is_ccw = quad_prop_id in (1, 2)
            quad_prop_node = self.quad_node.attachNewNode('quad_prop_%d' %
                                                          quad_prop_id)
            quad_prop_local_node = self.app.loader.loadModel(
                'iris_prop_%s' % ('ccw' if is_ccw else 'cw'))
            quad_prop_local_node.reparentTo(quad_prop_node)
            quad_prop_node.setPos(tuple(quad_prop_pos))
            quad_prop_node.flattenStrong()
            self.quad_prop_local_nodes.append(quad_prop_local_node)
Example #19
0
 def setUpLights(self):
     #   ambient
     #alight=AmbientLight("alight")
     #alight.setColor(Vec4(Terrain.COLOR_AMB_50))
     #alightP=self.base.render.attachNewNode(alight)
     #   point
     plight = PointLight("plight")
     plight.setColor(Vec4(Terrain.COLOR_WHITE))
     self.plightP = self.base.render.attachNewNode(plight)
     self.plightP.setPos(14, -30, 17)
     #   directional
     #   sun
     sun = DirectionalLight("sun")
     sun.setColor(Vec4(Terrain.COLOR_WHITE))
     #sun.setShadowCaster(True, 1024, 1024)
     sun.getLens().setFilmSize(Vec2(100, 100))
     sun.getLens().setNearFar(10, 200)
     sun.getLens().setFov(200)
     #sun.showFrustum()
     sunP = self.base.render.attachNewNode(sun)
     sunP.setPos(0, -2, 20)
     sunP.setHpr(-60, -90, -30)
     #   sky
     sunSky = DirectionalLight("sunSky")
     sunSky.setColor(Vec4(Terrain.COLOR_WHITE))
     sunSkyP = self.base.render.attachNewNode(sunSky)
     sunSkyP.setPos(-14, 30, -17)
     sunSkyP.setHpr(-10, 60, -10)
     #
     #self.base.render.setLight(alightP)
     self.base.render.setLight(sunP)
     self.base.render.setLight(self.plightP)
Example #20
0
    def setupLights(self):
        panda = self.app.panda

        panda.setBackgroundColor(.9, .9, .9, 1)
        panda.render.clearLight()

        keylight = Spotlight('keylight')
        keylight.setLens(PerspectiveLens())
        np = self._insertLight(
            keylight,
            colour=(1, 1, 1, 1),
            pos=(0, -5, 2),
        )
        np.lookAt((0, 0, 0.9))
        # Turn off shadows until we have fix for
        # https://bugs.launchpad.net/panda3d/+bug/1212752
        # keylight.setShadowCaster(True, 512, 512)

        sunlight = PointLight('sunlight')
        self._insertLight(
            sunlight,
            colour=(1, 1, 1, 1),
            pos=(1, -2, 20),
        )

        self._insertLight(
            AmbientLight('ambientLight'),
            colour=(.25, .25, .25, 1),
        )
Example #21
0
 def __init__(self):
     # Basics
     ShowBase.__init__(self)
     base.disableMouse()
     base.setFrameRateMeter(True)
     self.accept("escape", sys.exit)
     self.camera.set_pos(-10, -10, 10)
     self.camera.look_at(0, 0, 0)
     # A light
     plight = PointLight('plight')
     plight.setColor(VBase4(0.5, 0.5, 0.5, 1))
     plnp = render.attachNewNode(plight)
     plnp.setPos(10, 10, 10)
     render.setLight(plnp)
     # Create the geometry
     self.sidelength = 30
     self.map_a = self.create_map(self.sidelength)
     self.map_b = self.map_a
     geom = self.create_geom(self.sidelength)
     np = NodePath(geom)
     np.reparent_to(self.render)
     # Start the task to interpolate the geometry each frame
     self.last_time = 0.0
     self.need_to_swap_maps = True
     self.taskMgr.add(self.swap_maps, 'swap_geometry', sort = 5)
     self.taskMgr.add(self.interpolate_maps, 'interpolate_geometry', sort = 10)
Example #22
0
 def insertLight(self, name, x, y, z):
     lightball = self.loader.loadModel("lightball_1.obj", noCache=True)
     lightball.reparentTo(self.render)
     lightball.setPos(x, y, z)
     plight = PointLight(name)
     plight.setColor(VBase4(1.0, 1.0, 1.0, 1))
     plnp = self.render.attachNewNode(plight)
     plnp.setPos(x, y, z)
     self.render.setLight(plnp)
Example #23
0
    def __init__(self, **kwargs):

        self.type = 'ambient'  # ambient or directional for now
        self.color = color.rgb(0.3, 0.3, 0.3,
                               1)  # a modest amount of full-spectrum light
        self.direction = Vec3(
            -1, -1, -1)  # shining down from top-right corner, behind camera
        self.position = None
        self.attenuation = None
        self.node = None

        for key, value in kwargs.items():

            if key == 'type':
                if value in ('ambient', 'directional', 'point'):
                    self.type = value
                else:
                    print("ERR Light type is not 'ambient' or 'directional'")
            elif key == 'color':
                self.color = value
            elif key == 'direction':
                self.direction = value
            elif key == 'attenuation':
                self.attenuation = value
            elif key == 'position':
                self.position = value
            else:
                print("Err ", key, " is not a valid keyword")

        scene.lights.append(self)  # light added for all subsequent entities

        if self.type == 'ambient':
            ambientLight = AmbientLight('ambientLight')
            ambientLight.setColor(self.color)
            self.node = scene.attachNewNode(ambientLight)

        elif self.type == 'directional':
            directionalLight = DirectionalLight('directionalLight')
            directionalLight.setColor(self.color)
            self.node = scene.attachNewNode(directionalLight)
            # This light should be facing straight down, but clearly it isn't.
            self.node.setHpr(
                self.direction)  # convert vector to Hpr (in degrees!?) first

        elif self.type == 'point':
            pointLight = PointLight('pointLight')
            pointLight.setColor(self.color)

            if self.attenuation is None:
                self.attenuation = Vec3(1, 0, 0)
            pointLight.setAttenuation(self.attenuation)

            if self.position is None:
                self.position = Vec3(0, 0, 0)

            self.node = scene.attachNewNode(pointLight)
            self.node.setPos(self.position)
Example #24
0
    def __init__(self):
        ShowBase.__init__(self)
        dir(self)
        self.disableMouse()

        # Load the environment model.
        self.environ = self.loader.loadModel("../levels/level01.egg")
        # Reparent the model to render.
        self.environ.reparentTo(self.render)
        '''add a light'''
        self.light = PointLight("dLight")
        self.light.setAttenuation((.01, .01, .01))
        self.light.setSpecularColor(VBase4(1, 1, 0, 1))
        self.lightNode = render.attachNewNode(self.light)
        self.lightNode.setZ(10)
        render.setLight(self.lightNode)
        '''move light constants'''
        self.moveLightDirection = -1000

        self.taskMgr.add(self.moveLight, "lightMove")
        self.taskMgr.add(self.fpsInput, "fpsInput")
        '''fps cam controls'''
        self.keymap = {
            "w": 0,
            "a": 0,
            "s": 0,
            "d": 0,
            "e": 0,
            "q": 0,
            "j": 0,
            "k": 0,
            "l": 0,
            "i": 0
        }

        self.fps = FpsCam(self.camera)
        self.accept("a", self.setKey, ["a", 1])
        self.accept("a-up", self.setKey, ['a', 0])
        self.accept("w", self.setKey, ["w", 1])
        self.accept("w-up", self.setKey, ["w", 0])
        self.accept("s", self.setKey, ["s", 1])
        self.accept("s-up", self.setKey, ["s", 0])
        self.accept("d", self.setKey, ["d", 1])
        self.accept("d-up", self.setKey, ["d", 0])
        self.accept("e", self.setKey, ["e", 1])
        self.accept("e-up", self.setKey, ["e", 0])
        self.accept("q", self.setKey, ["q", 1])
        self.accept("q-up", self.setKey, ["q", 0])
        self.accept("j", self.setKey, ["j", 1])
        self.accept("j-up", self.setKey, ["j", 0])
        self.accept("k", self.setKey, ["k", 1])
        self.accept("k-up", self.setKey, ["k", 0])
        self.accept("l", self.setKey, ["l", 1])
        self.accept("l-up", self.setKey, ["l", 0])
        self.accept("i", self.setKey, ["i", 1])
        self.accept("i-up", self.setKey, ["i", 0])
        self.accept("escape", sys.exit)
Example #25
0
    def __init__(self, showbase, usersData, gameData):
        DirectObject.__init__(self)

        self.showbase = showbase
        self.usersData = usersData
        self.gameData = gameData

        random.seed(self.gameData.randSeed)

        # Initialize the collision traverser.
        self.cTrav = CollisionTraverser()

        # Initialize the handler.
        self.collHandEvent = CollisionHandlerEvent()
        self.collHandEvent.addInPattern('into-%in')

        self.world = World(showbase)

        self.ambientLight = showbase.render.attachNewNode(
            AmbientLight("ambientLight"))
        # Set the color of the ambient light
        self.ambientLight.node().setColor((.1, .1, .1, 1))
        # add the newly created light to the lightAttrib
        # showbase.render.setLight(self.ambientLight)

        self.spotlight = None

        numberOfPlayers = len(self.usersData)
        for index, user in enumerate(self.usersData):
            user.centipede = Centipede(showbase, index, numberOfPlayers,
                                       self.addToCollisions)
            if user.thisPlayer:
                self.centipede = user.centipede
                self.centipede.attachRing(showbase)

                self.spotlight = self.centipede.head.attachNewNode(
                    PointLight("playerSpotlight"))
                self.spotlight.setPos(LVector3(0, 0, 8))
                # Now we create a spotlight. Spotlights light objects in a given cone
                # They are good for simulating things like flashlights
                self.spotlight.node().setAttenuation(
                    LVector3(.025, 0.0005, 0.0001))
                self.spotlight.node().setColor((0.35, 0.35, .35, 1))
                self.spotlight.node().setSpecularColor((0.01, 0.01, 0.01, 1))

                showbase.render.setLight(self.spotlight)

        self.perPixelEnabled = True
        self.shadowsEnabled = True
        #if self.spotlight:
        #    self.spotlight.node().setShadowCaster(True, 512, 512)
        showbase.render.setShaderAuto()

        self.foods = []
        for i in range(self.gameData.maxFoods):
            self.foods.append(Food(self.showbase, i, self.addToCollisions))
 def pointlight(self, x, y, z):
     """
     Erzeugt einen Schatten, je nach Position der Sonne
     :return: die Schattierung des Planeten
     """
     plight = PointLight('plight')
     plight.setColor(VBase4(0.8, 0.8, 0.8, 1))
     plnp = render.attachNewNode(plight)
     plnp.setPos(x, y, z)
     return plnp
Example #27
0
    def __init__(self):
        # Basics
        ShowBase.__init__(self)

        #base.disableMouse()
        base.setFrameRateMeter(True)

        self.accept("escape", sys.exit)
        self.camera.set_pos(-10, -10, 10)
        self.camera.look_at(0, 0, 0)

        # A light
        plight = PointLight("plight")
        plight.setColor(VBase4(1, 1, 1, 1))

        plnp = render.attachNewNode(plight)
        plnp.setPos(100, 100, 100)

        render.setLight(plnp)

        # Create the geometry
        vformat = GeomVertexFormat.getV3n3c4()

        vdata = GeomVertexData("Data", vformat, Geom.UHStatic)
        vdata.setNumRows(3)

        vertex = GeomVertexWriter(vdata, 'vertex')
        normal = GeomVertexWriter(vdata, 'normal')
        color = GeomVertexWriter(vdata, 'color')

        vertex.addData3f(100, 0, 0)
        normal.addData3f(0, 0, 1)
        color.addData4f(0, 1, 0, 1)

        vertex.addData3f(100, 100, 0)
        normal.addData3f(0, 0, 1)
        color.addData4f(0, 0, 1, 1)

        vertex.addData3f(0, 100, 0)
        normal.addData3f(0, 0, 1)
        color.addData4f(1, 0, 0, 1)

        prim = GeomTriangles(Geom.UHStatic)

        prim.addVertices(0, 1, 2)
        prim.closePrimitive()

        geom = Geom(vdata)
        geom.addPrimitive(prim)

        node = GeomNode("GNode")
        node.addGeom(geom)

        nodePath = self.render.attachNewNode(node)
Example #28
0
def makePointLight(name, color, pos, falloff=1.0):
    point = PointLight(name + "-point")
    point.setColor(color)
    ATTN_FCTR = 0.0625
    point.setAttenuation((0, 0, falloff * ATTN_FCTR))
    pnp = render.attachNewNode(point)
    pnp.setPos(pos)
    if False:
        sm = loader.loadModel("models/smiley.egg.pz")
        sm.reparentTo(pnp)
    return pnp
Example #29
0
    def __init__(self):
        super().__init__(self)
        self.var1 = 0
        self.scene = loader.loadModel("models/world")
        playerTexture = loader.loadTexture("models/starfoxShip.jpg")
        self.player = self.scene.find("player")
        self.player.setTexture(playerTexture)

        base.setBackgroundColor(0.1, 0.1, 0.1, 1)
        enemyTexture = loader.loadTexture("models/enemyShip.jpg")
        self.enemy = self.scene.find("enemy1")
        self.enemy.setTexture(enemyTexture)

        self.basePlane = self.scene.find("basePlane")

        self.scene.reparentTo(self.render)
        self.player.setPos(50, 50, 3)
        self.enemy.setPos(50, 55, 0)

        self.ambient = AmbientLight("ambient")
        self.ambient.color = (0.1, 0.1, 0.1, 1)
        self.ambientPath = self.render.attachNewNode(self.ambient)
        render.setLight(self.ambientPath)

        self.dirLight = DirectionalLight("dir light")
        self.dirLight.color = (1, 1, 1, 1)
        self.dirLightPath = self.render.attachNewNode(self.dirLight)
        self.dirLightPath.setHpr(0, -90, 0)
        self.dirLight.setShadowCaster(True, 512, 512)
        render.setLight(self.dirLightPath)

        self.pointLight = PointLight("point light")
        self.pointLight.color = (1, 1, 1, 1)
        self.pointLightPath = self.render.attachNewNode(self.pointLight)
        self.pointLightPath.setPos(50, 52.5, 4)
        self.pointLight.attenuation = (.5, 0, 0)
        self.pointLight.setShadowCaster(True, 1024, 1024)
        self.render.setLight(self.pointLightPath)

        self.fog = Fog("fog")
        self.fog.setColor(0.1, 0.1, 0.1)
        self.fog.setExpDensity(.3)
        self.fog.setLinearRange(150, 300)
        self.fog.setLinearFallback(45, 160, 320)
        self.render.setFog(self.fog)

        self.render.setShaderAuto()
        self.render.setAntialias(AntialiasAttrib.MAuto)

        filters = CommonFilters(base.win, base.cam)
        filters.setBloom(size="large")
        filters.setAmbientOcclusion(strength=0.6, falloff=0.0005, radius=0.1)
        filters.setCartoonInk(separation=2, color=(0, 0, 0, 1))
        self.taskMgr.add(self.update, "update")
Example #30
0
 def innitialize_fov(self):
     render.set_shader_auto()
     self.fov_point = PointLight("caster")
     self.fov_point.set_shadow_caster(True, 256*2, 256*2, -1000)
     self.fov_point.set_camera_mask(0b001)
     self.fov_point.set_lens_active(4, False)
     self.fov_point.set_lens_active(5, False)
     for i in range(6):
         self.fov_point.get_lens(i).set_near_far(0.5, 10)
     self.fov_point_np = render.attach_new_node(self.fov_point)
     self.fov_point_np.set_z(0.5)
     self.fov_point.set_color(VBase4(1,1,1,1))