from math import pi, sin, cos
from direct.showbase.ShowBase import ShowBase
from direct.task import Task
from direct.actor.Actor import Actor
from direct.interval.IntervalGlobal import Sequence
from direct.filter.FilterManager import FilterManager
from panda3d.core import Point3
from panda3d.core import Filename,Texture
from panda3d.core import GraphicsOutput
from panda3d.core import NodePath,TextNode
from panda3d.core import CardMaker,Vec4
from pandac.PandaModules import TextureStage
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
self.disableMouse()
######### Load two models.
self.environ = self.loader.loadModel("models/environment")
self.environ.reparentTo(self.render)
self.environ.setScale(0.25, 0.25, 0.25)
self.environ.setPos(-8, 42, 0)
self.tron=Actor("models/tron",{"running":"models/tron_anim"}) # it from tut-glow-filter
self.tron.reparentTo(render)
self.tron.setScale(0.1)
self.tron.setPos(0,0,1)
self.tron.loop("running")
######### Add a task
self.angleDegrees = 0
self.taskMgr.doMethodLater(0.01,self.spinCameraTask, "SpinCameraTask")
######### About buffer and texture
self.mybuffer = []
self.mytexture = []
self.fcard = []
for i in range(0,5):
self.mybuffer.append(base.win.makeTextureBuffer("My Buffer", 512, 512))
self.mybuffer[i].setClearColor(Vec4(1,1,1,1))
self.mytexture.append(self.mybuffer[i].getTexture())
self.fcard.append(render.attachNewNode(CardMaker('card').generate()))
self.fcard[i].setTexture( self.mytexture[i])
self.fcard[i].reparentTo(render2d)
self.fcard[i].show()
self.fcard[i].setTransparency(1)
self.fcard[i].setColor(1,1,1,0.9)
self.fcard[i].setScale(2)
self.fcard[i].setPos(-1,0,-1)
self.mybuffer.append(base.win.makeTextureBuffer("My Buffer", 512, 512))
self.mybuffer[5].setClearColor(Vec4(1,1,1,1))
self.mytexture.append(self.mybuffer[5].getTexture())
glowCamera=base.makeCamera(self.mybuffer[5], lens=base.cam.node().getLens())
def spinCameraTask(self, task):
self.angleDegrees += 0.3
angleRadians = self.angleDegrees * (pi / 180.0)
self.camera.setPos(20 * sin(angleRadians), -20.0 * cos(angleRadians), 3)
self.camera.setHpr(self.angleDegrees, 0, 0)
######### Copy buffer
for i in range(0,5):
self.mybuffer[i]=self.mybuffer[i+1]
return Task.again
app = MyApp()
app.run()
I want to copy buffer with “self.mybuffer[i]=self.mybuffer[i+1]”, but I just get a while screen.