首页 > 解决方案 > Microsoft WPF 与 SharpDX WPF 边缘

问题描述

这张图片左边是用 Microsoft wpf 绘制的,右边是用 sharpdx wpf 绘制的。sharpdx 面的边缘不太平滑。 面孔 这是我在没有 XAML 的 VB.net 中使用的所有 SharpDX 代码。我想念什么?

Imports System.Windows
Imports System.Windows.Controls
Imports HelixToolkit.Wpf.SharpDX
Imports SharpDX

Module UnitMain

    Public MainForm As New Window
    Public FormGrid As New Grid
    Public GridPort As New Viewport3DX
    Public PortCamera As New PerspectiveCamera
    Public PortLamp As New DirectionalLight3D
    Public PortModel As New MeshGeometryModel3D
    Public ModelBuilder As New MeshBuilder

    Sub MainFormInit()

        ModelBuilder.AddQuad(New Vector3(-0.5, 0.5, 0), New Vector3(-0.5, -0.5, 0), New Vector3(0.5, -0.5, 0), New SharpDX.Vector3(0.5, 0.5, 0))
        PortModel.Geometry = ModelBuilder.ToMeshGeometry3D
        PortModel.Material = DiffuseMaterials.Yellow
        PortLamp.Color = Media.Colors.White
        PortLamp.Direction = New Media.Media3D.Vector3D(2, -1, -3)
        PortCamera.Position = New Media.Media3D.Point3D(-2, 1, 3)
        PortCamera.LookDirection = New Media.Media3D.Vector3D(2, -1, -3)
        PortCamera.FieldOfView = 40
        GridPort.Items.Add(PortModel)
        GridPort.Items.Add(PortLamp)
        GridPort.Camera = PortCamera
        GridPort.EffectsManager = New DefaultEffectsManager
        FormGrid.Children.Add(GridPort)
        MainForm.Width = 800
        MainForm.Height = 800
        MainForm.Content = FormGrid
    End Sub

    Sub Main()

        MainFormInit()
        MainForm.ShowDialog()
    End Sub
End Module

标签: wpfvb.netsharpdxhelix-3d-toolkit

解决方案


作为一名退休的 VB6 和 VBA 程序员,我尝试切换到 VB.net 并发现了 WPF。我的爱好是避免 XAML 部分。这是可能的,也可以通过使用强大的 Helix Toolkit 扩展解码代码。因此,我遇到了上述混叠问题,感谢 Andrew Morton。添加到上面的代码

GridPort.MSAA = MSAAlevel.Maximum

让我的模型的边缘与我在没有 Helix 工具包的情况下首先绘制的模型一样好。

很棒的论坛!


推荐阅读