def on_key_press(symbol, modifiers): if symbol == 88: # x self.view_orth_vector = np.array([self.radius, 0, 0]) self.program['u_view'] = glm.translation( self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 89: # y self.view_orth_vector = np.array([0, self.radius, 0]) self.program['u_view'] = glm.translation( self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 90: # z self.view_orth_vector = np.array([0, 0, self.radius]) self.program['u_view'] = glm.translation( self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 70: # f self.view_orth_vector = -self.view_orth_vector self.program['u_view'] = glm.translation( self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 80: # p gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot.png') print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers))
def on_draw(dt): global phi, theta, duration, i, cube_prog, indices window.clear() gl.glEnable(gl.GL_DEPTH_TEST) cube_prog.draw(gl.GL_TRIANGLES, indices) # Rotate cube theta += random.randint(0, 300) # degrees phi += random.randint(0, 300) # degrees view = cube_prog['u_view'].reshape(4, 4) model = np.eye(4, dtype=np.float32) glm.rotate(model, theta, 0, 0, 1) glm.rotate(model, phi, 0, 1, 0) cube_prog['u_model'] = model cube_prog['u_normal'] = np.array(np.matrix(np.dot(view, model)).I.T) if i < count: framebuffer = np.zeros((window.height, window.width * 3), dtype=np.uint8) gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save("color/" + str(dice_val) + "_" + str(i) + '.png') i += 1 else: app.quit() i = 0
def on_key_press(self, k, modifiers): """" Default key handler that close window on escape """ if k == key.ESCAPE: self.close() return True elif k == key.F10: import os, sys import numpy as np from glumpy.ext import png framebuffer = np.zeros((self.height, self.width * 3), dtype=np.uint8) gl.glReadPixels(0, 0, self.width, self.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) basename = os.path.basename(os.path.realpath(sys.argv[0])) dirname = os.path.dirname(os.path.realpath(sys.argv[0])) basename = '.'.join(basename.split('.')[:-1]) filename = os.path.join(dirname, "%s.png" % basename) png.from_array(framebuffer[::-1], 'RGB').save(filename) # index = 0 # filename = "%s-%04d.png" % (basename,index) # while os.path.exists(os.path.join(dirname, filename)): # index += 1 # filename = "%s-%04d.png" % (basename, index) # png.from_array(framebuffer, 'RGB').save(filename) return True
def on_key_press(symbol, modifiers): """ :param symbol: :param modifiers: :return: """ ''' if symbol == 88: # x self.view_orth_vector = np.array([self.radius, 0, 0]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 89: # y self.view_orth_vector = np.array([0, self.radius, 0]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 90: # z self.view_orth_vector = np.array([0, 0, self.radius]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 70: # f self.view_orth_vector = -self.view_orth_vector self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 80: # p gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot.png') print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers)) # self.program['color_sel'] = 1 - self.program['color_sel'] ''' #print(symbol) if symbol == 67: # c --> change color for program_object in self.programs: if program_object.name == 'ProgramSFM3DRegion': program_object.program['color_sel'] = 1 - program_object.program['color_sel'] elif symbol == 65: # a --> align sfm to google for program_object in self.programs: if program_object.name == 'ProgramSFM3DRegion' or program_object.name == 'programTrajectory': program_object.align_flip() elif symbol == 73: # i --> inverse google according anchor for program_object in self.programs: if program_object.name == 'ProgramSV3DRegion' or program_object.name == 'programSV3DTopology': program_object.apply_anchor_flip() elif symbol == 89: # y --> rotate google according anchor yaw for program_object in self.programs: if program_object.name == 'ProgramSV3DRegion' or program_object.name == 'programSV3DTopology': program_object.apply_yaw_flip() elif symbol == 80: # p --> print scrren gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot{}.png'.format(self.scIdx)) #my_texture = np.reshape(framebuffer, (window.height, window.width, 3)) # Some unknown reason # The buffer didn't match what I see in the window #my_texture = np.flipud(my_texture) #scipy.misc.imsave('yolo.png', my_texture) self.scIdx += 1
def on_key_press(self, k, modifiers): """" Default key handler that close window on escape """ if k == key.ESCAPE: self.close() return True elif k == key.F10: import os, sys import numpy as np from glumpy.ext import png framebuffer = np.zeros((self.height, self.width * 3), dtype=np.uint8) gl.glReadPixels(0, 0, self.width, self.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) basename = os.path.basename(os.path.realpath(sys.argv[0])) dirname = os.path.dirname(os.path.realpath(sys.argv[0])) basename = '.'.join(basename.split('.')[:-1]) filename = os.path.join(dirname,"%s.png" % basename) png.from_array(framebuffer[::-1], 'RGB').save(filename) # index = 0 # filename = "%s-%04d.png" % (basename,index) # while os.path.exists(os.path.join(dirname, filename)): # index += 1 # filename = "%s-%04d.png" % (basename, index) # png.from_array(framebuffer, 'RGB').save(filename) return True
def on_key_press(symbol, modifiers): """ :param symbol: :param modifiers: :return: """ ''' if symbol == 88: # x self.view_orth_vector = np.array([self.radius, 0, 0]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 89: # y self.view_orth_vector = np.array([0, self.radius, 0]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 90: # z self.view_orth_vector = np.array([0, 0, self.radius]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 70: # f self.view_orth_vector = -self.view_orth_vector self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 80: # p gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot.png') print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers)) # self.program['color_sel'] = 1 - self.program['color_sel'] ''' #print(symbol) if symbol == 67: # c --> change color for program_object in self.programs: if program_object.name == 'ProgramSFM3DRegion': program_object.program['color_sel'] = 1 - program_object.program['color_sel'] elif symbol == 65: # a --> align sfm to google for program_object in self.programs: if program_object.name == 'ProgramSFM3DRegion' or program_object.name == 'programTrajectory': program_object.align_flip() elif symbol == 73: # i --> inverse google according anchor for program_object in self.programs: if program_object.name == 'ProgramSV3DRegion': program_object.apply_anchor_flip() elif symbol == 89: # y --> rotate google according anchor yaw for program_object in self.programs: if program_object.name == 'ProgramSV3DRegion': program_object.apply_yaw_flip() elif symbol == 80: # p --> print scrren gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot{}.png'.format(self.scIdx)) #my_texture = np.reshape(framebuffer, (window.height, window.width, 3)) # Some unknown reason # The buffer didn't match what I see in the window #my_texture = np.flipud(my_texture) #scipy.misc.imsave('yolo.png', my_texture) self.scIdx += 1
def on_draw(dt): window.clear() for shape in shapes: shape.draw(gl.GL_TRIANGLE_STRIP) for curve_loop in curves_loop: curve_loop.draw(gl.GL_LINE_LOOP) for curve in curves: curve.draw(gl.GL_LINES) gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(np.flipud(framebuffer), 'RGB').save('wardisland.png')
def on_key_press(symbol, modifiers): global toggleStop, time # print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers)) if symbol == 83: gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) screen_filename = filename[:-3] + '_' + str(time) + '.png' png.from_array(framebuffer, 'RGB').save(screen_filename) print('... screen capture: {}'.format(screen_filename)) if symbol == app.window.key.ENTER: reset(transform) if symbol == app.window.key.SPACE: if toggleStop: toggleStop = False else: toggleStop = True
def on_draw(dt): framebuffer.activate() gl.glViewport(0, 0, w, h) window.clear() scene.draw(gl.GL_TRIANGLE_STRIP) framebuffer.deactivate() gl.glViewport(0, 0, zoom * w, zoom * h) window.clear() output.draw(gl.GL_TRIANGLE_STRIP) image = np.zeros((window.height, window.width * 3), dtype=np.uint8) gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, image) image[...] = image[::-1, :] # filename = "triangle-sdf-filled.png" filename = "triangle-sdf-outlined.png" png.from_array(image, 'RGB').save(filename)
def on_draw(dt): global framebuffer, offset_index offset_name = list(offsets.keys())[offset_index] offset = offsets[offset_name] gl.glViewport(0, 0, width, height) framebuffer_2.activate() window.clear() framebuffer_2.deactivate() for dx, dy in offset: framebuffer_1.activate() window.clear() scene["offset"] = (2 * dx - 1) / width, (2 * dy - 1) / height scene.draw(gl.GL_TRIANGLE_STRIP) # scene.draw(gl.GL_LINE_LOOP) framebuffer_1.deactivate() framebuffer_2.activate() gl.glEnable(gl.GL_BLEND) gl.glBlendFunc(gl.GL_CONSTANT_ALPHA, gl.GL_ONE) gl.glBlendColor(0, 0, 0, 1 / len(offset)) ssaa.draw(gl.GL_TRIANGLE_STRIP) gl.glDisable(gl.GL_BLEND) framebuffer_2.deactivate() gl.glViewport(0, 0, window.width, window.height) window.clear() final.draw(gl.GL_TRIANGLE_STRIP) gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) framebuffer[...] = framebuffer[::-1, :] # filename = "triangle-ssaa-outlined-%s.png" % offset_name filename = "triangle-ssaa-filled-%s.png" % offset_name png.from_array(framebuffer, 'RGB').save(filename) offset_index += 1
def on_key_press(symbol, modifiers): if symbol == 88: # x self.view_orth_vector = np.array([self.radius, 0, 0]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 89: # y self.view_orth_vector = np.array([0, self.radius, 0]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 90: # z self.view_orth_vector = np.array([0, 0, self.radius]) self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 70: # f self.view_orth_vector = -self.view_orth_vector self.program['u_view'] = glm.translation(self.view_orth_vector[0], self.view_orth_vector[1], self.view_orth_vector[2]) elif symbol == 80: # p gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot.png') print('Key pressed (symbol=%s, modifiers=%s)' % (symbol, modifiers))
def on_draw(dt): nonlocal frame, x, y, z, theta, phi, gamma # Export screenshot gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) if frame > 2: # Skip empty zero frame if (frame) % 3 == 0: pbar.update() gt.append( [f'{(frame-3)//3:05d}.png', x, y, z, theta, phi, gamma]) png.from_array(framebuffer, 'RGB').save( root / 'images' / f'{(frame-3)//3:05d}.png') elif (frame) % 3 == 1: png.from_array(framebuffer, 'RGB').save( root / 'no_rotation' / f'{(frame-4)//3:05d}.png') elif (frame) % 3 == 2: png.from_array(framebuffer, 'RGB').save( root / 'no_translation' / f'{(frame-5)//3:05d}.png') if (frame - 1) % 3 == 0: theta = np.random.random_sample() * 360 x, y = np.random.random_sample(2) * (max_xy - min_xy) + min_xy if not fixed_z: z = np.random.random_sample() * (max_z - min_z) + min_z if shape == 'cube': phi = np.random.random_sample() * 180 if shape in shapes: phi = np.random.random_sample() * 180 gamma = np.random.random_sample() * 360 window.clear() # Fill cube gl.glDisable(gl.GL_BLEND) gl.glEnable(gl.GL_DEPTH_TEST) gl.glEnable(gl.GL_POLYGON_OFFSET_FILL) cube['u_color'] = 1, 1, 1, 1 cube.draw(gl.GL_TRIANGLES, I) # Rotate cube view = cube['u_view'].reshape(4, 4) model = np.eye(4, dtype=np.float32) if (frame - 1) % 3 != 1: glm.rotate(model, theta, 0, 0, 1) glm.rotate(model, phi, 0, 1, 0) glm.rotate(model, gamma, 1, 0, 0) # Translate cube if (frame - 1) % 3 != 2: glm.translate(model, x, y, z) cube['u_model'] = model cube['u_normal'] = np.array(np.matrix(np.dot(view, model)).I.T) frame += 1
def on_draw(dt): window.clear() gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot'+ str(dt) +'.png')
def on_key_press(symbol, modifiers): gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot.png') #print('Key pressed (symbol=%s, modifiers=%s)'% (symbol,modifiers)) program_ptCloud['color_sel'] = 1 - program_ptCloud['color_sel']
def on_draw(dt): window.clear() gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, 'RGB').save('screenshot.png')
def on_draw(dt): window.clear() gl.glReadPixels(0, 0, window.width, window.height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, framebuffer) png.from_array(framebuffer, "RGB").save("screenshot.png")