Beispiel #1
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('file',
                        metavar='OFF_FILE',
                        help='the off_file you want to render')
    parser.add_argument('--views',
                        type=int,
                        default=12,
                        metavar='N',
                        help='count of views to render, default is 12')
    parser.add_argument('--dodecahedron',
                        action='store_true',
                        help='use dodecahedron camera settings')
    args = parser.parse_args()
    render = Render()
    off_file = args.file
    print("loading model...")
    model = ol.load_off(off_file)
    render.load_model(*model)
    print("start to render...")
    images = render.render_to_images(args.views, args.dodecahedron)
    for i, image in enumerate(images):
        image = image.resize((512, 512), Image.BICUBIC)
        image.save("out-%s.jpg" % i)
    print("finished")
Beispiel #2
0
    def __init__(self,
                 render_class,
                 off_file,
                 size=(512, 512),
                 title="off_render"):
        fmt = QtOpenGL.QGLFormat()
        fmt.setVersion(3, 3)
        fmt.setProfile(QtOpenGL.QGLFormat.CoreProfile)
        fmt.setSwapInterval(1)
        fmt.setSampleBuffers(True)
        fmt.setDepthBufferSize(24)

        super(RenderWindow, self).__init__(fmt, None)
        self.setFixedSize(size[0], size[1])
        self.move(QtWidgets.QDesktopWidget().rect().center() -
                  self.rect().center())
        self.setWindowTitle(title)

        self.model = ol.load_off(off_file)

        self.start_time = time.time()
        self.render_class = render_class
        self.render = None

        self.wnd = WindowInfo()
        self.wnd.viewport = (0, 0) + size
        self.wnd.ratio = size[0] / size[1]
        self.wnd.size = size
Beispiel #3
0
 def render_and_save(self,
                     off_file,
                     output_dir,
                     output_views=12,
                     use_dodecahedron_views=False):
     self.load_model(*ol.load_off(off_file))
     images = self.render_to_images(
         output_views, use_dodecahedron_views=use_dodecahedron_views)
     self._save_images(images, off_file, output_dir)