예제 #1
0
def on_draw():
    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)
    window.clear()

    program.vars.modelview = Matrix().translate(
        0, 0, -3).rotatex(-0.175).rotatez(rotation)
    program.vars.projection = Matrix.perspective(window.width, window.height,
                                                 60, 0.1, 100.0)

    with program:
        vbo.draw(GL_PATCHES)
예제 #2
0
def on_draw():
    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)
    glEnable(GL_CULL_FACE)
    glCullFace(GL_BACK)
    window.clear()

    model = Matrix().translate(-0.5, 0.0, 0.0)
    program.vars.modelview = view.matrix * model
    program.vars.projection = Matrix.perspective(window.width, window.height,
                                                 60, 0.001, 2.0)

    with program:
        terrain.draw()
예제 #3
0
    def update(self, delta):
        delta = min(delta, 0.03)
        rotmatrix = Matrix().rotatex(self.rotation.y).rotatey(self.rotation.x)
        front = rotmatrix * Vector(0.0, 0.0, 1.0, 1.0)
        right = rotmatrix * Vector(1.0, 0.0, 0.0, 1.0)
        up = rotmatrix * Vector(0.0, 1.0, 0.0, 1.0)

        factor = 0.5 * delta

        self.speed += right * -self.navigator.x * factor * 0.5
        self.speed += up * self.navigator.z * factor * 0.5
        self.speed += front * -self.navigator.y * factor * 0.5
        self.rotspeed += Vector(self.navigator.rz * factor,
                                -self.navigator.rx * factor)

        self.rotspeed -= self.rotspeed * 1.0 * delta
        self.speed -= self.speed * 1.0 * delta

        self.rotation += self.rotspeed * delta
        self.position += self.speed * delta

        self.matrix = rotmatrix * Matrix().translate(
            self.position.x, self.position.y, self.position.z)
예제 #4
0
def on_draw():
    window.clear()

    program = lod
    program.vars.modelview = Matrix().translate(
        0, 0, -zoom).rotatex(-0.14).rotatez(rotation)
    program.vars.projection = Matrix.perspective(window.width, window.height,
                                                 60, 0.1, 200.0)
    program.vars.screen_size = float(window.width), float(window.height)

    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)
    with program:
        glPatchParameteri(GL_PATCH_VERTICES, 4)
        vbo.draw(GL_PATCHES)
        #vbo.draw(GL_QUADS)

    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
    fps.draw()
예제 #5
0
def on_draw():
    window.clear()

    model = Matrix().rotatex(-0.25).translate(-0.5, -0.5, 0.0)
    projection = Matrix.perspective(window.width, window.height, 65, 0.0001,
                                    100.0)
    modelview = view.matrix * model

    program.vars.mvp = projection * modelview
    program.vars.modelview = modelview
    program.vars.projection = projection
    program.vars.screen_size = float(window.width), float(window.height)

    #glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)
    with nested(DepthTest, diffuse, terrain, program):
        vbo.draw(GL_PATCHES)
    '''
    normals.vars.mvp = projection * modelview
    with nested(DepthTest, normals):
        vbo.draw(normals, GL_TRIANGLES)
    '''

    fps.draw()