Helix 3D toolkit初尝试

Helix 3D toolkit是一个基于WPF的开源库,其官方网站是:http://helixtoolkit.codeplex.com/

最新写了一个简单的Helix toolkit小程序,用来读取数据库中的数据以成图,并每隔一段时间重新获取最新数据,更新图形。

成图这块对于Helix 3D toolkit来说很简单,可以大大提高开发效率,不过感觉还是有一些小问题。

第一个是关于图形加载先后顺序的问题,按照一般的理解,半透明的物体不会遮挡住其下面的物体,但是在Helix 3D toolkit中如果半透明的物体先于其下面的物体加载,那么就会遮挡住这些物体(好像OpenGl中也有这个问题,有待确认),这样就需要注意物体的加载顺序;

第二个问题,在问题一的情况下,如果要刷新图形就遇到了问题,因为被刷新的物体总是最后加载,因此会被之前加载的物体遮挡,除非重新加载所有物体;

问题三,Helix 3D toolkit中的3维场景对象HelixView3D对象在删除其子对象时遇到问题(可能说的不是很清楚,这里的意思是调用HelixView3D对象的Children.Remove()方法或者Clear()方法),一旦加载的对象被删除,就会抛出一个没有引用到实例的异常,似乎是HelixView3D对象还在尝试去Render被移除的对象。

不仅是Helix 3D toolkit中存在这样的问题,WPF中自带的面板也似乎存在这种问题。我想是不是有个办法,在移除对象后需要对Children集合更新下,这样就不会出现问题三中问题了,如果有高手了解,望指教。

基于上面的问题,只好在更新图形的时候,重新实例化HelixView3D对象及其他3维对象,这样虽然满足了功能,但是总感觉不恰当,有了解的高手,恳请指教!

原文地址:https://www.cnblogs.com/lizichao/p/2121762.html