plt.plot(z, beam_half_densities, label="half energy") plt.xlabel('z axis (beam coords)') plt.ylabel('beam component density [m^-3]') plt.title("Beam attenuation by energy component") plt.legend() # OBSERVATIONS ---------------------------------------------------------------- camera = PinholeCamera((128, 128), parent=world, transform=translate(1.25, -3.5, 0) * rotate_basis(Vector3D(0, 1, 0), Vector3D(0, 0, 1))) camera.spectral_rays = 1 camera.spectral_bins = 15 camera.pixel_samples = 5 # turning off parallisation because this causes issues with the way RENATE currently loads atomic data from raysect.core.workflow import SerialEngine camera.render_engine = SerialEngine() plt.ion() camera.observe() power = PowerPipeline0D(accumulate=False) spectral_power = SpectralPowerPipeline0D() los = SightLine(pipelines=[power, spectral_power], min_wavelength=640, max_wavelength=665, parent=world, transform=translate(*los_start) * rotate_basis(los_direction, Vector3D(0, 0, 1))) los.pixel_samples = 1 los.spectral_bins = 2000 los.observe() plt.ioff() plt.show()
Point3D(100, 0, 100), world, material=RoughTitanium(0.1)) # camera rgb_pipeline = RGBPipeline2D(display_update_time=5) sampler = RGBAdaptiveSampler2D(rgb_pipeline, min_samples=100, fraction=0.2) camera = PinholeCamera((512, 512), parent=world, transform=translate(0, 4, -3.5) * rotate(0, -45, 0), pipelines=[rgb_pipeline], frame_sampler=sampler) camera.spectral_bins = 15 camera.spectral_rays = 1 camera.pixel_samples = 200 camera.render_engine = MulticoreEngine(4) # integration resolution emitter.material.integrator.step = 0.05 # start ray tracing os.nice(15) ion() timestamp = time.strftime("%Y-%m-%d_%H-%M-%S") for p in range(1, 1000): print("Rendering pass {}...".format(p)) camera.observe() rgb_pipeline.save("demo_volume_{}_pass_{}.png".format(timestamp, p)) print() # display final result
return spectrum # scene world = World() emitter = Box(Point3D(-1, -1, -0.25), Point3D(1, 1, 0.25), material=CosGlow(), parent=world, transform=translate(0, 1, 0) * rotate(30, 0, 0)) floor = Box(Point3D(-100, -0.1, -100), Point3D(100, 0, 100), world, material=RoughTitanium(0.1)) # camera rgb_pipeline = RGBPipeline2D(display_update_time=5) sampler = RGBAdaptiveSampler2D(rgb_pipeline, min_samples=100, fraction=0.2) camera = PinholeCamera((512, 512), parent=world, transform=translate(0, 4, -3.5) * rotate(0, -45, 0), pipelines=[rgb_pipeline], frame_sampler=sampler) camera.spectral_bins = 15 camera.spectral_rays = 1 camera.pixel_samples = 200 camera.render_engine = MulticoreEngine(4) # integration resolution emitter.material.integrator.step = 0.05 # start ray tracing os.nice(15) ion() timestamp = time.strftime("%Y-%m-%d_%H-%M-%S") for p in range(1, 1000): print("Rendering pass {}...".format(p)) camera.observe() rgb_pipeline.save("demo_volume_{}_pass_{}.png".format(timestamp, p)) print() # display final result