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]].