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)
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()
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()
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()