def RenderHead(folderPath, headMeshName, textureName, capturePath=None): global orthoSize, currentHandle print folderPath if capturePath != None: capturePath = os.path.join(capturePath, os.path.basename(folderPath)) mesh = LoadObj(os.path.join(folderPath, headMeshName)) orthoSize = mesh.radius * 1.5 print 'mesh center = ', mesh.center print 'mesh radius = ', mesh.radius print 'len texturecoord = ', len(mesh.textureCoords) print 'len faces = ', len(mesh.faces) print 'len vertex = ', len(mesh.vertexs) # PrintList(mesh.vertexs) textureImg = Image.Image() textureImg = Image.open(os.path.join(folderPath, textureName)) textureHandle = None arr = PIL2array(textureImg) # tempImage = array2PIL(arr, textureImg.size) # textureImg.save(os.path.join(folderPath, 'temp_texture.jpg')) # print arr.size # print textureImg.format print 'texture size = ', textureImg.size # print textureImg.size[0], textureImg.size[1] # print textureImg.info print list(textureImg.getdata())[0] print textureImg.mode angle = 0 textureHandle = init(textureImg) currentHandle = textureHandle Render(mesh, textureImg, angle) glfw.SwapBuffers() print 'handle = ', textureHandle endFlag = 361 angleChange = {0: 30, 30: -30, -30: endFlag} while (True): Render(mesh, textureImg, textureHandle, angle) if (glfw.GetKey(glfw.KEY_ESC) == glfw.GLFW_PRESS): break # angle += 1; if (angleChange.get(angle) != None): captureImage = CaptureOpenGLImage() captureImage.save(folderPath + '/capture_' + str(angle) + '.jpg') if capturePath != None: captureImage.save(capturePath + '_capture_' + str(angle) + '.jpg') angle = angleChange[angle] else: print 'end' glfw.Terminate() glfw.CloseWindow() break glfw.SwapBuffers() time.sleep(0.02)
def main(): # * Initialize graphics subsystem initGraphics() # * Open camera and create GLCameraViewer instance camera = cv2.VideoCapture(0) # NOTE: Live camera can be substituted with recorded video here cameraViewer = GLCameraViewer(camera) # * Main GLFW loop while glfw.GetWindowParam(glfw.OPENED): # ** Handle events glfw.PollEvents() if glfw.GetKey(glfw.KEY_ESC): break # ** Run cameraViewer through one iteration of processing cameraViewer.capture() cameraViewer.process() # ** Clear current output and render glClear(GL_COLOR_BUFFER_BIT) cameraViewer.render() # ** Present rendered output glfw.SwapBuffers() # * Clean up cameraViewer.cleanUp() camera.release() glfw.Terminate()
def start(self): self.running = True GL_DEPTH_BUFFER_BIT = 0x00000100 while(self.running): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glMatrixMode(GL_MODELVIEW) glPushMatrix() self.tick_and_render() glMatrixMode(GL_MODELVIEW) glPopMatrix() glfw.SwapBuffers()
def run(self): self.running = True last_time = time() while self.running: if glfw.GetKey(glfw.KEY_ESC) == glfw.GLFW_PRESS: self.running = False break # get time current_time = time() delta = current_time - last_time last_time = current_time self.step(delta) self.render() glfw.SwapBuffers()
def step(self): # clear glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) # build projection matrix pMatrix = glutils.perspective(45.0, self.aspect, 0.1, 100.0) mvMatrix = glutils.lookAt([0.0, 0.0, -2.0], [0.0, 0.0, 0.0], [0.0, 1.0, 0.0]) # render self.scene.render(pMatrix, mvMatrix) # step self.scene.step() glfw.SwapBuffers(self.win) # Poll for and process events glfw.PollEvents()
def endDraw(self): glfw.SwapBuffers()
def init(): width = 640 height = 480 glfw.Init() glfw.OpenWindow(width, height, 8, 8, 8, 0, 24, 0, glfw.WINDOW) glfw.SetWindowTitle("glfw line") glfw.SetWindowSizeCallback(Reshape) glEnable(GL_DEPTH_TEST) glPolygonMode(GL_BACK, GL_LINE) # set eht projection # mouse glfw.SetMouseButtonCallback(MouseHandler) glfw.SetKeyCallback(KeyboardHandler) # init() while (True): Display() glfw.SwapBuffers() if (glfw.GetKey(glfw.KEY_ESC) == glfw.GLFW_PRESS): break time.sleep(0.02) xAxisAngle += 1 yAxisAngle += 1 glfw.Terminate()
def on_refresh(): log("Refresh") glClear(GL_COLOR_BUFFER_BIT) glfw.SwapBuffers()