none
WPF将控件添加进3D场景后贴图像素错位的问题 RRS feed

  • 问题

  • 我打算用n个同样大小的控件拼成一个正n棱柱
    第一种做法:将n个Viewport2DVisual3D拼成一个棱柱,将n个控件分别加载到这些Viewport2DVisual3D上面
    后来考虑到程序中其它逻辑,如果采用多个Viewport2DVisual3D将对性能产生严重影响,于是改用第二种做法
    第二种做法:将1个Viewport2DVisual3D卷成一个棱柱,将n个控件并排摆放在同一个Canvas容器上,再将容器加载到这个唯一的Viewport2DVisual3D上面
    此时出现了问题,如下图
    拼起来的显示效果:

    卷起来的显示效果

    可见,第一种做法得到的显示效果一切正常;第二种做法得到的显示效果,在控件的水平方向上因为像素错位而造成显示模糊
    我已经仔细确认过,第二种做法中3D模型的所有模型顶点(Positions)、材质顶点(TextureCoordinates)、三角形(TriangleIndices)的数据都是正确的
    已经提供演示程序(环境:VS2013,.Net 4.0):http://pan.baidu.com/s/1o69HXCQ

    请高手帮忙提出解决方案,让第二种做法能够进行正确的显示。谢谢关注


    上面的链接是演示程序文件夹的链接,可能需要用百度云下载,下面的链接是压缩包,可以在网页上直接下载:http://pan.baidu.com/s/1hq1MLXq
    • 已编辑 Laferce 2014年6月23日 15:11 新增演示程序链接
    2014年6月23日 15:06

答案

全部回复