Я уже приходил как-то с этой проблемой: с новой версией движка игра перестала запускаться с включёнными тенями. Раньше игра просто зависала с чёрным экраном, но теперь стала выдавать ошибку следующего содержания:
Код
Traceback (most recent call last):
File "D:\Panda3D-1.9.2-x64\Ancient.py", line 1289, in run_trav1
self.cTrav1.traverse(self.render)
AssertionError: pipeline_stage == 0 at line 133 of c:\buildslave\sdk-windows-amd64\build\panda\src\display\displayRegion.cxx
Traceback (most recent call last):
File "D:\Panda3D-1.9.2-x64\Ancient.py", line 1630, in <module>
app.run()
File "D:\Panda3D-1.9.2-x64\direct\showbase\ShowBase.py", line 2986, in run
self.taskMgr.run()
File "D:\Panda3D-1.9.2-x64\direct\task\Task.py", line 510, in run
self.step()
File "D:\Panda3D-1.9.2-x64\direct\task\Task.py", line 467, in step
self.mgr.poll()
File "D:\Panda3D-1.9.2-x64\Ancient.py", line 1289, in run_trav1
self.cTrav1.traverse(self.render)
AssertionError: pipeline_stage == 0 at line 133 of c:\buildslave\sdk-windows-amd64\build\panda\src\display\displayRegion.cxx
Думаю, что такое cTrav1, объяснять не требуется...
Если комментирую строку с setShadowCaster(), то всё работает нормально. Ну, то есть без теней.
Источник задаётся вот так:
Код
self.mdlight=Spotlight('spot')
self.mdlight.setColor(VBase4(1,1,1,1))
self.mdlight.setAttenuation(Point3(0.00000001,0.00000001,0.00000001))
lens=PerspectiveLens()
lens.setFov(30)
lens.setFar(1000)
self.mdlight.setLens(lens)
self.mdlight.setShadowCaster(True,128,128)
self.mdl_np=self.render.attachNewNode(self.mdlight)
self.mdl_np.setPos(-5345,-1190,10000)
self.mdl_np.setHpr(-61,-69,-117)
self.render.setLight(self.mdl_np)
self.render.setShaderAuto()