Table of Contents

Class PBRMaterial

Namespace
HelixToolkit.Avalonia.SharpDX
Assembly
HelixToolkit.Avalonia.SharpDX.dll
[DataContract]
public class PBRMaterial : Material, INotifyPropertyChanged, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, ISupportInitialize, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue
Inheritance
AvaloniaObject
Animatable
StyledElement
Visual
Layoutable
Interactive
InputElement
Control
PBRMaterial
Implements
IDataContextProvider
ILogical
IThemeVariantHost
IResourceHost
IResourceNode
IStyleHost
ISetLogicalParent
ISetInheritanceParent
IStyleable
INamed
IInputElement
IDataTemplateHost
ISetterValue
Inherited Members
Control.FocusAdornerProperty
Control.TagProperty
Control.ContextMenuProperty
Control.ContextFlyoutProperty
Control.RequestBringIntoViewEvent
Control.ContextRequestedEvent
Control.LoadedEvent
Control.UnloadedEvent
Control.SizeChangedEvent
Control.GetTemplateFocusTarget()
Control.OnLoaded(RoutedEventArgs)
Control.OnUnloaded(RoutedEventArgs)
Control.OnSizeChanged(SizeChangedEventArgs)
Control.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs)
Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs)
Control.OnGotFocus(GotFocusEventArgs)
Control.OnLostFocus(RoutedEventArgs)
Control.OnCreateAutomationPeer()
Control.OnPointerReleased(PointerReleasedEventArgs)
Control.OnKeyUp(KeyEventArgs)
Control.OnPropertyChanged(AvaloniaPropertyChangedEventArgs)
Control.FocusAdorner
Control.DataTemplates
Control.ContextMenu
Control.ContextFlyout
Control.IsLoaded
Control.Tag
Control.ContextRequested
Control.Loaded
Control.Unloaded
Control.SizeChanged
InputElement.FocusableProperty
InputElement.IsEnabledProperty
InputElement.IsEffectivelyEnabledProperty
InputElement.CursorProperty
InputElement.IsKeyboardFocusWithinProperty
InputElement.IsFocusedProperty
InputElement.IsHitTestVisibleProperty
InputElement.IsPointerOverProperty
InputElement.IsTabStopProperty
InputElement.GotFocusEvent
InputElement.LostFocusEvent
InputElement.KeyDownEvent
InputElement.KeyUpEvent
InputElement.TabIndexProperty
InputElement.TextInputEvent
InputElement.TextInputMethodClientRequestedEvent
InputElement.PointerEnteredEvent
InputElement.PointerExitedEvent
InputElement.PointerMovedEvent
InputElement.PointerPressedEvent
InputElement.PointerReleasedEvent
InputElement.PointerCaptureLostEvent
InputElement.PointerWheelChangedEvent
InputElement.TappedEvent
InputElement.HoldingEvent
InputElement.DoubleTappedEvent
InputElement.Focus(NavigationMethod, KeyModifiers)
InputElement.OnKeyDown(KeyEventArgs)
InputElement.OnTextInput(TextInputEventArgs)
InputElement.OnPointerEntered(PointerEventArgs)
InputElement.OnPointerExited(PointerEventArgs)
InputElement.OnPointerMoved(PointerEventArgs)
InputElement.OnPointerPressed(PointerPressedEventArgs)
InputElement.OnPointerCaptureLost(PointerCaptureLostEventArgs)
InputElement.OnPointerWheelChanged(PointerWheelEventArgs)
InputElement.UpdateIsEffectivelyEnabled()
InputElement.Focusable
InputElement.IsEnabled
InputElement.Cursor
InputElement.IsKeyboardFocusWithin
InputElement.IsFocused
InputElement.IsHitTestVisible
InputElement.IsPointerOver
InputElement.IsTabStop
InputElement.IsEffectivelyEnabled
InputElement.TabIndex
InputElement.KeyBindings
InputElement.IsEnabledCore
InputElement.GestureRecognizers
InputElement.GotFocus
InputElement.LostFocus
InputElement.KeyDown
InputElement.KeyUp
InputElement.TextInput
InputElement.TextInputMethodClientRequested
InputElement.PointerEntered
InputElement.PointerExited
InputElement.PointerMoved
InputElement.PointerPressed
InputElement.PointerReleased
InputElement.PointerCaptureLost
InputElement.PointerWheelChanged
InputElement.Tapped
InputElement.Holding
InputElement.DoubleTapped
Interactive.RaiseEvent(RoutedEventArgs)
Interactive.BuildEventRoute(RoutedEvent)
Layoutable.DesiredSizeProperty
Layoutable.WidthProperty
Layoutable.HeightProperty
Layoutable.MinWidthProperty
Layoutable.MaxWidthProperty
Layoutable.MinHeightProperty
Layoutable.MaxHeightProperty
Layoutable.MarginProperty
Layoutable.HorizontalAlignmentProperty
Layoutable.VerticalAlignmentProperty
Layoutable.UseLayoutRoundingProperty
Layoutable.UpdateLayout()
Layoutable.ApplyTemplate()
Layoutable.Measure(Size)
Layoutable.Arrange(Rect)
Layoutable.InvalidateMeasure()
Layoutable.InvalidateArrange()
Layoutable.AffectsMeasure<T>(params AvaloniaProperty[])
Layoutable.AffectsArrange<T>(params AvaloniaProperty[])
Layoutable.MeasureCore(Size)
Layoutable.MeasureOverride(Size)
Layoutable.ArrangeCore(Rect)
Layoutable.ArrangeOverride(Size)
Layoutable.OnMeasureInvalidated()
Layoutable.OnVisualParentChanged(Visual, Visual)
Layoutable.Width
Layoutable.Height
Layoutable.MinWidth
Layoutable.MaxWidth
Layoutable.MinHeight
Layoutable.MaxHeight
Layoutable.Margin
Layoutable.HorizontalAlignment
Layoutable.VerticalAlignment
Layoutable.DesiredSize
Layoutable.IsMeasureValid
Layoutable.IsArrangeValid
Layoutable.UseLayoutRounding
Layoutable.EffectiveViewportChanged
Layoutable.LayoutUpdated
Visual.BoundsProperty
Visual.ClipToBoundsProperty
Visual.ClipProperty
Visual.IsVisibleProperty
Visual.OpacityProperty
Visual.OpacityMaskProperty
Visual.EffectProperty
Visual.HasMirrorTransformProperty
Visual.RenderTransformProperty
Visual.RenderTransformOriginProperty
Visual.FlowDirectionProperty
Visual.VisualParentProperty
Visual.ZIndexProperty
Visual.GetFlowDirection(Visual)
Visual.SetFlowDirection(Visual, FlowDirection)
Visual.InvalidateVisual()
Visual.Render(DrawingContext)
Visual.AffectsRender<T>(params AvaloniaProperty[])
Visual.OnAttachedToVisualTree(VisualTreeAttachmentEventArgs)
Visual.OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs)
Visual.InvalidateMirrorTransform()
Visual.Bounds
Visual.ClipToBounds
Visual.Clip
Visual.IsEffectivelyVisible
Visual.IsVisible
Visual.Opacity
Visual.OpacityMask
Visual.Effect
Visual.HasMirrorTransform
Visual.RenderTransform
Visual.RenderTransformOrigin
Visual.FlowDirection
Visual.ZIndex
Visual.VisualChildren
Visual.VisualRoot
Visual.BypassFlowDirectionPolicies
Visual.AttachedToVisualTree
Visual.DetachedFromVisualTree
StyledElement.DataContextProperty
StyledElement.ParentProperty
StyledElement.TemplatedParentProperty
StyledElement.ThemeProperty
StyledElement.BeginInit()
StyledElement.EndInit()
StyledElement.ApplyStyling()
StyledElement.InitializeIfNeeded()
StyledElement.OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs)
StyledElement.OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs)
StyledElement.OnDataContextBeginUpdate()
StyledElement.OnDataContextEndUpdate()
StyledElement.OnInitialized()
StyledElement.Classes
StyledElement.DataContext
StyledElement.IsInitialized
StyledElement.Styles
StyledElement.StyleKey
StyledElement.Resources
StyledElement.TemplatedParent
StyledElement.Theme
StyledElement.LogicalChildren
StyledElement.PseudoClasses
StyledElement.StyleKeyOverride
StyledElement.Parent
StyledElement.ActualThemeVariant
StyledElement.AttachedToLogicalTree
StyledElement.DetachedFromLogicalTree
StyledElement.DataContextChanged
StyledElement.Initialized
StyledElement.ResourcesChanged
StyledElement.ActualThemeVariantChanged
Animatable.TransitionsProperty
Animatable.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs)
Animatable.Transitions
AvaloniaObject.CheckAccess()
AvaloniaObject.VerifyAccess()
AvaloniaObject.ClearValue(AvaloniaProperty)
AvaloniaObject.ClearValue<T>(AvaloniaProperty<T>)
AvaloniaObject.ClearValue<T>(StyledProperty<T>)
AvaloniaObject.ClearValue<T>(DirectPropertyBase<T>)
AvaloniaObject.GetHashCode()
AvaloniaObject.GetValue(AvaloniaProperty)
AvaloniaObject.GetValue<T>(StyledProperty<T>)
AvaloniaObject.GetValue<T>(DirectPropertyBase<T>)
AvaloniaObject.GetBaseValue<T>(StyledProperty<T>)
AvaloniaObject.IsAnimating(AvaloniaProperty)
AvaloniaObject.IsSet(AvaloniaProperty)
AvaloniaObject.SetValue<T>(StyledProperty<T>, T, BindingPriority)
AvaloniaObject.SetValue<T>(DirectPropertyBase<T>, T)
AvaloniaObject.SetCurrentValue<T>(StyledProperty<T>, T)
AvaloniaObject.Bind(AvaloniaProperty, IBinding)
AvaloniaObject.CoerceValue(AvaloniaProperty)
AvaloniaObject.RaisePropertyChanged<T>(DirectPropertyBase<T>, T, T)
AvaloniaObject.SetAndRaise<T>(DirectPropertyBase<T>, ref T, T)
AvaloniaObject.InheritanceParent
AvaloniaObject.this[AvaloniaProperty]
AvaloniaObject.this[IndexerDescriptor]
AvaloniaObject.PropertyChanged

Constructors

PBRMaterial()

Initializes a new instance of the PBRMaterial class.

public PBRMaterial()

PBRMaterial(PBRMaterialCore)

Initializes a new instance of the PBRMaterial class.

public PBRMaterial(PBRMaterialCore core)

Parameters

core PBRMaterialCore

The core.

Fields

AlbedoColorProperty

Identifies the System.Windows.Media.Media3D.DiffuseMaterial.Color�dependency property.

public static readonly AvaloniaProperty AlbedoColorProperty

Field Value

AvaloniaProperty

AlbedoMapProperty

public static readonly AvaloniaProperty AlbedoMapProperty

Field Value

AvaloniaProperty

AmbientOcclusionFactorProperty

public static readonly AvaloniaProperty AmbientOcclusionFactorProperty

Field Value

AvaloniaProperty

AmbientOcculsionMapProperty

glTF2 defines metalness as B channel, roughness as G channel, and occlusion as R channel. If uses RMA map, set both RoughnessMetallicMap and AmbientOcculsionMap to the same texture.

public static readonly AvaloniaProperty AmbientOcculsionMapProperty

Field Value

AvaloniaProperty

ClearCoatRoughnessProperty

public static readonly AvaloniaProperty ClearCoatRoughnessProperty

Field Value

AvaloniaProperty

ClearCoatStrengthProperty

public static readonly AvaloniaProperty ClearCoatStrengthProperty

Field Value

AvaloniaProperty

DisplacementMapProperty

public static readonly AvaloniaProperty DisplacementMapProperty

Field Value

AvaloniaProperty

DisplacementMapSamplerProperty

public static readonly AvaloniaProperty DisplacementMapSamplerProperty

Field Value

AvaloniaProperty

DisplacementMapScaleMaskProperty

public static readonly AvaloniaProperty DisplacementMapScaleMaskProperty

Field Value

AvaloniaProperty

EmissiveColorProperty

The albedo color property

public static readonly AvaloniaProperty EmissiveColorProperty

Field Value

AvaloniaProperty

EmissiveMapProperty

public static readonly AvaloniaProperty EmissiveMapProperty

Field Value

AvaloniaProperty

EnableAutoTangentProperty

The enable automatic tangent

public static readonly AvaloniaProperty EnableAutoTangentProperty

Field Value

AvaloniaProperty

EnableFlatShadingProperty

The enable flat shading property

public static readonly AvaloniaProperty EnableFlatShadingProperty

Field Value

AvaloniaProperty

EnableTessellationProperty

The enable tessellation property

public static readonly AvaloniaProperty EnableTessellationProperty

Field Value

AvaloniaProperty

IBLSamplerProperty

public static readonly AvaloniaProperty IBLSamplerProperty

Field Value

AvaloniaProperty

IrradianceMapProperty

public static readonly AvaloniaProperty IrradianceMapProperty

Field Value

AvaloniaProperty

MaxDistanceTessellationFactorProperty

The tessellation factor at MaxTessellationDistance property

public static readonly AvaloniaProperty MaxDistanceTessellationFactorProperty

Field Value

AvaloniaProperty

MaxTessellationDistanceProperty

The maximum tessellation distance property

public static readonly AvaloniaProperty MaxTessellationDistanceProperty

Field Value

AvaloniaProperty

MetallicFactorProperty

public static readonly AvaloniaProperty MetallicFactorProperty

Field Value

AvaloniaProperty

MinDistanceTessellationFactorProperty

The tessellation factor at MinTessellationDistance property

public static readonly AvaloniaProperty MinDistanceTessellationFactorProperty

Field Value

AvaloniaProperty

MinTessellationDistanceProperty

The minimum tessellation distance property

public static readonly AvaloniaProperty MinTessellationDistanceProperty

Field Value

AvaloniaProperty

NormalMapProperty

public static readonly AvaloniaProperty NormalMapProperty

Field Value

AvaloniaProperty

ReflectanceFactorProperty

public static readonly AvaloniaProperty ReflectanceFactorProperty

Field Value

AvaloniaProperty

RenderAlbedoMapProperty

public static readonly AvaloniaProperty RenderAlbedoMapProperty

Field Value

AvaloniaProperty

RenderAmbientOcclusionMapProperty

public static readonly AvaloniaProperty RenderAmbientOcclusionMapProperty

Field Value

AvaloniaProperty

RenderDisplacementMapProperty

public static readonly AvaloniaProperty RenderDisplacementMapProperty

Field Value

AvaloniaProperty

RenderEmissiveMapProperty

public static readonly AvaloniaProperty RenderEmissiveMapProperty

Field Value

AvaloniaProperty

RenderEnvironmentMapProperty

The render environment map property

public static readonly AvaloniaProperty RenderEnvironmentMapProperty

Field Value

AvaloniaProperty

RenderIrradianceMapProperty

public static readonly AvaloniaProperty RenderIrradianceMapProperty

Field Value

AvaloniaProperty

RenderNormalMapProperty

public static readonly AvaloniaProperty RenderNormalMapProperty

Field Value

AvaloniaProperty

RenderRoughnessMetallicMapProperty

public static readonly AvaloniaProperty RenderRoughnessMetallicMapProperty

Field Value

AvaloniaProperty

RenderShadowMapProperty

The render shadow map property

public static readonly AvaloniaProperty RenderShadowMapProperty

Field Value

AvaloniaProperty

RoughnessFactorProperty

public static readonly AvaloniaProperty RoughnessFactorProperty

Field Value

AvaloniaProperty

RoughnessMetallicMapProperty

glTF2 defines metalness as B channel, roughness as G channel, and occlusion as R channel If uses RMA map, set both RoughnessMetallicMap and AmbientOcculsionMap to the same texture.

public static readonly AvaloniaProperty RoughnessMetallicMapProperty

Field Value

AvaloniaProperty

SurfaceMapSamplerProperty

public static readonly AvaloniaProperty SurfaceMapSamplerProperty

Field Value

AvaloniaProperty

UVTransformProperty

The uv transform property

public static readonly AvaloniaProperty UVTransformProperty

Field Value

AvaloniaProperty

VertexColorBlendingFactorProperty

public static readonly AvaloniaProperty VertexColorBlendingFactorProperty

Field Value

AvaloniaProperty

Properties

AlbedoColor

Gets or sets the diffuse color for the material. For details see: http://msdn.microsoft.com/en-us/library/windows/desktop/bb147175(v=vs.85).aspx

[TypeConverter(typeof(Color4Converter))]
public Color4 AlbedoColor { get; set; }

Property Value

Color4

AlbedoMap

public TextureModel? AlbedoMap { get; set; }

Property Value

TextureModel

AmbientOcclusionFactor

Gets or sets the ambient occlusion factor. If RMA map is used, for each pixel, ambient occlusion factor = AmbientOcclusionFactor * RMA map R Channel

public double AmbientOcclusionFactor { get; set; }

Property Value

double

The ambient occlusion factor.

AmbientOcculsionMap

Gets or sets the ambient occlusion map. glTF2 defines occlusion as R channel, roughness as G channel, metalness as B channel. If uses RMA map, set both RoughnessMetallicMap and AmbientOcculsionMap to the same texture

public TextureModel? AmbientOcculsionMap { get; set; }

Property Value

TextureModel

The ao map.

ClearCoatRoughness

public double ClearCoatRoughness { get; set; }

Property Value

double

ClearCoatStrength

public double ClearCoatStrength { get; set; }

Property Value

double

DisplacementMap

public TextureModel? DisplacementMap { get; set; }

Property Value

TextureModel

DisplacementMapSampler

public SamplerStateDescription DisplacementMapSampler { get; set; }

Property Value

SamplerStateDescription

DisplacementMapScaleMask

[TypeConverter(typeof(Vector4Converter))]
public Vector4 DisplacementMapScaleMask { get; set; }

Property Value

Vector4

EmissiveColor

public Color4 EmissiveColor { get; set; }

Property Value

Color4

EmissiveMap

public TextureModel? EmissiveMap { get; set; }

Property Value

TextureModel

EnableAutoTangent

Gets or sets a value indicating whether [enable automatic tangent].

public bool EnableAutoTangent { get; set; }

Property Value

bool

true if [enable automatic tangent]; otherwise, false.

EnableFlatShading

Gets or sets a value indicating whether [enable flat shading].

public bool EnableFlatShading { get; set; }

Property Value

bool

true if [enable flat shading]; otherwise, false.

EnableTessellation

Gets or sets a value indicating whether [enable tessellation].

public bool EnableTessellation { get; set; }

Property Value

bool

true if [enable tessellation]; otherwise, false.

IBLSampler

public SamplerStateDescription IBLSampler { get; set; }

Property Value

SamplerStateDescription

IrradianceMap

public TextureModel? IrradianceMap { get; set; }

Property Value

TextureModel

MaxDistanceTessellationFactor

Gets or sets the tessellation factor at MaxTessellationDistance.

public double MaxDistanceTessellationFactor { get; set; }

Property Value

double

The maximum tessellation factor.

MaxTessellationDistance

Gets or sets the maximum tessellation distance.

public double MaxTessellationDistance { get; set; }

Property Value

double

The maximum tessellation distance.

MetallicFactor

Gets or sets the metallic factor. If RMA map is used, for each pixel, metallic factor = MetallicFactor * RMA map B Channel

public double MetallicFactor { get; set; }

Property Value

double

The metallic factor.

MinDistanceTessellationFactor

Gets or sets the tessellation factor at MinTessellationDistance

public double MinDistanceTessellationFactor { get; set; }

Property Value

double

The minimum tessellation factor.

MinTessellationDistance

Gets or sets the minimum tessellation distance.

public double MinTessellationDistance { get; set; }

Property Value

double

The minimum tessellation distance.

NormalMap

public TextureModel? NormalMap { get; set; }

Property Value

TextureModel

ReflectanceFactor

public double ReflectanceFactor { get; set; }

Property Value

double

RenderAlbedoMap

public bool RenderAlbedoMap { get; set; }

Property Value

bool

RenderAmbientOcclusionMap

public bool RenderAmbientOcclusionMap { get; set; }

Property Value

bool

RenderDisplacementMap

public bool RenderDisplacementMap { get; set; }

Property Value

bool

RenderEmissiveMap

public bool RenderEmissiveMap { get; set; }

Property Value

bool

RenderEnvironmentMap

Gets or sets a value indicating whether [render environment map]. Default is false

public bool RenderEnvironmentMap { get; set; }

Property Value

bool

true if [render environment map]; otherwise, false.

RenderIrradianceMap

public bool RenderIrradianceMap { get; set; }

Property Value

bool

RenderNormalMap

public bool RenderNormalMap { get; set; }

Property Value

bool

RenderRoughnessMetallicMap

public bool RenderRoughnessMetallicMap { get; set; }

Property Value

bool

RenderShadowMap

Gets or sets a value indicating whether [render shadow map]. Default is false

public bool RenderShadowMap { get; set; }

Property Value

bool

true if [render shadow map]; otherwise, false.

RoughnessFactor

Gets or sets the roughness factor. If RMA map is used, for each pixel, roughness factor = RoughnessFactor * RMA map G Channel

public double RoughnessFactor { get; set; }

Property Value

double

The roughness factor.

RoughnessMetallicMap

Gets or sets the Roughness, Metallic, Ambient Occlusion map. glTF2 defines occlusion as R channel, roughness as G channel, metalness as B channel

public TextureModel? RoughnessMetallicMap { get; set; }

Property Value

TextureModel

The rma map.

SurfaceMapSampler

public SamplerStateDescription SurfaceMapSampler { get; set; }

Property Value

SamplerStateDescription

UVTransform

Gets or sets the texture uv transform.

public UVTransform UVTransform { get; set; }

Property Value

UVTransform

The uv transform.

VertexColorBlendingFactor

Gets or sets the vertex color blending factor. Final Diffuse Color = (1 - VertexColorBlendingFactor) * Diffuse + VertexColorBlendingFactor * Vertex Color

public double VertexColorBlendingFactor { get; set; }

Property Value

double

The vertex color blending factor.

Methods

CloneMaterial()

public virtual PBRMaterial CloneMaterial()

Returns

PBRMaterial

OnCreateCore()

protected override MaterialCore OnCreateCore()

Returns

MaterialCore

Operators

implicit operator PBRMaterial?(PBRMaterialCore?)

public static implicit operator PBRMaterial?(PBRMaterialCore? core)

Parameters

core PBRMaterialCore

Returns

PBRMaterial