Exemplo n.º 1
0
def main():
    global my_renderer
    global my_scene
    global my_camera

#    load_from_file("scenes/ao_02.pbrt")
#    load_from_file("scenes/ao_01.pbrt")
#    load_from_file("scenes/debug.pbrt")
#    load_from_file("scenes/cornell.pbrt")

#    load_from_file("scenes/cornellebox_pathtracing_lq.pbrt")
#    load_from_file("scenes/cornellebox_pathtracing_mq.pbrt")
    load_from_file("scenes/cornellebox_pathtracing_jensen_lq.pbrt")

    my_renderer = renderOptions.make_renderer()
    my_scene = renderOptions.make_scene()

    qt_app = QtGui.QApplication(sys.argv)
    app = Application(my_renderer.camera.film)

    pool = ThreadPool(1)
    pool.add_task(render)
#    render(False)

    sys.exit(qt_app.exec_())
Exemplo n.º 2
0
    def render(self, scene, bucket_order_info: BucketOrderInfo, multiThread: bool=True):

        self.scene = scene

        sample_list = [Sample(self.main_sampler, scene)]

        my_bucket_orders = BucketOrder.create(bucket_order_info.width, bucket_order_info.height,
                                              bucket_order_info.bucket_order_type)

        # 1) Init a Thread pool with the desired number of threads
        pool = ThreadPool(1)

        # 2) Add the task to the queue
        task_index = 0
        for i in range(bucket_order_info.width * bucket_order_info.height):
            pool.add_task(self.render_task,
                          task_index,
                          my_bucket_orders.buckets_orders[task_index],
                          bucket_order_info,
                          sample_list,
                          random.random() * 255)
            task_index += 1

        # 3) Wait for completion
        pool.wait_completion()