Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “如何隐藏”;“裂缝”;在一个模型Visual3D中的GeometryModel3Ds之间?_C#_.net_Wpf_3d_Modelvisual3d - Fatal编程技术网

C# “如何隐藏”;“裂缝”;在一个模型Visual3D中的GeometryModel3Ds之间?

C# “如何隐藏”;“裂缝”;在一个模型Visual3D中的GeometryModel3Ds之间?,c#,.net,wpf,3d,modelvisual3d,C#,.net,Wpf,3d,Modelvisual3d,我正在编写一个使用wpf 3d的地球科学可视化应用程序。用户需要能够在占用最少资源的情况下快速放大和缩小细节。我决定将我的切片(ModelVisual3D)划分为子矩形(GeometryModel3D),这样每个子矩形都有自己的纹理,在相机放大时会发生变化(类似于谷歌地图) 问题是,子矩形之间出现了“裂缝”,尽管它们之间实际上没有空白 如何隐藏这些?或者是否有其他方法将多个不同尺寸的材质指定给一个模型Visual3D PS我试着把背景变成灰色、浅灰色、银色和白色烟雾。这有点帮助,但不能接受。我

我正在编写一个使用wpf 3d的地球科学可视化应用程序。用户需要能够在占用最少资源的情况下快速放大和缩小细节。我决定将我的切片(ModelVisual3D)划分为子矩形(GeometryModel3D),这样每个子矩形都有自己的纹理,在相机放大时会发生变化(类似于谷歌地图)

问题是,子矩形之间出现了“裂缝”,尽管它们之间实际上没有空白

如何隐藏这些?或者是否有其他方法将多个不同尺寸的材质指定给一个模型Visual3D


PS我试着把背景变成灰色、浅灰色、银色和白色烟雾。这有点帮助,但不能接受。我还尝试过重叠子矩形,但没有结果。

您可能希望以不同的分辨率制作多个纹理,并根据缩放级别在这些纹理之间切换,而不是当前设置。(Mipmaps)

当你离得很近时,你可以替换整个对象,并将其切换为一个更小的对象),并使用非常详细的纹理


这将需要更多的预处理,但您将能够使用单个几何体。

似乎将
ImageBrush
的拉伸更改为拉伸。无和使用大于子正方形的纹理会有所帮助。虽然现在我需要更精确地控制表面的纹理坐标。

好吧,我可以使用一个足够详细的巨大纹理(如果我有足够的资源),而不是根据缩放级别在纹理之间切换。但这不好,因为巨大的纹理占用了太多内存,而且绘制它需要大量的CPU时间。@TimurNuriyasov-我猜纹理会很大,所以最好不要将所有纹理都加载到内存中。有没有办法不将所有纹理加载到内存中,并且仍然能够显示它?我认为在WPF中不可能做到这一点。