wpf - 使用 Helixtoolkit.SortingVisual3D 通过透明表面单击事件
问题描述
我希望我的可点击蓝色立方体在通过透明表面 MeshGeometryVisual3D 元素点击它时改变颜色。当立方体容器是 ViewPort 类的子容器时,一切正常,但通过表面不可见(无排序),但当它是 Helixtoolkit.SortingVisual3D 的子容器时,单击事件停止工作,但通过表面可见!这是我使用的 SortingVisual3D 元素的代码:
<helix:SortingVisual3D x:Name="sortingVisual1" Method="BoundingSphereSurface" SortingFrequency="5" >
<helix:MeshGeometryVisual3D x:Name="_visual" MeshGeometry="{Binding objectGeometry}" Visible="{Binding IsChecked, ElementName=MeshVisible}" >
</helix:MeshGeometryVisual3D>
</helix:SortingVisual3D>
添加到 SortingVisual3D 元素的多维数据集的代码是这样的:
AddCubePoint cpsorting = new AddCubePoint(middle, defaultMaterial);
sortingVisual1.Children.Add(cpsorting);
我曾尝试在同一位置使用两个相同的立方体(ViewPort 的一个孩子,SortingVisual3D 的第二个),但点击表面后颜色会改变,仅在 ViewPort 的孩子上(见图)!
我是 helix-3d-toolkit 的新手,经过 2 天的研究,我找不到任何可行的解决方案或想法如何解决这个问题!请帮我 !
解决方案
您需要将立方体放在半透明网格之前,因此首先渲染立方体。将透明网格命中测试设置为 false
推荐阅读
- performance - 尝试在统一构建后找到合适的分析器来测试消耗
- javascript - 一旦数组的索引大于长度,如何使数组的索引恢复为0
- javascript - 以 12 小时格式显示 ETA 反应原生
- angular - Angular 防护没有按预期工作
- python - 使用 ortools 选择列表中最小的两个整数值
- api - 以“成功”状态结束的弹性搜索快照是否会丢失索引文档?
- xml - 恢复包含“<”和“>”的数据
- php - 从嵌套在 for 循环中的 if 条件返回 true 的函数
- reactjs - 在 React 中将 ByteArray 下载为 pdf /handle 错误
- angular - 使用 Angular 在 Highcharts 中显示来自 CSV 的数据