Click or drag to resize

MaterialBase Class

Base of the materials. This material supports specular reflections using a modified Phong equation: kspec = SpecularIntensity*(1+SpecularExponent)*DotProduct[IncidentLight,EmergentLight]. The modification is the term (1+SpecularExponent), which ensures that the integral over the half sphere is constant when the SpecularExponent changes.
Inheritance Hierarchy

Namespace: Altaxo.Drawing.D3D.Material
Assembly: AltaxoBase (in AltaxoBase.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax
C#
public abstract class MaterialBase : IMaterial, 
	IImmutable, IEquatable<IMaterial>

The MaterialBase type exposes the following members.

Constructors
 NameDescription
Public methodMaterialBase Initializes a new instance of the MaterialBase class with default values for specular intensity, exponent and mixing coefficient.
Public methodMaterialBase(Double, Double) Initializes a new instance of the MaterialBase class.
Public methodMaterialBase(Double, Double, Double) Initializes a new instance of the MaterialBase class.
Top
Properties
 NameDescription
Public propertyColor Gets the diffuse color of the material.
Public propertyHasColor Gets a value indicating whether this instance has a color by itself.
Public propertyHasTexture Gets a value indicating whether this instance has texture.
Public propertyIndexOfRefraction 
Public propertyIsVisible Gets a value indicating whether this material is visible at all. There might be one material instance that could be used as a convenient place holder for null, that is treated as "no material". Drawing contexts should not draw anything if the material returns false for this property.
Public propertyMetalness Mixing coefficient for specular reflection: value between 0 and 1. If 0, the reflected specular light is multiplied with the material diffuse color If 1, the reflected specular light has the same color as the incident light (thus as if it is reflected at a white surface)
Public propertyPhongModelDiffuseIntensity 
Public propertyPhongModelSpecularExponent 
Public propertyPhongModelSpecularIntensity Gets the specular intensity normalized for phong model. This is the expression SpecularIntensity*(1+SpecularExponent). This pre-factor in the Phong equation ensures that the total light intensity reflected in all directions of the half sphere will not change when changing the SpecularExponent.
Public propertySmoothness The smothness value, a value in the range [0,1]. A value of 0 defines a rough diffuse surface, and a value of 1 a very shiny surface.
Top
Methods
 NameDescription
Public methodEquals(IMaterial)Indicates whether the current object is equal to another object of the same type.
Public methodEquals(Object)Determines whether the specified object is equal to the current object.
(Inherited from Object)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodHasSameSpecularPropertiesAs Determines whether this material has the same specular properties as the material provided in anotherMaterial.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Protected methodVerifyIndexOfRefraction Verifies the specular mixing coefficient to be in the range [0, 1].
Protected methodVerifyMetalness Verifies the metalness to be in the range [0, 1].
Protected methodVerifySmoothness Verifies the smothness to be in the range [0,1]
Public methodWithColor 
Public methodWithIndexOfRefraction Gets a new instance of the material with the specular mixing coefficient set to the provided value.
Public methodWithMetalness Gets a new instance of the material with the specular mixing coefficient set to the provided value.
Public methodWithSmoothness Gets a new instance of the material with the smothness set to the provided value.
Public methodWithSpecularProperties Gets a new instance of this material with all specular properties set to the provided values.
Public methodWithSpecularPropertiesAs Returns a new material based on this material, but with all specular properties taken from the template material provided in templateMaterial.
Top
Fields
 NameDescription
Protected field_indexOfRefraction The index of refraction. i.e. a value between 1 and infinity.
Protected field_metalness Value between 0 and 1. A value of 0 indicates a plastic like surface, a value of 1 a metal like surface. If 0, the reflected specular light has the same color as the incident light (thus as if it is reflected at a white surface). This is the behaviour of plastic surfaces. If 1, the reflected specular light is multiplied with the material diffuse color. This is the behaviour of metals like gold.
Protected field_smoothness A value between 0 and 1. A value of 0 defines a rough surface, a value of 1 a very shiny one.
Top
See Also