def init_vars_drawables(self): # called by super.init() tree = spiral_tree.Tree(load_text("shaders/tree.vsh"), load_text("shaders/tree.fsh")) self.drawables.append(tree) bvsh = load_text("shaders/bulb.vsh") bfsh = load_text("shaders/bulb.fsh") for i, light in enumerate(tree.lights): self.drawables.append(cbulb.Bulb(bvsh, bfsh, i, tree.lights)) snowglobe = SnowGlobe(load_text("shaders/snow.vsh"), load_text("shaders/snow.fsh")) self.drawables.append(snowglobe) self.projection = np.eye(4,dtype=np.float32) # will be modified in reshape() self.camera.pitch(m.pi/2) self.camera.trans_z(-6) self.camera.trans_y(2) self.viewMat = self.camera.matrix() camera_position = UBVar("camera_position", np.array(self.camera.loc, dtype=np.float32)) light_pos = (5,20,-10, 0) main_light_position = UBVar("main_light_position", np.array(light_pos)) main_light_diffuse = UBVar("main_light_diffuse", np.array([1, 1, 1, 1])) u_view = UBVar("u_view", self.viewMat) u_projection = UBVar("u_projection", self.projection) nlights = len(tree.lights) lights = self.get_lights() light_positions = UBArrayVar("light_positions", np.array( tree.lights, dtype=np.float32)) light_diffuse = UBArrayVar("light_diffuse", np.array(lights, dtype=np.float32)) self.vars = [camera_position, main_light_position, main_light_diffuse,u_view, u_projection, light_positions, light_diffuse]
def __init__(self, vershade, fragshade): self.vershade = load_text(vershade) self.fragshade = load_text(fragshade) self.program = Program(self.vershade, self.fragshade)