public static Material IsotropicVolumetric(RGBSpectrum albedo, float density) { return(new(IDensityProfile.Volumetric(density), IAbsorptionProfile.Uniform(albedo), IOrientationProfile.Forwards, IReflectionProfile.Spherical, IEmittanceProfile.None)); }
public static Material DiffuseParticleCloud(RGBSpectrum albedo, float density) { return(new(IDensityProfile.Volumetric(density), IAbsorptionProfile.Uniform(albedo), IOrientationProfile.Uniform, IReflectionProfile.Diffuse, IEmittanceProfile.None)); }
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 Specular(RGBSpectrum albedo) { return(new(IDensityProfile.Surface, IAbsorptionProfile.Uniform(albedo), IOrientationProfile.Flat, IReflectionProfile.Specular, IEmittanceProfile.None)); }
public static Material Emitter(RGBSpectrum spectrum) { return(new(IDensityProfile.Surface, IAbsorptionProfile.BlackBody, IOrientationProfile.Flat, IReflectionProfile.Diffuse, IEmittanceProfile.Uniform(spectrum))); }
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 static ColorRGB8 GetColor8Gamma22(RGBSpectrum color) { Float fr = Math.Pow(color.R, Idx22) * 255.0f; Float fg = Math.Pow(color.G, Idx22) * 255.0f; Float fb = Math.Pow(color.B, Idx22) * 255.0f; byte r, g, b; if (fr < 0) { r = 0; } else if (fr > 255) { r = 255; } else { r = (byte)fr; } if (fg < 0) { g = 0; } else if (fg > 255) { g = 255; } else { g = (byte)fg; } if (fb < 0) { b = 0; } else if (fb > 255) { b = 255; } else { b = (byte)fb; } return(new ColorRGB8(r, g, b)); }
public static ColorRGB8 GetColor8(RGBSpectrum color) { color *= 255; byte r, g, b; if (color.R < 0) { r = 0; } else if (color.R > 255) { r = 255; } else { r = (byte)color.R; } if (color.G < 0) { g = 0; } else if (color.G > 255) { g = 255; } else { g = (byte)color.G; } if (color.B < 0) { b = 0; } else if (color.B > 255) { b = 255; } else { b = (byte)color.B; } return(new ColorRGB8(r, g, b)); }
private static string ColorDescription(RGBSpectrum color) { return(color.R + "," + color.G + "," + color.B); }