Exemple #1
0
class Scene:
    def __init__(self):
        self.film = Film()
        self.sampler = TileSampler()
        self.ray_tracer = RayTracer()
        self.camera = Camera()

    def render(self):
        width = self.film.image.shape[1]
        height = self.film.image.shape[0]
        for sample in self.sampler.get_sample():
            ray = self.camera.generate_ray(sample, width, height)
            color = self.ray_tracer.trace(ray, 0)
            self.film.commit(sample, color)

            if int(sample[1]) % 50 == 0:
                print('%s: (%d, %d)' %
                      (self.film.filename, sample[0], sample[1]))

        self.film.write_image()