WPF疑难杂症之一(3D场景)

来源:百度文库 编辑:神马文学网 时间:2024/04/19 12:28:12
最近2个月一直在学习WPF,在实际的开发中遇到下面一个3D场景有关的问题,我先给出问题代码:
首先是在资源中定义了一个3D变换组:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Viewer3D"



//这里省略若干代码


然后建立一个Viewport3D,其中包含有多个的3D模型:(不包括红色代码)












Positions="-1 -1 0  1 -1 0  1 1 0  -1 1 0"
Normals="0 0 1  0 0 1  0 0 1  0 0 1"
TextureCoordinates="-1 1  0 1  0 0  -1 0"
TriangleIndices="0 1 2  0 2 3"/>












Positions="-0.5 -0.5 0  0.5 -0.5 0  0.5 0.5 0  -0.5 0.5 0"
Normals="0 0 1  0 0 1  0 0 1  0 0 1"
TextureCoordinates="0 0.5  0.5 0.5  0.5 0  0 0"
TriangleIndices="0 1 2  0 2 3"/>










OffsetX="-0.2" OffsetY="0.1" OffsetZ="-0.5"   >







我在场景中添加了两个图片,并给ModelGroup应用了资源中的3D变换。最后的效果如下:

但是这个效果图片中出现了一个非常奇怪的问题,大家可以看小图中有向左倾斜的条纹出现。这不是我期望的结果。最后通过多次的试验发现图像的TranslateTransform对此有影响,但是我上面的3D变换中没有用到TranslatsForm,只是使用了旋转变换和坐标大小的映射。最后不得已在GeometryModel3D添加了一个TranslatsForm解决问题(红色显示的代码)。现在感觉仍很是纳闷,真正的原因还有待进一步探索!