Table of Contents

Namespace HelixToolkit.WinUI.SharpDX

Classes

AmbientLight3D
AxisPlaneGridModel3D
BatchedMeshGeometryModel3D

Static mesh batching. Supports multiple BatchedMaterials. All geometries are merged into single buffer for rendering. Indivisual material color infomations are encoded into vertex buffer.

Material is used if BatchedMaterials = null. And also used for shared material texture binding.

BillboardTextModel3D
BoneGroupModel3D

Used to share bone matrices for multiple BoneSkinMeshGeometryModel3D

BoneSkinMeshGeometryModel3D
BoolToVisibilityConverter
BoundChangedEventArgs
Camera

Specifies what portion of the 3D scene is rendered by the Viewport3DX element.

CameraController
CameraExtensions
ColorStripeMaterial
CompositeModel3D

Represents a composite Model3D.

CompositionTargetEx

https://evanl.wordpress.com/2009/12/06/efficient-optimal-per-frame-eventing-in-wpf/

ContinuousRender3D

Use this model to keep update rendering in each frame.

Default behavior for render host is lazy rendering. Only property changes trigger a render inside render loop. However, sometimes user want to keep updating rendering each frame while doing shader animation using TimeStamp. Use this model to invalidate rendering in each frame and keep render host busy.

CoordinateSystemModel3D
CrossSectionMeshGeometryModel3D

Defines the CrossSectionMeshGeometryModel3D

Cursors
DepthPrepassElement3D

Do a depth prepass before rendering.

Must customize the DefaultEffectsManager and set DepthStencilState to DefaultDepthStencilDescriptions.DSSDepthEqualNoWrite in default ShaderPass from EffectsManager to achieve best performance.

DiffuseMaterial
DiffuseMaterialCollection
DiffuseMaterials
DirectionalLight3D
DynamicCodeSurfaceModel3D
DynamicReflectionMap3D
Element3D
Element3DPresenter
EmptyStringToVisibilityConverter
EnvironmentMap3D
FrameworkPropertyMetadata
Geometry3DExtensions

Contains extension methods for geometry.

GeometryModel3D

Provides a base class for a scene model which contains geometry

GeometryModel3DOctreeManager

Use to create geometryModel3D octree for groups. Each ItemsModel3D must has its own manager, do not share between two ItemsModel3D

GroupElement3D
GroupModel3D
HelixItemsControl
HelixProperty
HelixToolkitRenderPanel
InputBinding

Binds a InputGesture to an ICommand implementation.

InputBindingCollection

An ObservableCollection<T>.

InputController

Use to determine shortcut keys/Mouse key for Rotation, Pan, etc. User must override certain functions to change default shortcut keys/buttons.

InputController.AddForceEventArgs
InputGesture

Defines an input gesture that can be used to invoke a command.

InstancingBillboardModel3D
InstancingMeshGeometryModel3D
InstancingModel3DOctreeManager
ItemsModel3D

Represents a model that can be used to present a collection of items. supports generating child items by a DataTemplate.

Light3D
Light3DCollection
LineArrowHeadMaterial
LineArrowHeadTailMaterial
LineGeometryModel3D
LineMaterial
LineMaterialGeometryModel3D
ManipulationActionExtensions
ManipulationBinding

Binds a ManipulationGesture to an ICommand implementation.

ManipulationBindingCollection
ManipulationEventArgs

Provides data for the manipulation events.

ManipulationGesture

Defines a touch input gesture that can be used to invoke a command.

Material
MaterialExtension
MaterialGeometryModel3D
Media3DExtension
MeshGeometryModel3D
ModelContainer3DX

Use to contain shared models for multiple viewports.

Suggest to bind effects manager in viewmodel. Assign effect manager from code behind may cause memory leak

Mouse3DEventArgs
MouseDown3DEventArgs
MouseMove3DEventArgs
MouseUp3DEventArgs
NormalMaterial

Render color by triangle normal

NormalVectorMaterial

Render color by triangle normal

NotNullToVisibilityConverter

A not-null reference to Visibility value converter.

ObservableElement2DCollection
ObservableElement3DCollection

Provides an observable collection of Element3D.

OctreeLineGeometryModel3D
OctreeManagerBaseWrapper
OrthographicCamera

Represents an orthographic projection camera.

OutLineMeshGeometryModel3D
PBRMaterial
PBRSampleColors

https://google.github.io/filament/images/material_chart.jpg

ParticleStormModel3D
PerspectiveCamera

Represents a perspective projection camera.

PhongMaterial

Implements a phong-material with its all properties Includes Diffuse, Normal, Displacement, Specular, etc. maps

PhongMaterialCollection
PhongMaterials
PointGeometryModel3D
PointLight3D
PointMaterial
PointMaterialGeometryModel3D
PositionColorMaterial

Render color by mesh vertex position

PostEffectBloom
PostEffectMeshBorderHighlight

Highlight the border of meshes

PostEffectMeshOutlineBlur

Highlight the border of meshes

PostEffectMeshXRay
PostEffectMeshXRayGrid
ProjectionCamera

An abstract base class for perspective and orthographic projection cameras.

SceneNodeGroupModel3D

Used to hold scene nodes without WPF/UWP dependencies. Used for code behind only. Avoid performance penalty from Dependency Properties.

ScreenDuplicationModel

Limitation: Under switchable graphics card setup(Laptop with integrated graphics card and external graphics card), only monitor outputs using integrated graphics card is fully supported. Trying to clone monitor outputs by external graphics card, the clone window must reside in those monitors which is rendered by external graphics card, or error will be occurred. Ref: https://support.microsoft.com/en-us/help/3019314/error-generated-when-desktop-duplication-api-capable-application-is-ru

ScreenQuadModel3D
ScreenSpacedElement3D

ScreenSpacedElement3D uses a fixed camera to render model (Mainly used for view box and coordinate system rendering) onto screen which is separated from viewport camera.

Default fix camera is perspective camera with FOV 45 degree and camera distance = 20. Look direction is always looking at (0,0,0).

User must properly scale the model to fit into the camera frustum. The usual maximum size is from (5,5,5) to (-5,-5,-5) bounding box.

User can use SizeScale to scale the size of the rendering.

ScreenSpacedGroup3D

ScreenSpacedGroup3D uses a fixed camera to render model (Mainly used for view box and coordinate system rendering) onto screen which is separated from viewport camera.

Default fix camera is perspective camera with FOV 45 degree and camera distance = 20. Look direction is always looking at (0,0,0).

User must properly scale the model to fit into the camera frustum. The usual maximum size is from (5,5,5) to (-5,-5,-5) bounding box.

User can use SizeScale to scale the size of the rendering.

ShadowMap3D
SortingGroupModel3D
SpotLight3D
SwapChainCompositionRenderHost
ThreePointLight3D
TopMostGroup3D

Provides a way to render child elements always on top of other elements This is rendered at the same level of screen spaced group items. Child items do not support post effects.

TransformManipulator3D
VertColorMaterial

Render color by mesh vertex color

ViewBoxModel3D

Viewbox replacement for Viewport using swapchain rendering.

To replace box texture (such as text, colors), bind to custom material with different diffuseMap.

Create a image with 1 row and 6 evenly distributed columns. Each column occupies one box face. The face order is Front, Back, Down, Up, Left, Right

Viewport3DX

Provides a Viewport control.

ViewportCommand

An ICommand implementation that can be bound to an InputGesture in XAML using InputBinding derivations.

ViewportCommandExtension
ViewportCommands
ViewportExtensions
ViewportPartNames
VolumeTextureDDS3DMaterial

Default Volume Texture Material. Supports 3D DDS memory stream as VolumeTexture

VolumeTextureDiffuseMaterial

Used to use gradient data as Volume 3D texture. User must create their own data reader to read texture files as pixel byte[] and pass the necessary information as VolumeTextureParams

Pixel Byte[] is equal to Width * Height * Depth * BytesPerPixel.

VolumeTextureMaterialBase
VolumeTextureModel3D
VolumeTextureRawDataMaterial

Used to use raw data as Volume 3D texture. User must create their own data reader to read texture files as pixel byte[] and pass the necessary information as VolumeTextureParams

Pixel Byte[] is equal to Width * Height * Depth * BytesPerPixel.

Structs

CameraSetting

Represents camera settings.

Interfaces

ICameraModel
IMouse3D
IOctreeManagerWrapper
IOrthographicCameraModel
IPerspectiveCameraModel
IProjectionCameraModel
ISelectable
ISwapChainPanelNative
ITransformable
ITraversable
IVisible

Enums

FrameworkPropertyMetadataOptions
ManipulationAction

Specifies constants that define actions performed by manipulation.

ViewportCommands.Id