Hi,
Just trying to get rid of default camera on window2, apparently even after dr.setActive(0) the cam is still on?!
Here is a simple test program:
import direct.directbase.DirectStart
from pandac.PandaModules import *
from direct.showbase.DirectObject import DirectObject
from direct.showbase.ShowBase import ShowBase
from direct.actor.Actor import Actor
from panda3d.core import Vec3
from direct.interval.IntervalGlobal import *
class World(DirectObject):
def __init__(self):
# load the "show-guy"
self.panda1 = Actor("panda", {"walk": "panda-walk"})
self.panda1.setScale(2)
self.panda1.reparentTo(render)
self.panda1.setPos(40, 0, 0)
self.panda1.setHpr(-90, 0, 0)
self.panda1.loop("walk")
linewalk1 = self.panda1.posInterval(3,Vec3(0,0,0),startPos = Vec3(60,0,0))
linewalk2 = self.panda1.posInterval(3,Vec3(60, 0,0),startPos = Vec3(0,0,0))
turn1 = self.panda1.hprInterval(0.5, Vec3(90, 0,0),startHpr = Vec3(-90,0,0))
turn2 = self.panda1.hprInterval(0.5, Vec3(-90, 0,0),startHpr = Vec3(90,0,0))
pandaWalk = Sequence(linewalk1, turn1, linewalk2, turn2)
pandaWalk.loop()
# observer
panda2 = Actor('panda.egg')
panda2.setScale(2)
panda2.reparentTo(render)
panda2.setHpr(+90, 0, 0)
panda2.setPos(-40, 0, 0)
# create new window to display observer's view
wobs = base.openWindow(gsg = base.win.getGsg())
wp = WindowProperties()
wp.setTitle("Observer's view")
wobs.requestProperties(wp)
dr0 = wobs.getDisplayRegion(0)
dr0.setActive(0) # switch off initial display region
window = dr0.getWindow() # create new one
dr = window.makeDisplayRegion(0, 0.5, 0, 1)
dr.setSort(dr0.getSort())
# observer camera
eyeNode = Camera('eye')
eye = panda2.attachNewNode(eyeNode)
olens = PerspectiveLens()
olens.setFilmSize(dr.getPixelWidth(), dr.getPixelHeight())
olens.setNearFar(2,100)
eyeNode.setLens(olens)
eyeNode.showFrustum()
eyeNode.setScene(render)
dr.setCamera(eye)
eye.setPos(0, -1.5, 10)
eye.setHpr(180, 0, 0)
# run sim
w = World()
run()