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