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)