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 SpecularParticleCloud(RGBSpectrum albedo, float density, float roughness) { return(new(IDensityProfile.Volumetric(density), IAbsorptionProfile.Uniform(albedo), IOrientationProfile.SurfaceSGGX(roughness), IReflectionProfile.Specular, IEmittanceProfile.None)); }
public Material(IDensityProfile densityProfile, IAbsorptionProfile absorptionProfile, IOrientationProfile orientationProfile, IReflectionProfile reflectionProfile, IEmittanceProfile emittanceProfile) { DensityProfile = densityProfile; AbsorptionProfile = absorptionProfile; OrientationProfile = orientationProfile; ReflectionProfile = reflectionProfile; EmittanceProfile = emittanceProfile; }