Click or drag to resize
AB4D logo

PhysicallyBasedMaterial Class

PhysicallyBasedMaterial class defines a DXEngine's material that defines a material for Physically based rendering (PBR material).
Inheritance Hierarchy
SystemObject
  Ab3d.DirectXDXResourceBase
    Ab3d.DirectXSharedDXResource
      Ab3d.DirectXSharedDXDeviceResource
        Ab3d.DirectXMaterial
          Ab3d.DirectX.MaterialsPhysicallyBasedMaterial

Namespace: Ab3d.DirectX.Materials
Assembly: Ab3d.DXEngine (in Ab3d.DXEngine.dll) Version: 7.0.8865.1045
Syntax
C#
public class PhysicallyBasedMaterial : Material, 
	IPhysicallyBasedMaterial, IMultiMapMaterial, ITransparentMaterial, IEmissiveMaterial, ITwoSidedMaterial

The PhysicallyBasedMaterial type exposes the following members.

Constructors
 NameDescription
Public methodPhysicallyBasedMaterial Constructor
Top
Properties
 NameDescription
Public propertyAmbientOcclusionFactor Float value that defines a factor that is multiplied with the ambient occlusion texture (when specified). Default value is 1 which does not change the values in the texture. Default value is 1.
Public propertyBaseColor Color4 used for diffuse colors in non-metals ("dielectrics") or specular color in metals. When used with BaseColor texture, this color defines a color mask that is multiplied with each texture value. When alpha component is less then 1, then other color components need to be pre-multiplied by the alpha value. Default value is White.
Public propertyBlendState Gets a BlendState that is used to render the base texture. If null a Opaque or a PremultipliedAdditiveBlend (in case of transparency) will be used.
Public propertyEmissiveColor Gets or sets a Color3 that that represents the emissive color - the color of the object regardless of the lights.
Public propertyHasOnlyEmissiveColor Gets a Boolean that specifies if this material has only emissive color. This property is not used in PhysicallyBasedMaterial and always returns false.
Public propertyHasTransparency Gets a boolean that specifies if this material is semi-transparent and needs to be alpha blended with the scene.
Public propertyIsTwoSided Gets or sets a Boolean that specifies if the material should be rendered on both front and back side. Default value is false.
Public propertyMetalness Float value that specifies the amount of metalness - 0 for non-metal; 1 for raw metal. When used with Metalness texture, this value defines a mask that is multiplied with each texture value. Default value is 1.
Public propertyRoughness Float value that defines surface irregularities - 0 for totally flat surface; 1 for rough surface without any reflection. When used with Roughness texture, this value defines a mask that is multiplied with each texture value. Default value is 1.
Public propertyTextureMaps Gets a list of TextureMapInfo object that defines texture maps that should be rendered with this material.
Top
Methods
 NameDescription
Public methodHasTextureMap Returns true if this PhysicallyBasedMaterial defines the specified map type (has specified MapType in TextureMaps and it has a ShaderResourceView that is not null).
Public methodRemoveTextureMap Removes all TextureMapInfo structs with the specified mapType from the TextureMaps.
Public methodSetTextureMap(TextureMapTypes, ShaderResourceView, String) SetTextureMap updates existing TextureMapInfo (when TextureMapInfo with the same mapType was already added) or adds a new TextureMapInfo to the TextureMaps list. To also set the SamplerState, you can use SetTextureMap(TextureMapTypes, ShaderResourceView, SamplerState, String) method.
Public methodSetTextureMap(TextureMapTypes, ShaderResourceView, SamplerState, String) SetTextureMap updates existing TextureMapInfo (when TextureMapInfo with the same mapType was already added) or adds a new TextureMapInfo to the TextureMaps list. To preserve the existing SamplerState, you can use SetTextureMap(TextureMapTypes, ShaderResourceView, String) method.
Public methodToString ToString
(Overrides MaterialToString)
Top
See Also