使用 Helixtoolkit.SortingVisual3D 通过透明表面单击事件
Click Event through transparent surface using Helixtoolkit.SortingVisual3D
我希望我的可点击蓝色立方体在我通过透明表面 MeshGeometryVisual3D 元素点击它时改变颜色。当立方体容器是 ViewPort class 的子项时,一切正常但在表面不可见(无排序),但当它是 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
我希望我的可点击蓝色立方体在我通过透明表面 MeshGeometryVisual3D 元素点击它时改变颜色。当立方体容器是 ViewPort class 的子项时,一切正常但在表面不可见(无排序),但当它是 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