A raytracing context is a standalone world, composed of:
- many [[raytraced-audio/v110/Primitives|Primitives]] (spheres, prisms, etc)
- many [[raytraced-audio/v110/Emitters|Emitters]] (3D positions that cast rays and can be discovered by other emitters)
Settings can be customised at any time, either when creating a context or at runtime:
```cs
// Customise when creating
var context = new RaytracingContext()
{
WorldPosition = new Vector3F(0),
WorldSize = new Vector3F(100),
};
// Customise at runtime
context.WorldSize = new Vector3F(500);
```
The full list of fields and methods is available here: [[raytraced-audio/v110/Classes/RaytracingContext|RaytracingContext]].
## AirAbsorption
Customise humidity, temperature and pressure settings, or provide your own custom formula.
```cs
context.AirAbsorption = new AirAbsorptionSettings()
{
HumidityPercent = 0.4f,
TemperatureCelsius = 26
};
```
Read more: [[raytraced-audio/v110/Formulas/Air Absorption|Air Absorption]].
## Materials
Customise absorption, scattering and transmission values for existing materials, or create new materials.
```cs
var metal = context.GetMaterial(MaterialType.Metal);
metal.AbsorptionLF = 0.1f;
context.MaterialsDirty = true;
```
Read more: [[raytraced-audio/v110/Materials|Materials]].
## CustomEaxFormulas
This class allows overriding the default formulas for calculating EAX reverb properties.
Read more: [[raytraced-audio/v110/Formulas/Custom EAX Formulas|Custom EAX Formulas]].