Exemplo n.º 1
0
 public static Material Glossy(RGBSpectrum albedo, float roughness)
 {
     return(new(IDensityProfile.Surface,
                IAbsorptionProfile.Uniform(albedo),
                IOrientationProfile.SurfaceGGX(roughness),
                IReflectionProfile.Specular,
                IEmittanceProfile.None));
 }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 3
0
 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));
 }
Exemplo n.º 4
0
 public Material(IDensityProfile densityProfile,
                 IAbsorptionProfile absorptionProfile,
                 IOrientationProfile orientationProfile,
                 IReflectionProfile reflectionProfile,
                 IEmittanceProfile emittanceProfile)
 {
     DensityProfile     = densityProfile;
     AbsorptionProfile  = absorptionProfile;
     OrientationProfile = orientationProfile;
     ReflectionProfile  = reflectionProfile;
     EmittanceProfile   = emittanceProfile;
 }