gpt4 book ai didi

c# - WPF VisualTreeHelper.HitTest 使用多线程

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:28 25 4
gpt4 key购买 nike

在我的应用程序中,在 Viewport3D 对象之上有一个透明的 InkCanvasViewport3D 显示了一个大的 3D 网格。用户将在 InkCanvas 上绘制草图,以便选择 Viewport3D 正在渲染的 3D 模型的一部分。允许用户在 InkCanvas 上绘制圆圈。
当用户绘制草图时,我遍历所有落在绘制圆内的点,并使用 VisualTreeHelper.HitTest 函数执行光线转换并确定 Viewport3D 的哪些顶点网格与草图重合。

问题是 VisualTreeHelper.HitTest 非常慢。如果我使用 Parallel.For,我仍然无法在 Viewport3D 上并行执行多个光线转换(因为 Viewport3D 对象的拥有线程是 UI 线程,我必须使用 Viewport3DDispatcher.Invoke 函数,这将破坏使用 Parallel.For 的目的首先。)

有没有办法使用多线程来加快速度?更好的是,是否有替代解决方案?

最佳答案

经过大量查找,我认为我想要的东西在WPF框架中是不可能的。为此,我切换到 OpenTK 并自己实现了光线转换。
现在我在 OpenTK 中有一个 WPF 模拟,性能要好得多。密码是available here如果有人感兴趣的话。

关于c# - WPF VisualTreeHelper.HitTest 使用多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30004430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com