def test_round_up_pow_2(self): self.assertEqual(round_up_pow_2(11), 16) self.assertEqual(round_up_pow_2(0), 0) self.assertEqual(round_up_pow_2(1), 1) self.assertEqual(round_up_pow_2(2), 2) self.assertEqual(round_up_pow_2(3), 4) self.assertEqual(round_up_pow_2(112), 128) self.assertEqual(round_up_pow_2(255), 256) self.assertEqual(round_up_pow_2(256), 256) self.assertEqual(round_up_pow_2(pow(2,40)), pow(2,40)) self.assertEqual(round_up_pow_2(pow(2,45)-103), pow(2,45))
def render(self, scene): """Render a scene.""" # allow integrators to do preprocessing self.surface_integrator.preprocess(scene, self.camera, self) self.volume_integrator.preprocess(scene, self.camera, self) # allocate and initialize smaple self.sample = Sample.from_sampler(self.sampler, self.surface_integrator, self.volume_integrator, scene) # compute number of SamplerRendererTasks to create for rendering n_pixels = self.camera.film.x_resolution * self.camera.film.y_resolution n_tasks = max(32 * num_system_cores(), n_pixels / (16 * 16)) n_tasks = round_up_pow_2(n_tasks) # create and launch SamplerRendererTasks for rendering image render_tasks = [] for i in range(n_tasks): render_tasks.append( SamplerRendererTask(scene, self, self.camera, self.sampler, self.sample, n_tasks - 1 - i, n_tasks)) # self.enqueue_tasks(render_tasks) # self.wait_for_all_tasks() for task in render_tasks: task.run() # clean up after rendering and store final image del (self.sample) self.camera.film.write_image()
def render(self, scene): """Render a scene.""" # allow integrators to do preprocessing self.surface_integrator.preprocess(scene, self.camera, self) self.volume_integrator.preprocess(scene, self.camera, self) # allocate and initialize smaple self.sample = Sample.from_sampler( self.sampler, self.surface_integrator, self.volume_integrator, scene) # compute number of SamplerRendererTasks to create for rendering n_pixels = self.camera.film.x_resolution * self.camera.film.y_resolution n_tasks = max(32 * num_system_cores(), n_pixels / (16*16)) n_tasks = round_up_pow_2(n_tasks) # create and launch SamplerRendererTasks for rendering image render_tasks = [] for i in range(n_tasks): render_tasks.append(SamplerRendererTask(scene, self, self.camera, self.sampler, self.sample, n_tasks-1-i, n_tasks)) # self.enqueue_tasks(render_tasks) # self.wait_for_all_tasks() for task in render_tasks: task.run() # clean up after rendering and store final image del(self.sample) self.camera.film.write_image()