Example #1
0
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)
Example #2
0
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()
Example #3
0
    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()
Example #4
0
    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()
Example #5
0
    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()
Example #6
0
 def endDraw(self):
     glfw.SwapBuffers()
Example #7
0

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()
Example #8
0
def on_refresh():
    log("Refresh")

    glClear(GL_COLOR_BUFFER_BIT)
    glfw.SwapBuffers()