I’ve set up shadows using light.setShadowCaster(), but when I turn on multithreading with threading-model Cull/Draw in the config, panda3d freezes up before it draws anything to the screen.
I’ve narrowed it down to a simple example. If both the commented first line and second line exist, it doesn’t work for me.
from panda3d.core import loadPrcFileData
#First line
loadPrcFileData('', 'threading-model Cull/Draw')
from panda3d.core import *
from direct.showbase.ShowBase import ShowBase
class Engine(ShowBase):
def __init__(self):
ShowBase.__init__(self)
base.setBackgroundColor(1,0,0,1)
model = loader.loadModel("models/environment")
model.reparentTo(render)
model.setScale(0.1)
box = loader.loadModel("models/box")
box.reparentTo(render)
box.setZ(1)
light=DirectionalLight("test")
light.setColor((1,1,1,1))
light.setSpecularColor((1,1,1,1))
#Second line
light.setShadowCaster(True, 1024, 1024)
light.getLens().setFilmSize(20)
base.disableMouse()
base.camera.setPos(10,0,10)
base.camera.lookAt(render)
node = render.attachNewNode(light)
node.setPos(-2,-2,2)
node.lookAt(render)
render.setLight(node)
render.setShaderAuto()
self.open = True
while self.open:
print "updating..."
taskMgr.step()
Engine()