public static Material DiffuseParticleCloud(RGBSpectrum albedo, float density) { return(new(IDensityProfile.Volumetric(density), IAbsorptionProfile.Uniform(albedo), IOrientationProfile.Uniform, IReflectionProfile.Diffuse, IEmittanceProfile.None)); }
public static Material IsotropicVolumetric(RGBSpectrum albedo, float density) { return(new(IDensityProfile.Volumetric(density), IAbsorptionProfile.Uniform(albedo), IOrientationProfile.Forwards, IReflectionProfile.Spherical, IEmittanceProfile.None)); }
public static Material Glossy(RGBSpectrum albedo, float roughness) { return(new(IDensityProfile.Surface, IAbsorptionProfile.Uniform(albedo), IOrientationProfile.SurfaceGGX(roughness), IReflectionProfile.Specular, IEmittanceProfile.None)); }
public static Material RoughSpecularDiffuseBlend(RGBSpectrum albedo, float specularity, float roughness) { return(new(IDensityProfile.Surface, IAbsorptionProfile.Uniform(albedo), IOrientationProfile.SurfaceGGX(roughness), IReflectionProfile.Blend((IReflectionProfile.Diffuse, 1f - specularity), (IReflectionProfile.Specular, specularity)), IEmittanceProfile.None)); }
public static Material Specular(RGBSpectrum albedo) { return(new(IDensityProfile.Surface, IAbsorptionProfile.Uniform(albedo), IOrientationProfile.Flat, IReflectionProfile.Specular, IEmittanceProfile.None)); }
public static Material SpecularParticleCloud(RGBSpectrum albedo, float density, float roughness) { return(new(IDensityProfile.Volumetric(density), IAbsorptionProfile.Uniform(albedo), IOrientationProfile.SurfaceSGGX(roughness), IReflectionProfile.Specular, IEmittanceProfile.None)); }