11"""
22Wrapper for a loaded scene with properties.
33"""
4- from .shaders import MeshShader , ColorShader , TextureShader
4+ from .shaders import MeshShader , ColorShader , TextureShader , FallbackShader
55from demosys .opengl import geometry
66from demosys .resources import shaders
77from pyrr import matrix44
@@ -23,7 +23,7 @@ def __init__(self, name, loader=None, mesh_shaders=None, **kwargs):
2323 self .materials = []
2424 self .meshes = []
2525 self .cameras = []
26- self .mesh_shaders = mesh_shaders or [ColorShader (), TextureShader ()]
26+ self .mesh_shaders = mesh_shaders or [ColorShader (), TextureShader (), FallbackShader () ]
2727
2828 self .bbox_min = None
2929 self .bbox_max = None
@@ -49,13 +49,13 @@ def draw_bbox(self, m_proj, m_mv, all=True):
4949 for node in self .root_nodes :
5050 node .draw_bbox (m_proj , m_mv , self .bbox_shader , self .bbox_vao )
5151
52- def apply_mesh_shaders (self , mesh_shaders ):
52+ def apply_mesh_shaders (self ):
5353 """Applies mesh shaders to meshes"""
54- if mesh_shaders is None :
54+ if self . mesh_shaders is None :
5555 return
5656
5757 for mesh in self .meshes :
58- for ms in mesh_shaders :
58+ for ms in self . mesh_shaders :
5959 instance = ms .apply (mesh )
6060 if instance is not None :
6161 if isinstance (instance , MeshShader ):
@@ -87,7 +87,7 @@ def load(self, path):
8787 if self .loader :
8888 self .loader .load (self , file = path )
8989
90- self .apply_mesh_shaders (self . mesh_shaders )
90+ self .apply_mesh_shaders ()
9191
9292 def __str__ (self ):
9393 return "<Scene: {}>" .format (self .name )
0 commit comments