Namespace HelixToolkit.WinUI.SharpDX
Classes
- 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.
- BoneGroupModel3D
Used to share bone matrices for multiple BoneSkinMeshGeometryModel3D
- Camera
Specifies what portion of the 3D scene is rendered by the Viewport3DX element.
- 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.
- 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.
- 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
- InputBinding
Binds a InputGesture to an ICommand implementation.
- InputController
Use to determine shortcut keys/Mouse key for Rotation, Pan, etc. User must override certain functions to change default shortcut keys/buttons.
- InputGesture
Defines an input gesture that can be used to invoke a command.
- ItemsModel3D
Represents a model that can be used to present a collection of items. supports generating child items by a DataTemplate.
- ManipulationBinding
Binds a ManipulationGesture to an ICommand implementation.
- ManipulationEventArgs
Provides data for the manipulation events.
- ManipulationGesture
Defines a touch input gesture that can be used to invoke a command.
- 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
- NormalMaterial
Render color by triangle normal
- NormalVectorMaterial
Render color by triangle normal
- NotNullToVisibilityConverter
A not-null reference to Visibility value converter.
- ObservableElement3DCollection
Provides an observable collection of Element3D.
- OrthographicCamera
Represents an orthographic projection camera.
- PerspectiveCamera
Represents a perspective projection camera.
- PhongMaterial
Implements a phong-material with its all properties Includes Diffuse, Normal, Displacement, Specular, etc. maps
- PositionColorMaterial
Render color by mesh vertex position
- PostEffectMeshBorderHighlight
Highlight the border of meshes
- PostEffectMeshOutlineBlur
Highlight the border of meshes
- 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
- 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.
- 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.
- 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.
- 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.
- 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
Enums
- ManipulationAction
Specifies constants that define actions performed by manipulation.