コード例 #1
0
        def __init__(self, name, view, up, res):
            self.name = name

            # A camera, for viewing the world under render.
            self.camNode = pcore.Camera('cam' + self.name)
            self.camNode.setScene(base.render)
            self.cam = cubeCam.attachNewNode(self.camNode)

            # A projector, for projecting the generated image of the world
            # onto our screen.
            self.projNode = pcore.LensNode('proj' + self.name)
            self.proj = screens.attachNewNode(self.projNode)

            # A perspective lens, for both of the above.  The same lens is
            # used both to film the world and to project it onto the
            # screen.
            self.lens = pcore.PerspectiveLens()
            self.lens.setFov(92)
            self.lens.setNear(0.1)
            self.lens.setFar(10000)
            self.lens.setViewVector(view[0], view[1], view[2], up[0], up[1],
                                    up[2])

            self.camNode.setLens(self.lens)
            self.projNode.setLens(self.lens)

            # Now the projection screen itself, which is tied to the
            # projector.
            self.psNode = PandaModules.ProjectionScreen('ps' + self.name)
            self.ps = self.proj.attachNewNode(self.psNode)
            self.psNode.setProjector(self.proj)

            # Generate a flat, rectilinear mesh to project the image onto.
            self.psNode.regenerateScreen(self.proj, "screen", res[0], res[1],
                                         10, 0.97)