3.6. Optical Volume Materials¶
- class raysect.optical.material.emitter.UnityVolumeEmitter¶
Bases:
raysect.optical.material.emitter.homogeneous.HomogeneousVolumeEmitter
Uniform, isotropic volume emitter with emission 1W/str/m^3/ x nm, where x is the spectrum’s wavelength interval.
This material is useful for general purpose debugging and evaluating the coupling coefficients between cameras and emitting volumes.
>>> from raysect.primitive import Sphere >>> from raysect.optical import World >>> from raysect.optical.material import UnityVolumeEmitter >>> >>> # set-up scenegraph >>> world = World() >>> emitter = Sphere(radius=0.01, parent=world, material=UnityVolumeEmitter())
- class raysect.optical.material.emitter.UniformVolumeEmitter¶
Bases:
raysect.optical.material.emitter.homogeneous.HomogeneousVolumeEmitter
Uniform, homogeneous and isotropic volume emitter.
Uniform emission will be given by the emission_spectrum multiplied by the emission scale in radiance.
- Parameters
emission_spectrum (SpectralFunction) – The volume’s emission function.
scale (float) – Scale of the emission function (default = 1 W/m^3/str/nm).
>>> from raysect.primitive import Sphere >>> from raysect.optical import World, ConstantSF >>> from raysect.optical.material import UniformVolumeEmitter >>> >>> # set-up scenegraph >>> world = World() >>> emitter = Sphere(radius=0.01, parent=world) >>> emitter.material=UniformVolumeEmitter(ConstantSF(1.0))
- class raysect.optical.material.emitter.HomogeneousVolumeEmitter¶
Bases:
raysect.optical.material.material.NullSurface
Base class for homogeneous volume emitters.
Total power output of the light from each point is constant, but not necessarily isotropic.
The deriving class must implement the emission_function() method.
- emission_function()¶
The emission function for the material.
This is a virtual method and must be implemented in a sub class.
- Parameters
direction (Vector3D) – The emission direction vector in local coordinates.
spectrum (Spectrum) – Spectrum measured so far along ray path. Add your emission to this spectrum, don’t override it.
world (World) – The world scene-graph.
ray (Ray) – The ray being traced.
primitive (Primitive) – The geometric primitive to which this material belongs (i.e. a cylinder or a mesh).
world_to_primitive (AffineMatrix3D) – Affine matrix defining the coordinate transform from world space to the primitive’s local space.
primitive_to_world (AffineMatrix3D) – Affine matrix defining the coordinate transform from the primitive’s local space to world space.
- class raysect.optical.material.emitter.InhomogeneousVolumeEmitter¶
Bases:
raysect.optical.material.material.NullSurface
Base class for inhomogeneous volume emitters.
The integration technique can be changed by the user, but defaults to a basic numerical integration scheme.
The deriving class must implement the emission_function() method.
- Parameters
integrator (VolumeIntegrator) – Integration object, defaults to NumericalIntegrator(step=0.01, min_samples=5).
- emission_function()¶
The emission function for the material at a given sample point.
This is a virtual method and must be implemented in a sub class.
- Parameters
point (Point3D) – Requested sample point in local coordinates.
direction (Vector3D) – The emission direction in local coordinates.
spectrum (Spectrum) – Spectrum measured so far along ray path. Add your emission to this spectrum, don’t override it.
world (World) – The world scene-graph.
ray (Ray) – The ray being traced.
primitive (Primitive) – The geometric primitive to which this material belongs (i.e. a cylinder or a mesh).
world_to_primitive (AffineMatrix3D) – Affine matrix defining the coordinate transform from world space to the primitive’s local space.
primitive_to_world (AffineMatrix3D) – Affine matrix defining the coordinate transform from the primitive’s local space to world space.
- class raysect.optical.material.emitter.inhomogeneous.VolumeIntegrator¶
Base class for integrators in InhomogeneousVolumeEmitter materials.
The deriving class must implement the integrate() method.
- integrate()¶
Performs a customised integration of the emission through a volume emitter.
This is a virtual method and must be implemented in a sub class.
- Parameters
spectrum (Spectrum) – Spectrum measured so far along ray path. Add your emission to this spectrum, don’t override it.
world (World) – The world scene-graph.
ray (Ray) – The ray being traced.
primitive (Primitive) – The geometric primitive to which this material belongs (i.e. a cylinder or a mesh).
material (InhomogeneousVolumeEmitter) – The material whose emission needs to be integrated.
start_point (Point3D) – The start point for integration in world space.
end_point (Point3D) – The end point for integration in world space.
world_to_primitive (AffineMatrix3D) – Affine matrix defining the coordinate transform from world space to the primitive’s local space.
primitive_to_world (AffineMatrix3D) – Affine matrix defining the coordinate transform from the primitive’s local space to world space.
- class raysect.optical.material.emitter.inhomogeneous.NumericalIntegrator¶
Bases:
raysect.optical.material.emitter.inhomogeneous.VolumeIntegrator
A basic implementation of the trapezium integration scheme for volume emitters.
- Parameters
step (float) – The step size for numerical integration in metres.
min_samples (int) – The minimum number of samples to use over integration range (default=5).
- integrate()¶
Performs a customised integration of the emission through a volume emitter.
This is a virtual method and must be implemented in a sub class.
- Parameters
spectrum (Spectrum) – Spectrum measured so far along ray path. Add your emission to this spectrum, don’t override it.
world (World) – The world scene-graph.
ray (Ray) – The ray being traced.
primitive (Primitive) – The geometric primitive to which this material belongs (i.e. a cylinder or a mesh).
material (InhomogeneousVolumeEmitter) – The material whose emission needs to be integrated.
start_point (Point3D) – The start point for integration in world space.
end_point (Point3D) – The end point for integration in world space.
world_to_primitive (AffineMatrix3D) – Affine matrix defining the coordinate transform from world space to the primitive’s local space.
primitive_to_world (AffineMatrix3D) – Affine matrix defining the coordinate transform from the primitive’s local space to world space.