Пример #1
0
    def __init__(self):
        super(SkeletonRenderer, self).__init__()

        self.num_joints = None
        self.shader = None

        self.vao = (GLuint)()
        self.indices_vbo = (GLuint)()
        self.matrix_vbo = (GLuint)()
        self.matrix_tbo = (GLuint)()

        # load our shader
        self.shader = ShaderProgram(
            Shader(GL_VERTEX_SHADER, SkeletonRenderer.shader_source['vert']),
            Shader(GL_FRAGMENT_SHADER, SkeletonRenderer.shader_source['frag']),
            link_now=False)

        # set our shader data
        # we MUST do this before we link the shader
        self.shader.attributes.in_index = 0
        self.shader.frag_location('out_frag_colour')

        # link the shader now
        self.shader.link()

        # bind our uniform indices
        self.shader.bind()
        self.shader.uniforms.in_bone_matrices = 0
        self.shader.unbind()

        # generate our buffers
        glGenVertexArrays(1, self.vao)
        glGenBuffers(1, self.indices_vbo)
        glGenBuffers(1, self.matrix_vbo)
        glGenTextures(1, self.matrix_tbo)
Пример #2
0
    def __init__(self, filename=None, buffer=None):
        super(Data, self).__init__()

        self.meshes = {}

        # create our shader
        self.shader = ShaderProgram(Shader(GL_VERTEX_SHADER,
                                           Data.shader_source['vert']),
                                    Shader(GL_FRAGMENT_SHADER,
                                           Data.shader_source['frag']),
                                    link_now=False)

        # set our shader data
        # we MUST do this before we link the shader
        self.shader.attributes.in_position = 0
        self.shader.attributes.in_texture_coord = 1
        self.shader.attributes.in_normal = 2
        self.shader.frag_location('out_frag_colour')

        # link the shader now
        self.shader.link()

        # bind our uniform indices
        self.shader.bind()
        self.shader.uniforms.tex0 = 0
        self.shader.unbind()

        self.obj = pymesh.obj.OBJ()
        if filename != None:
            self.obj.load(filename)
        else:
            self.obj.load_from_buffer(buffer)

        self._load()
Пример #3
0
    def __init__(self, filename=None, buffer=None):
        super(Data, self).__init__()

        self.meshes = {}

        # create our shader
        self.shader = Shader(vert=Data.shader_source['vert'],
                             frag=Data.shader_source['frag'])
        self.shader.attribute(0, 'in_position')
        self.shader.attribute(1, 'in_texture_coord')
        self.shader.attribute(2, 'in_normal')
        self.shader.frag_location('fragColor')
        self.shader.link()

        # bind our uniform indices
        self.shader.bind()
        self.shader.uniformi('tex0', 0)
        self.shader.unbind()

        self.obj = pymesh.obj.OBJ()
        if filename != None:
            self.obj.load(filename)
        else:
            self.obj.load_from_buffer(buffer)

        self._load()
Пример #4
0
    def __init__( self, md5mesh ):
        super( Mesh, self ).__init__()

        self.mesh = MeshData( md5mesh )
        self.vbo = (GLuint)()
        self.tbo = (GLuint)()
        self.shader = None

        glGenBuffers( 1, self.vbo )
        glGenTextures( 1, self.tbo )

        self.shader = ShaderProgram(
            Shader( GL_VERTEX_SHADER, Mesh.shader_source['vert'] ),
            Shader( GL_FRAGMENT_SHADER, Mesh.shader_source['frag'] ),
            link_now = False
            )

        # set our shader data
        # we MUST do this before we link the shader
        self.shader.attributes.in_normal = 0
        self.shader.attributes.in_texture_coord = 1
        self.shader.attributes.in_bone_indices = 2
        self.shader.attributes.in_bone_weights_1 = 3
        self.shader.attributes.in_bone_weights_2 = 4
        self.shader.attributes.in_bone_weights_3 = 5
        self.shader.attributes.in_bone_weights_4 = 6
        self.shader.frag_location( 'out_frag_colour' )

        # link the shader now
        self.shader.link()

        # bind our uniform indices
        self.shader.bind()
        self.shader.uniforms.in_diffuse = 0
        self.shader.uniforms.in_specular = 1
        self.shader.uniforms.in_normal = 2
        self.shader.uniforms.in_bone_matrices = 4
        self.shader.unbind()