コード例 #1
0
 public static Material IsotropicVolumetric(RGBSpectrum albedo, float density)
 {
     return(new(IDensityProfile.Volumetric(density),
                IAbsorptionProfile.Uniform(albedo),
                IOrientationProfile.Forwards,
                IReflectionProfile.Spherical,
                IEmittanceProfile.None));
 }
コード例 #2
0
 public static Material DiffuseParticleCloud(RGBSpectrum albedo, float density)
 {
     return(new(IDensityProfile.Volumetric(density),
                IAbsorptionProfile.Uniform(albedo),
                IOrientationProfile.Uniform,
                IReflectionProfile.Diffuse,
                IEmittanceProfile.None));
 }
コード例 #3
0
 public static Material Glossy(RGBSpectrum albedo, float roughness)
 {
     return(new(IDensityProfile.Surface,
                IAbsorptionProfile.Uniform(albedo),
                IOrientationProfile.SurfaceGGX(roughness),
                IReflectionProfile.Specular,
                IEmittanceProfile.None));
 }
コード例 #4
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));
 }
コード例 #5
0
 public static Material Specular(RGBSpectrum albedo)
 {
     return(new(IDensityProfile.Surface,
                IAbsorptionProfile.Uniform(albedo),
                IOrientationProfile.Flat,
                IReflectionProfile.Specular,
                IEmittanceProfile.None));
 }
コード例 #6
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));
 }
コード例 #7
0
 public Material(IDensityProfile densityProfile,
                 IAbsorptionProfile absorptionProfile,
                 IOrientationProfile orientationProfile,
                 IReflectionProfile reflectionProfile,
                 IEmittanceProfile emittanceProfile)
 {
     DensityProfile     = densityProfile;
     AbsorptionProfile  = absorptionProfile;
     OrientationProfile = orientationProfile;
     ReflectionProfile  = reflectionProfile;
     EmittanceProfile   = emittanceProfile;
 }