Open gitsunekei1445 opened 4 years ago
def render_model(pathModel,pathTextures): Render.textures = glGenTextures(2) Render.model_indices,model_buffer = ObjLoader.load_model("Bin/Grassv2.obj") Render.shader = compileProgram(compileShader(GLSL.vertex_src_loaderModel, GL_VERTEX_SHADER), compileShader(GLSL.fragment_src_loaderModel, GL_FRAGMENT_SHADER)) # VAO and VBO Render.VAO = glGenVertexArrays(2) VBO = glGenBuffers(2) # Chibi VAO glBindVertexArray(Render.VAO[0]) # Chibi Vertex Buffer Object glBindBuffer(GL_ARRAY_BUFFER, VBO[0]) glBufferData(GL_ARRAY_BUFFER, model_buffer.nbytes, model_buffer, GL_STATIC_DRAW) # glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO) # glBufferData(GL_ELEMENT_ARRAY_BUFFER, chibi_indices.nbytes, chibi_indices, GL_STATIC_DRAW) # chibi vertices glEnableVertexAttribArray(0) glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, model_buffer.itemsize * 8, ctypes.c_void_p(0)) # chibi textures glEnableVertexAttribArray(1) glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, model_buffer.itemsize * 8, ctypes.c_void_p(12)) # chibi normals glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, model_buffer.itemsize * 8, ctypes.c_void_p(20)) glEnableVertexAttribArray(2) load_texture("Bin/Grass.png", Render.textures[0]); glUseProgram(Render.shader) glEnable(GL_DEPTH_TEST) glEnable(GL_BLEND) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) projection = pyrr.matrix44.create_perspective_projection_matrix(45, 1280 / 720, 0.1, 100) Render.model_pos = pyrr.matrix44.create_from_translation(pyrr.Vector3([0, 0, 0])) # eye, target, up view = pyrr.matrix44.create_look_at(pyrr.Vector3([0, 0, 8]), pyrr.Vector3([0, 0, 0]), pyrr.Vector3([0, 1, 0])) Render.model_loc = glGetUniformLocation(Render.shader, "model") proj_loc = glGetUniformLocation(Render.shader, "projection") view_loc = glGetUniformLocation(Render.shader, "view") glUniformMatrix4fv(proj_loc, 1, GL_FALSE, projection) glUniformMatrix4fv(view_loc, 1, GL_FALSE, view)