Exemplo n.º 1
0
 public static Material DiffuseParticleCloud(RGBSpectrum albedo, float density)
 {
     return(new(IDensityProfile.Volumetric(density),
                IAbsorptionProfile.Uniform(albedo),
                IOrientationProfile.Uniform,
                IReflectionProfile.Diffuse,
                IEmittanceProfile.None));
 }
Exemplo n.º 2
0
 public static Material IsotropicVolumetric(RGBSpectrum albedo, float density)
 {
     return(new(IDensityProfile.Volumetric(density),
                IAbsorptionProfile.Uniform(albedo),
                IOrientationProfile.Forwards,
                IReflectionProfile.Spherical,
                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;
 }