예제 #1
0
파일: spectree.py 프로젝트: ivorjawa/BoarGL
    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]
예제 #2
0
파일: gldraw.py 프로젝트: ivorjawa/BoarGL
 def __init__(self, vershade, fragshade):
     self.vershade = load_text(vershade)
     self.fragshade = load_text(fragshade)
     self.program = Program(self.vershade, self.fragshade)